《单片机原理及应用》课程实训指导.doc_第1页
《单片机原理及应用》课程实训指导.doc_第2页
《单片机原理及应用》课程实训指导.doc_第3页
《单片机原理及应用》课程实训指导.doc_第4页
《单片机原理及应用》课程实训指导.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

200420057年下年上学期高应计五电子二1051班单片机原理及应用课程设计(实训)指导书根据教学计划的安排和教学大纲的要求,本学期应电1051班在学完单片机原理及应用课程以后,进行为期一周的单片机原理及应用课程实训。一、实训目的1、熟悉单片机应用系统的开发、研制过程。2、能运用MCS-51单片机进行简单的单片机应用系统的硬件设计。3、能采用MCS-51单片机汇编语言进行简单的单片机应用系统的软件设计。4、掌握单片机应用系统的硬件、软件调试方法。5、熟悉单片机仿真开发系统的作用,基本掌握运用单片机仿真开发系统进行在线仿真、调试和目标程序固化的方法。6、为今后从事单片机应用系统的开发、生产和维护工作奠定基础。二、时间地点时间: 200420057年上上学期校历第181418周 地点:实训中心(机房和单片机实验室)三、指导老师文其知四二、设计(实训)课题内容要求(一) 实训要求1、本次实训分组进行,具体分成几组详见实训计划,。每组指定一名组长,分组表由各班班长提供。全班21人分成7组,每组3人,每组从1开始编号。由班长负责分组和组长的确定,组长负责组内成员的分工和协调工作。由各班班长负责分组和组长的确定,并将分组表提供给指导老师。2、利用所提供的实训器材,每组独立完成下面实训内容中列出的一个实训课题中的一个。12组完成课题1,35组完成课题2,67组完成课题3具体到哪一组完成哪一个课题,由指导老师确定。3、程序设计中要求用到定时器中断,即定时器以中断方式实现定时。4、完成实训后或实训期满时,每组应主动将本组完成的样机交给指导老师验收,作为实训成绩评定的重要依据之一。结束实训后的第二天每人提交一份实训报告。报告中应指出组内成员的分工及完成情况,谈谈每人的实训收获与感想。报告格式必须符合学院规定的规范格式。(二) 三、实训课题内容课题1、城市十字路口交通信号灯控制系统的设计与制作1、课题任务(1) 基本功能:在马路的十字路口东西南北各设置红、黄、绿3种信号灯,4个路口共12个信号灯。控制的过程为:当东西方向通车时绿灯亮,而南北方向红灯亮;当通车的时间到后,东西方向的绿灯灭,而黄灯亮,黄灯闪烁若干次后由东西方向换到南北方向通车。此时,东西方向黄灯灭而红灯亮,南北方向红灯灭而绿灯亮,南北方向开始通车。通车时间到后,南北方向绿灯灭,黄灯闪烁若干次后由南北方向切换到东西方向,南北方向黄灯灭,红灯亮;而东西方向红灯灭,绿灯亮。如此不断循环。如下图所示: 北红 绿 黄 绿 红绿红 红西 黄 黄 东红绿 绿绿 黄 红 南(2)、 扩展功能:增设两个按钮键(1个“调整/确认健”、1个“加1秒键”),用于调整红、黄、绿灯的显示时间。两键功能定义如下:l 在正常工作状态下,按住“调整/确认健”3秒,则进入调整各灯显示时间(即各方向的通车时间)状态,此时南北绿灯亮,其余灯全灭,表示调整南北通车时间;l 要想使灯亮时间为n秒,则按n次“加1秒键”;l 按一下“调整/确认健”,则进入调整黄灯显示时间状态,此时南北黄灯亮,其余灯全灭;l 黄灯显示时间设好后,再按一下“调整/确认健”,则进入调整红灯显示时间状态(即东西通车时间),此时南北红灯亮,其余灯全灭;l 南北红灯显示时间设好后,再按一下“调整/确认健”,则恢复正常工作状态。2、课题要求(1) 所有信号灯全部用5发光二极管替代。(2) 单片机采用89C51或89S51(内含4KB程序存储器,与MCS-51兼容)。=12MHZ。(3) 延时时间用单片机的定时器实现。(34) 因CMOS型单片机的拉电流很小,为了减少额外的驱动开销,所有发光二极管采用共阳极接法。3、参考设计方案(1) (1) 参考硬件电路以下电路用于实现其“基本功能”。 说明:电源部分的电路未给出,下面给出电路也未画出电源部分。(2) 参考控制程序略 用软件延时实现的“基本功能”参考程序如下:5ORG 0000HSJMP STARTORG 0030HSTART: MOV A,#0FFHMOV P1,AMOV P0,ALP: MOV R7,#11 CLR P0.0CLR P0.1CLR P1.2CLR P1.3LCALL DELAY50sSETB P1.2SETB P1.3CLR P0.6CLR P0.7LP1: LCALL DELAYCPL P0.6CPL P0.7DJNZ R7,LP1MOV R7,#11CLR P0.2CLR P0.3SETB P0.0SETB P0.1CLR P1.0CLR P1.1LCALL DELAY50SSETB P1.0SETB P1.1CLR P0.4CLR P0.5LP2: LCALL DELAYCPL P0.4CPL P0.5DJNZ R7,LP2AJMP LP说明:子程序DELAY50s和DELAY未给出。用硬件延时实现的包括“扩展功能”的参考程序如下: 9 SETKEY DATA 02H ADD1KEY DATA 01H L_TIME DATA 20 H_TIME DATA 5 ORG 0000H SJMP START ORG 000BH LJMP T0 ORG 0030HSTART: MOV SP,#5FH MOV 31H,#L_TIME MOV 32H,#H_TIMERESTART:MOV 30H,#20 MOV 40H,#1 MOV 41H,#2 MOV 42H,#60 MOV 43H,31H MOV 20H,#0 MOV TMOD, #01H MOV TH0 , #3CH MOV TL0 , #0B0H MOV IE, #82H MOV IP, #02H MOV TCON, #10H ;南北通车 MOV P0,#0FCH MOV p2,#0F3HLP9: CLR 20H.0LP6: LCALL KEYSET CJNE A,#SETKEY,LP6 SETB 20H.0;按下了设置键,则20H.0=1LP8: LCALL KEYSET CJNE A,#SETKEY,BLP1;松开了设置键,转 ;保持按住设置键LP7: MOV A,40H JNZ LP8;按住设置键的时间不足3秒,则转 MOV P0,#0FFH MOV p2,#0F0H ;调整绿灯亮的时间,绿灯全亮 ,其余全灭 SJMP LP8BLP1: MOV A,40H JNZ LP9;不调整时间,转 MOV P0,#0FFH;调整绿灯亮的时间,绿灯全亮 ,其余全灭 MOV p2,#0F0HLP12: LCALL KEY CJNE A,#ADD1KEY,LP10 SJMP LP11LP10: CJNE A,#SETKEY,LP12 MOV P0,#0FH; 调整黄灯亮的时间,黄灯全亮 ,其余全灭 MOV p2,#0FFH DJNZ 41H,LP12 LJMP RESTART;调整时间完毕,重新开始LP11: MOV A,41H CJNE A,#2,LP13 JB 20H.1,LP14 SETB 20H.1;20H.1=1表示已调整了绿灯亮的时间 MOV 31H,#1 SJMP LP12LP14: INC 31H SJMP LP12LP13: JB 20H.2,LP15 SETB 20H.2;20H.2=1表示已调整了黄灯亮的时间 MOV 32H,#1 SJMP LP12LP15: INC 32H SJMP LP12KEY: MOV A,p1 ANL A,#03H CJNE A,#03H,LP1;有键按下,转 SJMP KEYLP1: LCALL DL20MS;延时去抖 MOV A,p1 ANL A,#03H CJNE A,#03H,LP2;确认有键按下,转 SJMP KEYLP2: PUSH ALP3: MOV A,p1;等键释放 ANL A,#03H CJNE A,#03H,LP3 POP A RETKEYSET: MOV A,p1 ANL A,#03H CJNE A,#03H,LP4 SJMP LP5LP4: LCALL DL20MS MOV A,p1 ANL A,#03HLP5: RETDL20MS: MOV R7,#40DL1: MOV R6,#250DL2: DJNZ R6,DL2 DJNZ R7,DL1 RET ORG 0400HT0: MOV TH0 , #3CH MOV TL0 , #0B0H PUSH PSW PUSH A JNB 20H.0,LP16;未按下设置键,转 DJNZ 42H,LP17;按住设置键不足3秒,转 ;MOV 42H,#60 MOV 40H,#0;(40H)=0表示正在调整交通灯点亮的时间 CLR TR0 LJMP EXITLP16: MOV 42H,#60LP17: MOV A,#2 CJNE A,40H,LP18 DJNZ 33H,LP19;南北黄灯闪烁间隔时间未到,转 CPL P0.6 CPL P0.7LP20: MOV 33H,#5 SJMP LP19LP18: MOV A,#4 CJNE A,40H,LP19 DJNZ 33H,LP19;东西黄灯闪烁间隔时间未到,转 CPL P0.4 CPL P0.5 SJMP LP20LP19: DJNZ 30H,EXIT;加时不到1秒,退出 MOV 30H,#20 DJNZ 43H,EXIT;点亮时间未到,退出 INC 40H MOV A,40H DEC A CLR C RLC A MOV DPTR,#TAB JMP A+DPTRTAB: SJMP CASE1 SJMP CASE2 SJMP CASE3 SJMP CASE4 SJMP CASE5CASE1: MOV P0,#0FCH;南北通车 MOV p2,#0F3H MOV 43H,31H SJMP EXITCASE2: MOV P0,#3CH;南北黄灯亮 MOV p2,#0FFH MOV 43H,32H MOV 33H,#5 SJMP EXITCASE3: MOV P0,#0F3H;东西通车 MOV p2,#0FCH MOV 43H,31H SJMP EXITCASE4: MOV P0,#0C3H;东西黄灯亮 MOV p2,#0FFH MOV 43H,32H MOV 33H,#5 SJMP EXITCASE5: MOV 40H,#1 SJMP CASE1EXIT: POP A POP PSW RETI 用软件延时实现的“基本功能”程序如下(扩展功能程序未给出):ORG 0000HSJMP STARTORG 0030HSTART: MOV A,#0FFHMOV P1,AMOV P0,ALP: MOV R7,#11 CLR P0.0CLR P0.1CLR P1.2CLR P1.3LCALL DELAY50sSETB P1.2SETB P1.3CLR P0.6CLR P0.7LP1: LCALL DELAYCPL P0.6CPL P0.7DJNZ R7,LP1MOV R7,#11CLR P0.2CLR P0.3SETB P0.0SETB P0.1CLR P1.0CLR P1.1LCALL DELAY50SSETB P1.0SETB P1.1CLR P0.4CLR P0.5LP2: LCALL DELAYCPL P0.4CPL P0.5DJNZ R7,LP2AJMP LP说明:子程序DELAY50s和DELAY未给出。课题2、比赛用秒表的设计与制作1、课题任务秒表功能如下:1 两个数码管显示秒,用一个数码管显示零点几秒,最多可显示99.9秒。 一个按钮用于启动或停止计时,启动和停止交替进行。如:若当前正在计时,按该按钮则停止计时;若当前已停止计时,按该按钮则继续计时。若计时到99.9秒后又从0.00秒继续计时,循环不止。 另一个按钮用于计时器清零。只有在停止计时的时候方可清零。2、课题要求 (1) 时间的定时采用89C51单片机的定时器和软件计数的方式实现。(2) 因CMOS型单片机的拉电流很小,为了减少额外的驱动开销,采用共阳极的数码管。3、参考设计方案(1) 参考硬件电路用89C51的P0、P1、P2口分别连接三个共阳数码管。两个按钮连到P3口的任意两个引脚。=12MHZ。具体的硬件电路略。(2) 参考控制程序略(2) 提示:参考控制程序采用定时器T0工作在方式1定时50ms,计数初值为15536,用软件计数20次即为1秒。具体程序略。参考控制程序如下: 26ORG 0000H SJMP START ORG 000BH LJMP T0INT ORG 0030HSTART: MOV SP,#5FH MOV TMOD, #01H MOV TH0 , #3CH MOV TL0 , #0B0H MOV IE,#82H MOV IP,#02H SETB TR0 CLR A MOV 50H,A MOV 51H,A MOV 52H,#2 ORL P3,#03HRDKEY: ACALL DISPLAY MOV A,P3 ANL A,#03H CJNE A,#03H,NEXT;有键按下,转 SJMP RDKEYNEXT: JZ RDKEY JNB ACC.0,KEY0;KEY0为启动/暂停键KEY1: JB TR0,RDKEY;KEY1为清零键,计时时不准清零 CLR A MOV 50H,A MOV 51H,A ACALL DISPLAY SJMP KEYOFFKEY0: CPL TR0KEYOFF:ACALL DL20MSWAIT: MOV A,P3;等键释放 ANL A,#03H CJNE A,#03H,WAIT SJMP RDKEYDISPLAY:MOV DPTR,#TAB MOV A,50H ANL A,#0FH MOVC A,A+DPTR MOV P2,A;P2口显示小数位 MOV A,50H ANL A,#0F0H SWAP A MOVC A,A+DPTR ANL A,#7FH MOV P0,A;P1口显示个位 MOV A,51H ANL A,#0FH MOVC A,A+DPTR MOV P1,A;P0口显示十位 RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90HT0INT: MOV TH0 , #3CH;T0中断服务程序 MOV TL0 , #0B0H DJNZ 52H,QUIT PUSH PSW PUSH A MOV 52H,#2 MOV A,50H ADD A,#01H DA A MOV 50H,A MOV A,51H ADDC A,#00H DA A CJNE A,#10H,SEND CLR ASEND: MOV 51H,A ACALL DISPLAY POP A POP PSWQUIT: RETIDL20MS: MOV R7,#40DL2:MOV R6,#250DL1:DJNZ R6,DL1DJNZ R7,DL2RET课题3、模拟霓虹灯控制系统的设计与制作1、课题任务(1)、 基本功能:用一个5发光二极管代表一个灯。将16个红、黄、绿3色灯排成一排或排成一个环行,如:红1-黄2-绿3-红4-黄5-绿6-红7-黄8-绿9-红10-黄11-绿12-红13-黄14-绿15-红16,其中数字116为各灯的编号,让各灯循环交替显示,从而获得街上霓虹灯的显示效果。以下为一种霓虹灯的显示效果: 用一个5发光二极管代表一个灯。将16个红、黄、绿3色灯排成一排或排成一个环行,如:红1-黄2-绿3-红4-黄5-绿6-红7-黄8-绿9-红10-黄11-绿12-红13-黄14-绿15-红16,其中数字116为各灯的编号。下面的叙述中用此编号表示不同的灯。 按116、161的顺序依次逐个点亮,任意时刻只有一个灯点亮。 灯全灭后,让所有灯同时闪烁3次。 灯全亮,然后按116的顺序依次熄灭一个灯,直到全灭;再按161的顺序依次点亮,直到所有灯全亮。 所有红色灯同时闪烁3次。 灯全灭,同时从两头开始,依次各点亮一个灯并熄灭此前点亮的灯,即1和16亮,熄灭后2和15亮,依此类推,最后灯全灭。 所有黄色灯同时闪烁3次。 灯全灭,同时从两头开始,依次各点亮一个灯,直到所有灯全亮后,同时按81、916的顺序依次各熄灭一个灯,直到灯全灭。 所有绿色灯同时闪烁3次。 重复-。灯亮灭切换时的间隔时间可全部为0.5秒0.2秒,也可不同。具体时间可自行确定,以视觉效果好为宜。(2、) 扩展功能:上面的基本功能只是一种固定的显示效果。增设一个“选择”按键钮,用于循环选择多种显示方式效果中的一种,即按一下“选择”键,则改变一种显示效果。 2、课题1、城市十字路口交通信号灯控制系统的设计与制作(1)课题任务在马路的十字路口东西南北各设置红、黄、绿3种信号灯,4个路口共12个信号灯。控制的过程为:当东西方向通车时绿灯亮,而南北方向红灯亮;当通车的时间到后,东西方向的绿灯灭,而黄灯亮,黄灯闪烁若干次后由东西方向换到南北方向通车。此时,东西方向黄灯灭而红灯亮,南北方向红灯灭而绿灯亮,南北方向开始通车。通车时间到后,南北方向绿灯灭,黄灯闪烁若干次后由南北方向切换到东西方向,南北方向黄灯灭,红灯亮;而东西方向红灯灭,绿灯亮。如此不断循环。如下图所示: 北绿 黄 红红 红西 黄 黄 东绿 绿绿 黄 红 南课题2、模拟霓虹灯控制系统的设计与制作课题任务 用一个5发光二极管代表一个灯。将16个红、黄、绿3色灯排成一排或排成一个环行,如:红1-黄2-绿3-红4-黄5-绿6-红7-黄8-绿9-红10-黄11-绿12-红13-黄14-绿15-红16,其中数字116为各灯的编号。下面的叙述中用此编号表示不同的灯。 按116、161的顺序依次逐个点亮,任意时刻只有一个灯点亮。 灯全灭后,让所有灯同时闪烁3次。 灯全亮,然后按116的顺序依次熄灭一个灯,直到全灭;再按161的顺序依次点亮,直到所有灯全亮。 所有红色灯同时闪烁3次。 灯全灭,同时从两头开始,依次各点亮一个灯并熄灭此前点亮的灯,即1和16亮,熄灭后2和15亮,依此类推,最后灯全灭。 所有黄色灯同时闪烁3次。 灯全灭,同时从两头开始,依次各点亮一个灯,直到所有灯全亮后,同时按81、916的顺序依次各熄灭一个灯,直到灯全灭。 所有绿色灯同时闪烁3次。 重复-。灯亮灭切换时的间隔时间可全部为0.5秒0.2秒,也可不同。具体时间可自行确定,以视觉效果好为宜。有兴趣的同学还可增加一些变化,以取得更好的视觉效果。课题要求 与课题1类似相同。(3、) 参考设计方案(1) 参考硬件电路与课题1类似,多出来的四个灯可用P1.7P1.4控制。设各灯的序号依次为116,则可设计成P0.0P0.7依次控制灯18,P1.0P1.7依次控制灯916。 (2) 参考控制程序略以下程序实现的功能如下:以下为一种霓虹灯的显示效果: 用一个5发光二极管代表一个灯。将16个红、黄、绿3色灯排成一排或排成一个环行,如:红1-黄2-绿3-红4-黄5-绿6-红7-黄8-绿9-红10-黄11-绿12-红13-黄14-绿15-红16,其中数字116为各灯的编号。下面的叙述中用此编号表示不同的灯。 按116、161的顺序依次逐个点亮,任意时刻只有一个灯点亮。 灯全灭后,让所有灯同时闪烁3次。 灯全亮,然后按116的顺序依次熄灭一个灯,直到全灭;再按161的顺序依次点亮,直到所有灯全亮。 所有红色灯同时闪烁3次。 灯全灭,同时从两头开始,依次各点亮一个灯并熄灭此前点亮的灯,即1和16亮,熄灭后2和15亮,依此类推,最后灯全灭。 所有黄色灯同时闪烁3次。 灯全灭,同时从两头开始,依次各点亮一个灯,直到所有灯全亮后,同时按81、916的顺序依次各熄灭一个灯,直到灯全灭。 所有绿色灯同时闪烁3次。 重复-。灯亮灭切换时的间隔时间可全部为0.5秒0.2秒,也可不同。具体时间可自行确定,以视觉效果好为宜。设P0.0P0.7依次控制灯18,P1.0P1.7依次控制灯916。ORG 0000HSJMP STARTORG 0030HSTRAT: MOV R2,#0FFHMOV R3,#0FFHMOV R7,#10HCLR CLP1: MOV A,R2;按116的顺序依次逐个点亮RLC AMOV R2,AMOV P0,AMOV A,R3RLC AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP1MOV R7,#0FH;R2=FFH,R3=7FH;Cy=1LP2: MOV A,R3;按161的顺序依次逐个点亮RRC AMOV R3,AMOV P1,AMOV A,R2RRC AMOV R2,AMOV P0,ALCALL DL300msDJNZ R7,LP2MOV R7,#6;此时R2=FFH,R3=7FH,所有灯同时闪烁3次CLR ALP3: CPL AMOV P0,AMOV P1,ALCALL DL300msDJNZ R7,LP3MOV R7,#10HMOV R2,A;A=00H,此时灯全亮MOV R3,ALP4: SETB C;按116的顺序依次熄灭一个灯,直到灯全灭MOV A,R2RLC AMOV R2,AMOV P0,AMOV A,R3RLC AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP4MOV R7,#10H; 再按161的顺序依次点亮,直到所有灯全亮LP5: CLR CMOV A,R3RRC AMOV R3MOV P1,AMOV A,R2RRC AMOV R2,AMOV P0,ALCALL DL300msDJNZ R7,LP5MOV R7,#3;R2,R3全为0,灯全亮LP6: MOV A,#0B6H;红灯闪烁3次MOV P0,AMOV #6DHMOV P1,A;红灯全亮,其余灯全灭LCALL DL300msMOV A,#0FFHMOV P0,AMOV P1,A;灯全灭LCALL DL300msDJNZ R7,LP6MOV R7,#08H;同时从两头开始,依次各点亮一个灯并熄灭此前点亮的灯MOV R2,#7FHMOV R3,#0FEHLP7: MOV A,R2RL AMOV R2,AMOV P0,AMOV A,R3RR AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP7MOV R7,#07H;R2=7FH,R3=FEHLP8: MOV A,R2RR AMOV R2,AMOV P0,AMOV A,R3RL AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP8MOV R7,#3;黄灯闪烁3次,R2=FEH,R3=7FHLP9: MOV A,#6DHMOV P0,AMOV #0DBHMOV P1,A;黄灯全亮,其余灯全灭LCALL DL300msMOV A,#0FFHMOV P0,AMOV P1,A;灯全灭LCALL DL300msDJNZ R7,LP9MOV R7,#08H;同时从两头开始,依次各点亮一个灯,直到所有灯全亮MOV R2,A;A=FFHMOV R3,ALP10: CLR CMOV A,R2RLC AMOV R2,AMOV P0,ACLR CMOV A,R3RRC AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP10MOV R7,#08H;R2=00,R3=00LP11: SETB C;同时按81、916的顺序依次各熄灭一个灯,直到灯全灭MOV A,R2RRC AMOV R2,AMOV P0,ASETB CMOV A,R3RLC AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP11MOV R7,#3;绿灯闪烁3次,R2=FEH,R3=7FHLP12: MOV A,#0DBHMOV P0,AMOV #0B6HMOV P1,A;绿灯全亮,其余灯全灭LCALL DL300msMOV A,#0FFHMOV P0,AMOV P1,A;灯全灭LCALL DL300msDJNZ R7,LP12AJMP START 实现该显示效果的程序略。 说明:子程序DL300ms未给出。建议提示:将各种显示方式编码后存到一张表中,采用二级查表法定时将选择的其中一种显示方式效果的显示编码从表中取出控制显示。这样处理便于显示方式效果的选择,也可使程序结构简化。 采用软件延时、实现基本功能的参考控制程序如下:ORG 0000HSJMP STARTORG 0030HSTRAT: MOV R2,#0FFHMOV R3,#0FFHMOV R7,#10HCLR CLP1: MOV A,R2;按116的顺序依次逐个点亮RLC AMOV R2,AMOV P0,AMOV A,R3RLC AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP1MOV R7,#0FH;R2=FFH,R3=7FH;Cy=1LP2: MOV A,R3;按161的顺序依次逐个点亮RRC AMOV R3,AMOV P1,AMOV A,R2RRC AMOV R2,AMOV P0,ALCALL DL300msDJNZ R7,LP2MOV R7,#6;此时R2=FFH,R3=7FH,所有灯同时闪烁3次CLR ALP3: CPL AMOV P0,AMOV P1,ALCALL DL300msDJNZ R7,LP3MOV R7,#10HMOV R2,A;A=00H,此时灯全亮MOV R3,ALP4: SETB C;按116的顺序依次熄灭一个灯,直到灯全灭MOV A,R2RLC AMOV R2,AMOV P0,AMOV A,R3RLC AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP4MOV R7,#10H; 再按161的顺序依次点亮,直到所有灯全亮LP5: CLR CMOV A,R3RRC AMOV R3MOV P1,AMOV A,R2RRC AMOV R2,AMOV P0,ALCALL DL300msDJNZ R7,LP5MOV R7,#3;R2,R3全为0,灯全亮LP6: MOV A,#0B6H;红灯闪烁3次MOV P0,AMOV #6DHMOV P1,A;红灯全亮,其余灯全灭LCALL DL300msMOV A,#0FFHMOV P0,AMOV P1,A;灯全灭LCALL DL300msDJNZ R7,LP6MOV R7,#08H;同时从两头开始,依次各点亮一个灯并熄灭此前点亮的灯MOV R2,#7FHMOV R3,#0FEHLP7: MOV A,R2RL AMOV R2,AMOV P0,AMOV A,R3RR AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP7MOV R7,#07H;R2=7FH,R3=FEHLP8: MOV A,R2RR AMOV R2,AMOV P0,AMOV A,R3RL AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP8MOV R7,#3;黄灯闪烁3次,R2=FEH,R3=7FHLP9: MOV A,#6DHMOV P0,AMOV #0DBHMOV P1,A;黄灯全亮,其余灯全灭LCALL DL300msMOV A,#0FFHMOV P0,AMOV P1,A;灯全灭LCALL DL300msDJNZ R7,LP9MOV R7,#08H;同时从两头开始,依次各点亮一个灯,直到所有灯全亮MOV R2,A;A=FFHMOV R3,ALP10: CLR CMOV A,R2RLC AMOV R2,AMOV P0,ACLR CMOV A,R3RRC AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP10MOV R7,#08H;R2=00,R3=00LP11: SETB C;同时按81、916的顺序依次各熄灭一个灯,直到灯全灭MOV A,R2RRC AMOV R2,AMOV P0,ASETB CMOV A,R3RLC AMOV R3,AMOV P1,ALCALL DL300msDJNZ R7,LP11MOV R7,#3;绿灯闪烁3次,R2=FEH,R3=7FHLP12: MOV A,#0DBHMOV P0,AMOV #0B6HMOV P1,A;绿灯全亮,其余灯全灭LCALL DL300msMOV A,#0FFHMOV P0,AMOV P1,A;灯全灭LCALL DL300msDJNZ R7,LP12AJMP START 说明:子程序DL300ms未给出。 采用硬件延时、实现了扩展功能的参考控制程序如下: DLNUM DATA 10 TYPES DATA 2 ORG 0000H SJMP START ORG 000BH LJMP T0INT ORG 0030HSTART: MOV SP,#5FH CLR A MOV R2,A MOV R3,A MOV R6,AGOON: MOV TMOD, #01H MOV TH0 , #3CH MOV TL0 , #0B0H MOV IE, #82H MOV IP, #02H MOV TCON, #10H ACALL SITE ACALL DISP ACALL SELECT SJMP GOONSELECT: MOV A,P3 JB ACC.0,SELECTS1: MOV A,P3 JNB ACC.0,S1;等键释放 INC R6 MOV A,R6 CJNE A,#TYPES,S2 MOV R6,#0S2: RETSITE: MOV A,R6 ADD A,R6 MOV R5,A MOV DPTR,#TABLE MOVC A,A+DPTR PUSH A MOV A,R5 INC A MOVC A,A+DPTR MOV DPL,A POP DPH CLR A MOVC A,A+DPTR MOV 31H,A CLR A INC DPTR MOVC A,A+DPTR MOV 30H,A;31H和30H单元中存放编码的个数 INC DPTR;DPTR指向第一个编码 RETDISP: CLR A MOVC A,A+DPTR MOV P0,A INC DPTR MOVC A,A+DPTR MOV P2,A INC DPTR RETEQUEL: CLR F0 MOV A,R3 CJNE A,31H,ERTN MOV A,R2 CJNE A,30H,ERTN SETB F0ERTN: RETT0INT: MOV TH0 , #3CH MOV TL0 , #0B0H DJNZ R7,TEXIT MOV R7,#DLNUM PUSH PSW PUSH A INC R2 MOV A,R2 JNZ T1 INC R3T1: LCALL EQUEL JNB F0,T2 CLR A MOV R2,A MOV R3,A LCALL SITET2: LCALL DISP POP A POP PSWTEXIT: RETI ORG 0400HT0: MOV TH0 , #3CH MOV TL0 , #0B0H DJNZ R7,EXIT MOV R7,#DLNUMEXIT: RETITAB0: DW 00DEH,0FFFEH,0FFFDH,0FFFBH,0FFF7H,0FFEFH,0FFDFH,0FFBFH,0FF7FH DW 0FEFFH,0FDFFH,0FBFFH,0F7FFH,0EFFFH,0DFFFH,0BFFFH,7FFFH DW 0FFFFH,7FFFH,0BFFFH,0DFFFH,0EFFFH,0EFFFH,0F7FFH,0FBFFH,0FDFFH DW 0FEFFH,0FF7FH,0FFBFH,0FFDFH,0FFEFH,0FFF7H,0FFFBH,0FFFDH,0FFFEH DW 0000H,0FFFFH,0000H,0FFFFH,0000H,0FFFFH DW 0000H,8000H,0B000H,2000H,1000H,0100H,0B00H,0200H,0100H,0080H DW 00B0H,0020H,0010H,0008H,000BH,0002H,0001H DW 6DB6H,0FFFFH,6DB6H,0FFFFH,6DB6H,0FFFFH DW 0FFFFH,7FFEH,0BFFDH,0DFFBH,0EFF7H,0F7EFH,0FBDFH,0FDBFH,0FE7FH DW 0FFFFH DW 0B6DBH,0FFFFH,0B6DBH,0FFFFH,0B6DBH,0FFFFH DW 0FFFFH,7FFFH,7FFDH,3FFCH,1FF8H,07D0H,03C0H,0180H,0000H DW 0100H,0180H,0380H,03C0H,07C0H,07E0H,0FE0H,0FF0H,1FF0H,1FF8H, DW 3FF8H,3FFCH,7FFCH,7FFEH,0FFFEH,0FFFFH DW 0DB6DH,0FFFFH,0DB6DH,0FFFFH,0DB6DH,0FFFFH DW 0010H,0FFFEH,0FFFDH,0FFFBH,0FFF7H,0FFEFH,0FFDFH,0FFBFH,0FF7FH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论