按照题目要求,编写了程序,用 PROTEUS 绘出了仿真电路图。本文引用地址:http://www.eepw.com.cn/article/201602/287211.htm

;=============================================

;题目:汽车转向灯控制器的编程

;1号键(左转向)按下时 实现P3.6闪亮,P0-P2口左流水;

;2号键(右转向)按下时 实现P3.7闪亮,P0-P2口右流水;

;3号键(刹车键)按下时 实现P0-P2口同时亮;

;4号键(紧急状况键) 按下时 实现P3.6和P3.7同时闪亮。

;按键按住时,执行上述程序,按键松开后关闭所有灯。

;=============================================

;按照题目要求,编写了程序,用 PROTEUS 绘出了仿真电路图,运行起来如下所示:

;程序如下:

L_T BIT 00H ;按键标志位

R_T BIT 01H

S_T BIT 02H

J_J BIT 03H

SAME EQU 30H;按键缓冲区

Runw EQU 31H ;31H 32H,共16位数,当做流水灯

SP_B EQU 33H ;栈底位置

;--------------------------------

ORG 0000H

SJMP START

ORG 000BH

SJMP T0_INT

;--------------------------------

START:

MOV TMOD, #01H

MOV TH0, #4CH ;定时

MOV R3, #5 ;250ms闪烁一次

SETB TR0

MOV IE, #82H ;开中断

MOV SP, #SP_B

MOV Runw, #255

MOV Runw + 1, #0

;--------------------------------

M_LOOP:

MOV A, P1 ;读一次按键

ANL A, #0FH

MOV SAME, A ;保存

MOV R7, #40 ;延时约20ms

MOV R6, #0

DJNZ R6, $

DJNZ R7, $ - 4

MOV A, P1 ;再读一次按键

ANL A, #0FH

CJNE A, SAME, M_LOOP ;两次不等则是抖动

CPL A

MOV C, ACC.3 ;保存按键信息

MOV R_T, C

MOV C, ACC.2

MOV J_J, C

MOV C, ACC.1

MOV S_T, C

MOV C, ACC.0

MOV L_T, C

SJMP M_LOOP ;继续去读

;--------------------------------

T0_INT:

MOV TH0, #4CH ;定时

PUSH ACC

DJNZ R3, T0_END ;不到5次就退出

MOV R3, #5

;----------------------;以下每隔250ms执行一次

LEFT:

JNB L_T, RIGHT

MOV A, Runw

RRC A

MOV Runw, A

MOV A, Runw + 1

RRC A

MOV Runw + 1, A

MOV A, Runw

MOV ACC.7, C

MOV Runw, A

MOV P2, Runw

MOV P0, Runw + 1

SETB P3.7

CPL P3.6

JMP T0_END

RIGHT:

JNB R_T, STOP

MOV A, Runw

RLC A

MOV Runw, A

MOV A, Runw + 1

RLC A

MOV Runw + 1, A

MOV A, Runw

MOV ACC.0, C

MOV Runw, A

MOV P2, Runw

MOV P0, Runw + 1

CPL P3.7

SETB P3.6

JMP T0_END

STOP:

JNB S_T, JINJI

MOV P2, #0

MOV P0, #0

SETB P3.7

SETB P3.6

JMP T0_END

JINJI:

JNB J_J, NOTHING

MOV P2, #255

MOV P0, #255

CPL P3.7

CPL P3.6

JMP T0_END

NOTHING: ;关闭所有的灯

MOV P2, #255

MOV P0, #255

SETB P3.7

SETB P3.6

T0_END:

POP ACC

RETI

;--------------------------------

END

;试验的时候,应该释放了前一个按键,再按下另一个按键,这才能有理想的结果。

单片机转向灯c语言编程,单片机汇编语言编程:汽车转向灯控制器相关推荐

  1. 单片机汽车转向灯c语言,C51单片机嵌入式系统设计1——模拟汽车转向灯

    之前用了两节课时间测试开发环境,从这节课开始完成一些简单的作品. 实验目的: 1.深入掌握使用单片机各个I/O口的输入输出功能 2.了解汽车灯光控制器的控制需求 3.进一步熟悉延时的编写方法 实验元件 ...

  2. plc和单片机及c语言区别,单片机和PLC的区别大解析

    首先我们先来看下什么是单片机? 什么是PLC? 单片机(英文名:Microcontrollers):它是一种集成电路芯片,单片机也被称为微控制器,是因为它最早被用在工业控制领域. PLC 其实就是可编 ...

  3. stc51单片机入门 c语言,STC51单片机入门 (C语言)

    51单片机发展主要历程:AT89C51系列--STC89C52系列--STC90系列--STC11系列--STC12系列--STC15F系列--STC15W系列(最新主流),由于STC12系列功能已经 ...

  4. 单片机定时器c语言程序,单片机C语言编程定时器的几种表达方式

    单片机C语言编程中,定时器的初值对于初学者真的是比较不好计算,因此我总结了以下几种方法. 第1种方法: #define FOSC 11059200L //晶振的频率 #define TIMS (655 ...

  5. msc51单片机计数器c语言,mcs51单片机计数器工作方式1 计数初值计算与定时编程举例...

    方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成.与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围. ...

  6. 单片机数字滤波c语言程序,单片机系统中数字滤波的算法【C程序整理】

    声明:此内容经本人整理,供大家交流使用.不妥之处,敬请指出.QQ:779589211 吾生有涯 随机误差是有随机干搅引起的,其特点是在相同条件下测量同一个量时,其大小和符号做无规则变化而无法预测,但多 ...

  7. 热电偶单片机代码c语言,基于单片机的热电偶发生器设计(含电路原理图,程序)...

    基于单片机的热电偶发生器设计(含电路原理图,程序)(课题申报表,任务书,开题报告,中期检查表,外文翻译,论文15000字,程序,答辩PPT) 摘 要 热电偶标准信号发生器为袖珍式键控现场检测仪表.其由 ...

  8. 51单片机生成C语言矩形波,单片机产生方波、锯齿波、三角波程序

    单片机 产生方波.锯齿波.三角波程序 #include#define uchar unsigned char #define uint unsigned int unsigned char x=0,m ...

  9. 单片机音乐盒c语言,基于单片机的音乐盒设计与实现

    中图分类号:TP338 文献标识码:A 文章编号:1009-3044(2016)16-0234-03 音乐是由人们在长期发展中为了表达各种情感而特别挑选出来的,并组成一个固定的系统[1].音乐以其具有 ...

  10. 单片机叮咚c语言,基于单片机的叮咚门铃.pdf

    毕业设计(论文) 题 目: 基于单片机的叮咚设计 学生姓名: 学 号: 所在学院: 专业班级: 指导教师: 目 录 前言 3 第 1 章 绪论 4 1.1. 课题背景 4 1.2. 国内外现状 4 第 ...

最新文章

  1. android intent短信,android – 通过Intent发送短信,并知道短信是否已被发送
  2. Django 关联管理器
  3. PHP引用全局作用域中可用的全部变量是,php全局变量之学习笔记
  4. SQL相关路径查询脚本
  5. ROS笔记(29) 启动Movelt!
  6. Android Studio创建签名文件,打包apk,多渠道打包
  7. xml dtd 约束建立xml文档
  8. beeline安装_hive使用beeline配置远程连接
  9. 历往游戏代码与当前DEADXSPACE项目最新进度。
  10. 【转】NGUI创建UIRoot后报NullReferenceException的解决办法
  11. python 字典类型 get 参数_python如何利用urllib解析url参数成字典
  12. Apache Flink 零基础入门(四):客户端操作的 5 种模式
  13. iOS 分享 第三方登录 Twitter 注册应用以及读写权限
  14. 动环监控系统的监控对象有哪些?动环监控系统作用
  15. APISpace 星座查询API
  16. 关于ext2.0基本引入说明引入过多开发环境效验太多老火
  17. 拜占庭将军问题和 Raft 共识算法讲解
  18. 液压器大数据分析 需求调研计划
  19. 网易邮箱服务器地址为imap,网易邮箱IMAP服务
  20. HashMap?面试?我是谁?我在哪?

热门文章

  1. JEECMS 自定义标签
  2. 高数 04.03分部积分法
  3. 常测长策(20180222~)
  4. 利用函数进行ip地址转换
  5. 数据中心服务器部署,数据中心服务器接入部署的布线方式
  6. 引导最大内存_32位系统内存小的解决方法
  7. 【第73期】资深游戏执行策划,很厉害?惊天大忽悠!
  8. git pages部署静态页面,可以免费发布简历之类的静态网页。
  9. viper4android历史版本,VIPER4Android最新版本
  10. 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。