关于单片机多功能键盘按键识别设置谁会?

来源:百度知道 编辑:UC知道 时间:2024/06/12 00:24:49
开关SP1接在P3.7/RD管脚上,在AT89S51单片机的P1端口接有四个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁,再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁,再按下开关SP1的时候,又轮到L1在闪烁了,如此轮流下去。
本系统采用AT89C51单片机、四个发光二极管、四个电阻、一个开关及电源组成。开关SP1接在P3.7/RD管脚上,在AT89C51单片机的P1端口接有四个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁,再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁,再按下开关SP1的时候,又轮到L1在闪烁了,如此轮流下去。晶振频率为12MHZ,发光二极管闪烁的频率为0.4S。每隔10MS检测一下开关状态。 请求高手帮我设计一个汇编语言程序!!~~~~谢谢 老师要求用汇编语言编写!

;自己写代码,给你思路:
;定义一个值flashbit,存放值1到4,控制L1L2L3L4哪个闪烁

中断向量表

主程序:
初始化,端口输入输出,定时器中断设置(200ms),使能中断
flashbit=1
loop:
按键判断(才一个按键,判断有,延时10ms,还有,按键有效)
无按键 jmp loop
有按键,判断flashbit是否等于4,是=1;不是+1
jmp loop

200ms中断入口:
入栈保护push
flashbit=1 L1取反,L2L3L4=0 jmp endt
flashbit=2 L2取反,L1L3L4=0 jmp endt
flashbit=3 L3取反,L1L2L4=0 jmp endt
flashbit=4 L4取反,L1L2L3=0
endt:
出栈pop
reti

用C就很简单了哦 汇编不好编的 用惯了C就觉得用汇编很难

最近没有空,过两天就帮你写啊