资源描述:
《课程设计报告-----广告灯》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、河北工业大学计算机硬件技术基(MCS-51单片机原理及应用)课程设计报告题目:广告灯的数字显示学院一、问题的提出用八个发光二极管代替广告灯,实现广告灯的循环以及花样变化!二、总体设计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个发光二极管从左
2、依次点亮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)软件设计:各功能模块详见程序清单后注释。三、
3、详细设计:1、硬件详细设计:时间间隔可采用软件延时或定时器定时,软件延时:8031时钟频率11.0592MHz,延时0.5S,P1口输出。采用定时器0定时延时:ORG800BHLJMPTOS定时器0赋定时初值:MOVTH0,#4CHMOVTL0,#00H电路图:定时中断子程序:TOS:MOVTH0,#4CHMOVTL0,#00HINCR0CJNER0,#10,LLMOVR0,#00H…………RETI外部中断子程序:INT1S:PUSHACC…………POPACCRETI2、软件详细设计:软件延时:DELAY:
4、MOV31H,#0MOV32H,#0LOOP2:DJNZ32H,$DJNZ32H,$DJNZ32H,$DJNZ32H,$DJNZ31H,LOOP2RET逐个点亮:NEXT1:MOVP1,ACLRCRLCAINCR1SJMPNEXT逐个熄灭:NEXT3:MOVP1,ASETBCRRCAINCR2SJMPNEXT循环点亮:NEXT13:MOVP1,ARLAINCR7SJMPNEXT闪烁:NEXT11:MOVP1,ACPLAINCR6SJMPNEXT花样变换:见外部中断1子程序。3、设计中的主要困难及解决方案1)
5、.通过一个定时器来定时延时,将多个循环过程串联起来,需要解决各个循环之间的衔接问题。本实验中通过借用计数器(R0~R7,20H,30H等)来实现查询等待,通过D1:CJNER1,#8,D1语句巧妙的把多个循环串联在一起!2)。通过外部中断实现广告灯的花样变化,需借助软件延时!外部中断通过硬件连线、边沿触发实现!外部中断的花样变化为本实验的又一亮点!四、程序清单1.流程图2.程序清单ORG8000HLJMPMAINORG800BH;定时器0入口地址LJMPTOSORG8013H;外部中断1入口地址LJMPIN
6、T1SMAIN:MOVSP,#60H;主程序MOVTMOD,#09HMOVTH0,#4CHMOVTL0,#00HMOVR0,#00HMOVIE,#10000010BSETBTR0SETBEX1SETBPX1MOVR1,#0;计数器MOVR2,#0MOVR3,#0MOVR4,#0MOVR5,#0MOVR6,#0MOVR7,#0MOV20H,#0MOV30H,#0MOVA,#0FEHD1:CJNER1,#8,D1;查询等待,以下雷同。MOVA,#00HD2:CJNER2,#9,D2MOVA,#00HD3:CJN
7、ER3,#5,D3MOVA,#7FHD4:CJNER4,#8,D4MOVA,#00HD5:CJNER5,#10,D5MOVA,#00HD6:CJNER6,#5,D6MOVA,#0FEHD7:CJNER7,#8,D7MOVA,#7FHD8:PUSHACCMOVA,20HCJNEA,#08H,L1POPACCSJMPL2L1:POPACCSJMPD8L2:MOVA,#00HD9:PUSHACCMOVA,30HCJNEA,#11,L3POPACCSJMPL4L3:POPACCSJMPD9L4:MOVA,#0FFH
8、LJMPMAIN;主程序循环TOS:MOVTH0,#4CH;定时延时子程序MOVTL0,#00HINCR0CJNER0,#10,LLMOVR0,#00HCJNER1,#8,NEXT1SJMPNEXT2LL:CPLP3.0LJMPNEXTNEXT1:MOVP1,A;向右逐个点亮CLRCRLCAINCR1SJMPNEXTNEXT2:CJNER2,#9,NEXT3SJMPNEXT4NEXT3:MOVP1,A;向左逐个熄