单片机转向灯c语言编程,单片机汇编语言编程:汽车转向灯控制器
按照题目要求,编写了程序,用 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语言编程,单片机汇编语言编程:汽车转向灯控制器相关推荐
- 单片机汽车转向灯c语言,C51单片机嵌入式系统设计1——模拟汽车转向灯
之前用了两节课时间测试开发环境,从这节课开始完成一些简单的作品. 实验目的: 1.深入掌握使用单片机各个I/O口的输入输出功能 2.了解汽车灯光控制器的控制需求 3.进一步熟悉延时的编写方法 实验元件 ...
- plc和单片机及c语言区别,单片机和PLC的区别大解析
首先我们先来看下什么是单片机? 什么是PLC? 单片机(英文名:Microcontrollers):它是一种集成电路芯片,单片机也被称为微控制器,是因为它最早被用在工业控制领域. PLC 其实就是可编 ...
- stc51单片机入门 c语言,STC51单片机入门 (C语言)
51单片机发展主要历程:AT89C51系列--STC89C52系列--STC90系列--STC11系列--STC12系列--STC15F系列--STC15W系列(最新主流),由于STC12系列功能已经 ...
- 单片机定时器c语言程序,单片机C语言编程定时器的几种表达方式
单片机C语言编程中,定时器的初值对于初学者真的是比较不好计算,因此我总结了以下几种方法. 第1种方法: #define FOSC 11059200L //晶振的频率 #define TIMS (655 ...
- msc51单片机计数器c语言,mcs51单片机计数器工作方式1 计数初值计算与定时编程举例...
方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成.与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围. ...
- 单片机数字滤波c语言程序,单片机系统中数字滤波的算法【C程序整理】
声明:此内容经本人整理,供大家交流使用.不妥之处,敬请指出.QQ:779589211 吾生有涯 随机误差是有随机干搅引起的,其特点是在相同条件下测量同一个量时,其大小和符号做无规则变化而无法预测,但多 ...
- 热电偶单片机代码c语言,基于单片机的热电偶发生器设计(含电路原理图,程序)...
基于单片机的热电偶发生器设计(含电路原理图,程序)(课题申报表,任务书,开题报告,中期检查表,外文翻译,论文15000字,程序,答辩PPT) 摘 要 热电偶标准信号发生器为袖珍式键控现场检测仪表.其由 ...
- 51单片机生成C语言矩形波,单片机产生方波、锯齿波、三角波程序
单片机 产生方波.锯齿波.三角波程序 #include#define uchar unsigned char #define uint unsigned int unsigned char x=0,m ...
- 单片机音乐盒c语言,基于单片机的音乐盒设计与实现
中图分类号:TP338 文献标识码:A 文章编号:1009-3044(2016)16-0234-03 音乐是由人们在长期发展中为了表达各种情感而特别挑选出来的,并组成一个固定的系统[1].音乐以其具有 ...
- 单片机叮咚c语言,基于单片机的叮咚门铃.pdf
毕业设计(论文) 题 目: 基于单片机的叮咚设计 学生姓名: 学 号: 所在学院: 专业班级: 指导教师: 目 录 前言 3 第 1 章 绪论 4 1.1. 课题背景 4 1.2. 国内外现状 4 第 ...
最新文章
- android intent短信,android – 通过Intent发送短信,并知道短信是否已被发送
- Django 关联管理器
- PHP引用全局作用域中可用的全部变量是,php全局变量之学习笔记
- SQL相关路径查询脚本
- ROS笔记(29) 启动Movelt!
- Android Studio创建签名文件,打包apk,多渠道打包
- xml dtd 约束建立xml文档
- beeline安装_hive使用beeline配置远程连接
- 历往游戏代码与当前DEADXSPACE项目最新进度。
- 【转】NGUI创建UIRoot后报NullReferenceException的解决办法
- python 字典类型 get 参数_python如何利用urllib解析url参数成字典
- Apache Flink 零基础入门(四):客户端操作的 5 种模式
- iOS 分享 第三方登录 Twitter 注册应用以及读写权限
- 动环监控系统的监控对象有哪些?动环监控系统作用
- APISpace 星座查询API
- 关于ext2.0基本引入说明引入过多开发环境效验太多老火
- 拜占庭将军问题和 Raft 共识算法讲解
- 液压器大数据分析 需求调研计划
- 网易邮箱服务器地址为imap,网易邮箱IMAP服务
- HashMap?面试?我是谁?我在哪?