作业帮 > 综合 > 作业

利用单片机、1个按钮(注意是按钮,不是开关)、8个LED发光二极管,要求:

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/07 16:07:51
利用单片机、1个按钮(注意是按钮,不是开关)、8个LED发光二极管,要求:
按一次按钮,LED往下点亮1个(原来亮的熄灭),如果已经到最下面,则从最上面LED重复上述动作.
你是要程序还是要思路?
-
要硬件还是软件?
要原理图还是吗?
你计划用什么芯片型号?
假设你用的是C51单片机-
思路
-
利用外部中断0或者外部中断1-(引脚P3.3或者P3.2连接一个按钮-按钮另一端接地-)
8个LED灯连续分别接P1.0-P1.7这8个引脚-
硬件粗糙连接完毕!能直接使用!(单片机能直接驱动普通小型LED的,大的LED话,就用三极管之类的!)
-
软件思路
打开外部中断0或者1,或者同时打开!
打开总中断-
当按键按下时(不管你松开与否)-系统会自动进入中断服务程序-
-
中断服务程序如下-
清除外部中断标志-
P1口的值左移或右移一位,再返回给P1口-
中断结束-
-
程序结束
-
你想要汇编还是要C语言啊?
如果不懂,可以继续问哦!
希望能给你帮助!
再问: 能不能写下 程序啊,AT89S51的单片机,汇编语言的,谢谢了
再答: - 使用P3.2外部中断0,接按钮,P1口接8个LED灯-LED等另一端接地- .ASM - ORG 0000H LJMP MAIN ORG 0003H //预留外部中断0口- LJMP INT_0 ORG 0030H MAIN: MOV A,01H MOV P1,A SETB IT0 //设置边沿触发-外中断0- SETB EX0 //开放外部中断- SETB EA //开放总中断- SJMP $ //原地等待- INIT_0: RRC A //右移动- MOV P1,A //流水灯亮- RETI END - 现场编写,难免有错哦,你拿去试试-不行的话,再回来找我!