首页 > 应用 > 单片机应用
[导读]
;刚才在百度知道上看到一个题目:http://zhidao.baidu.com/question/439326240.html;转眼之间,知道宝贝又找不到了,百度真是变化莫测。;呵呵,做而论道已经提前一步保存下来了题目的要求。;==========

;刚才在百度知道上看到一个题目:http://zhidao.baidu.com/question/439326240.html

本文引用地址: http://www.21ic.com/app/mcu/201806/764432.htm

;转眼之间,知道宝贝又找不到了,百度真是变化莫测。

;呵呵,做而论道已经提前一步保存下来了题目的要求。

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

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

;1号键(左转向)按下时 实现P3.6闪亮,P0-P2口左流水;
;2号键(右转向)按下时 实现P3.7闪亮,P0-P2口右流水;
;3号键(刹车键)按下时 实现P0-P2口同时亮;
;4号键(紧急状况键) 按下时 实现P3.6和P3.7同时闪亮。

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

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

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



;图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/b4f3e2dea9ec8a134811484bf703918fa1ecc077.html#

;程序如下:

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

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


换一批

延伸阅读

[单片机应用] 单片机通信时序解析

单片机通信时序解析

随着我们对通信技术的深入学习,大家要逐渐在头脑中建立起时序这种概念。所谓“时序”从字面意义上来理解,一是“时间问题”,二是“顺序问题”。先说“顺序问题”,这个相对简单一些。我们在学 UART 串口通信的时候......

关键字:单片机 通信时序

[单片机应用] 51单片机学习笔记,操作1602液晶

51单片机学习笔记,操作1602液晶

TX-1C板操作并行模式的1602液晶液晶第1,2脚是gnd和vcc第3脚是对比度调节第4脚是数据/指令选择端RS第5脚是读写选择端R/W,我们这次只写不读,故直接接地第6脚是读写使能EN第7到14脚是数据口,我们接STC89C52RC的P......

关键字:51单片机 1602液晶

[单片机应用] ARM7单片机(学习ing)—(一)、输入/输出端口GPIO编程—02

ARM7单片机(学习ing)—(一)、输入/输出端口GPIO编程—02

一、输入/输出端口GPIO编程一—(02)、控制LCD1602显示~~废话不多说了~~直接上图~~然后是程序~~MDK1_2.c//------------------------------------------------------......

关键字:ARM7 单片机 GPIO编程

[单片机新品] 加强物联网安全防御能力!ST推出STM32L5超低功耗微控制器

  加强物联网安全防御能力!ST推出STM32L5超低功耗微控制器

意法半导体(STMicroelectronics,简称ST)推出新的STM32L5系列®Cortex®-M33内核微控制器(MCU),为低功耗物联网设备带来先进的网络保护功能。 ......

关键字:物联网 微控制器 ST STM32L5

[单片机应用] 固态继电器在PIC单片机控制的多回路温度检测系统的应用

固态继电器在PIC单片机控制的多回路温度检测系统的应用

1.引言 对于塑料制瓶工艺, 塑料加热处于溶融状态, 经高压注射成为管胚, 短时间冷却以后, 经过高压空气的吹胀, 在制瓶模具中成型。其工艺特点之一是: 溶融状态下的塑料定时流动; 成为管胚之后, 将与外部空气接触 2......

关键字:固态继电器 PIC 单片机控制 温度检测系统

[单片机应用] 单片机程序有多大 怎么看

单片机程序有多大 怎么看

这个问题,在我接触的单片机初学者当中,很多人都遇到过,是什么问题呢?给大家举个栗子:先介绍一下常识:hex文件,就是我们要下载到单片机中的程序文件,而每一种单片机,都有一定的程序存储空间,一般就是多少K的......

关键字:单片机 程序

[单片机应用] 破解MCU难于上青天?这几招告诉你什么叫大神

破解MCU难于上青天?这几招告诉你什么叫大神

时序攻击可用在安全保护是基于密码的微控制器,或使用确定数字的卡或密码来进行访问控制的系统,如达拉斯的iButton产品。这些系统中共有的风险是输入的连续数字在数据库进行再次校验。首先明白MCU是什么——即结构与......

关键字:微控制器 MCU

我 要 评 论

网友评论

芯闻号

技术子站

更多

项目外包

更多

推荐博客