收藏 分销(赏)

单片机课程设计广告灯.doc

上传人:xrp****65 文档编号:7680835 上传时间:2025-01-12 格式:DOC 页数:9 大小:56.50KB 下载积分:10 金币
下载 相关 举报
单片机课程设计广告灯.doc_第1页
第1页 / 共9页
单片机课程设计广告灯.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
广告灯 一、问题的提出 用八个发光二极管代替广告灯,实现广告灯的循环以及花样变化! 二、总体设计 1、分析问题的功能 将P1 口的8个引脚分别接8位发光二极管0,1,2,3,4,5,6,7。通过控制P1口的输出,实现每隔0.5s接在P1 口的8个发光二极管从右依次点亮0,1,2,3,4,5,6,7,然后从左依次熄灭7,6,5,4,3,2,1,0,然后8个发光二极管全部点亮,闪烁3 次;接着,每隔0.5s接在P1 口的8个发光二极管从左依次点亮7,6,5,4,3,2,1,0,然后从右依次熄灭0,1,2,3,4,5,6,7,然后8个发光二极管全部点亮,闪烁3 次;接着8个二极管从左轮流点亮0,1,2,3,4,5,6,7,然后8个二极管从右轮流点亮7,6,5,4,3,2,1,0,然后8个发光二极管全部点亮,闪烁5 次,之后全灭;如此反复循环。 循环过程中通过中断加入一些广告灯的花样变化。 2、系统总体结构设计 1)硬件设计:8031单片机,DP-51PROC综合仿真实验仪,P1口,定时器0,外部中断1等。 2)软件设计:各功能模块详见程序清单后注释。 三、详细设计: 1、硬件详细设计: 时间间隔 可采用软件延时或定时器定时,软件延时:8031时钟频率11.0592MHz,延时0.5S,P1口输出。 采用定时器0定时延时: ORG 800BH LJMP TOS 定时器0赋定时初值: MOV TH0,#4CH MOV TL0,#00H 电路图: 定时中断子程序: TOS: MOV TH0,#4CH MOV TL0,#00H INC R0 CJNE R0,#10,LL MOV R0,#00H …… …… RETI 外部中断子程序: INT1S: PUSH ACC …… …… POP ACC RETI 2、软件详细设计: 软件延时: DELAY: MOV 31H,#0 MOV 32H,#0 LOOP2: DJNZ 32H,$ DJNZ 32H,$ DJNZ 32H,$ DJNZ 32H,$ DJNZ 31H,LOOP2 RET 逐个点亮: NEXT1:MOV P1,A CLR C RLC A INC R1 SJMP NEXT 逐个熄灭: NEXT3:MOV P1,A SETB C RRC A INC R2 SJMP NEXT 循环点亮: NEXT13:MOV P1,A RL A INC R7 SJMP NEXT 闪烁: NEXT11:MOV P1,A CPL A INC R6 SJMP NEXT 花样变换: 见外部中断1子程序。 3、设计中的主要困难及解决方案 1).通过一个定时器来定时延时,将多个循环过程串联起来,需要解决各个循环之间的衔接问题。本实验中通过借用计数器(R0~R7,20H,30H等)来实现查询等待,通过D1:CJNE R1,#8,D1语句巧妙的把多个循环串联在一起! 2)。通过外部中断实现广告灯的花样变化,需借助软件延时!外部中断通过硬件连线、边沿触发实现! 外部中断的花样变化为本实验的又一亮点! 四、程序清单 1.流程图 2.程序清单 ORG 8000H LJMP MAIN ORG 800BH ;定时器0入口地址 LJMP TOS ORG 8013H ;外部中断1入口地址 LJMP INT1S MAIN:MOV SP,#60H ;主程序 MOV TMOD,#09H MOV TH0,#4CH MOV TL0,#00H MOV R0,#00H MOV IE,#10000010B SETB TR0 SETB EX1 SETB PX1 MOV R1,#0 ;计数器 MOV R2,#0 MOV R3,#0 MOV R4,#0 MOV R5,#0 MOV R6,#0 MOV R7,#0 MOV 20H,#0 MOV 30H,#0 MOV A,#0FEH D1:CJNE R1,#8,D1 ;查询等待,以下雷同。 MOV A,#00H D2:CJNE R2,#9,D2 MOV A,#00H D3:CJNE R3,#5,D3 MOV A,#7FH D4:CJNE R4,#8,D4 MOV A,#00H D5:CJNE R5,#10,D5 MOV A,#00H D6:CJNE R6,#5,D6 MOV A,#0FEH D7:CJNE R7,#8,D7 MOV A,#7FH D8:PUSH ACC MOV A,20H CJNE A,#08H,L1 POP ACC SJMP L2 L1:POP ACC SJMP D8 L2:MOV A,#00H D9:PUSH ACC MOV A,30H CJNE A,#11,L3 POP ACC SJMP L4 L3:POP ACC SJMP D9 L4:MOV A,#0FFH LJMP MAIN ;主程序循环 TOS:MOV TH0,#4CH ;定时延时子程序 MOV TL0,#00H INC R0 CJNE R0,#10,LL MOV R0,#00H CJNE R1,#8,NEXT1 SJMP NEXT2 LL:CPL P3.0 LJMP NEXT NEXT1:MOV P1,A ;向右逐个点亮 CLR C RLC A INC R1 SJMP NEXT NEXT2:CJNE R2,#9,NEXT3 SJMP NEXT4 NEXT3:MOV P1,A ;向左逐个熄灭 SETB C RRC A INC R2 SJMP NEXT NEXT4:CJNE R3,#5,NEXT5 SJMP NEXT6 NEXT5:MOV P1,A ;闪烁 CPL A INC R3 SJMP NEXT NEXT6:CJNE R4,#8,NEXT7 SJMP NEXT8 NEXT7:MOV P1,A ;向左逐个点亮 CLR C RRC A INC R4 SJMP NEXT NEXT8:CJNE R5,#10,NEXT9 SJMP NEXT10 NEXT9:MOV P1,A ;向右逐个熄灭 SETB C RLC A INC R5 SJMP NEXT NEXT10:CJNE R6,#5,NEXT11 SJMP NEXT12 NEXT11:MOV P1,A ;闪烁 CPL A INC R6 SJMP NEXT NEXT12:CJNE R7,#8,NEXT13 SJMP NEXT14 NEXT13:MOV P1,A ;向左循环点亮 RL A INC R7 SJMP NEXT NEXT14:PUSH ACC MOV A,20H CJNE A,#8,L5 POP ACC SJMP L6 L5:POP ACC SJMP NEXT15 L6:SJMP NEXT16 NEXT15:MOV P1,A ;向右循环点亮 RR A INC 20H SJMP NEXT NEXT16:PUSH ACC MOV A,30H CJNE A,#11,L7 POP ACC SJMP L8 L7:POP ACC SJMP NEXT17 L8:SJMP NEXT NEXT17:MOV P1,A ;闪烁 CPL A INC 30H NEXT:RETI ;中断子程序返回 INT1S:PUSH ACC ;外部中断1子程序 MOV A,#0FFH CLR C MOV P1,A ;花样变化 SUBB A,#81H MOV P1,A SUBB A,#42H LCALL DELAY MOV P1,A SUBB A,#24H LCALL DELAY MOV P1,A SUBB A,#18H LCALL DELAY MOV P1,A ADD A,#18H LCALL DELAY MOV P1,A ADD A,#24H LCALL DELAY MOV P1,A ADD A,#42H LCALL DELAY MOV P1,A ADD A,#81H LCALL DELAY MOV P1,A LCALL DELAY MOV A,#0AAH MOV 21H,#4 LOOP:RL A MOV P1,A LCALL DELAY DJNZ 21H,LOOP MOV A,#0FFH MOV P1,A SUBB A,#18H LCALL DELAY MOV P1,A SUBB A,#24H LCALL DELAY MOV P1,A SUBB A,#42H LCALL DELAY MOV P1,A SUBB A,#81H LCALL DELAY MOV P1,A ADD A,#81H LCALL DELAY MOV P1,A ADD A,#42H LCALL DELAY MOV P1,A ADD A,#24H LCALL DELAY MOV P1,A ADD A,#18H LCALL DELAY MOV P1,A LCALL DELAY MOV A,#0AAH MOV 22H,#8 LOOP1:RR A MOV P1,A LCALL DELAY DJNZ 22H,LOOP1 POP ACC RETI ;中断子程序返回 DELAY:MOV 31H,#0 MOV 32H,#0 LOOP2:DJNZ 32H,$ DJNZ 32H,$ DJNZ 32H,$ DJNZ 32H,$ DJNZ 31H,LOOP2 RET ;子程序返回 END 五、调试程序的方法 1、 硬件调试方法(确定硬件工作是否正常) 硬件连线正确,仿真器工作正常,接通电源。 2、软件调试方法(如何调试程序的方法) 程序编译通过,无错误,无警告,调试并运行主程序。 六、对该设计题目有何更完善的方案 对自己完成程序进行自我评价及对课题提出更完善的方案。 经过一段时间的努力,本实验完成了任务书的基本要求,并做了一些创新。但是程序的运行过程仍然停留在发光二极管的设计上,没有进行对其他领域的扩展,例如:将发光二极管和LED显示器连接起来,让广告灯的变化驱动LED显示器数字的变化,使效果更显著,功能更齐全等。 七、收获及心得体会 以前对单片机课程很是抵触,觉得它太难学,但通过本次硬件设计,我对单片机产生浓厚的兴趣。通过这次设计对理论知识掌握的更加牢固,以前搞不懂的地方通过这次设计弄明白了,而且学到了许多新东西。开拓了视野,拓展了思路,能灵活应用硬件汇编语言设计一些简单的程序实现一些功能。总之,这次设计我获益匪浅,感谢学院给我们这次锻炼和学习的机会。 日期: 2007年 12月30 日
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服