08单片机课程设计计划12(2)

2020-02-20 23:07

MOV 2AH,#1FH ;设置时间显示初值

MOV R7,#019H ;延时秒数

MAIN3:LCALL DEL1

DJNE R7,MAIN3

MOV R3,#0EEH ;A线禁止,B线警告 MOV R7,#05H ;延时秒数 MAIN4:LCALL DEL1 ;1s延时子程序 DJNE R7,MAIN4

AJMP MAIN ;循环 1s延时子程序DEL1

DEL1:DEC 2AH ;显示秒数减1 MOV A,2AH MOV B,#0AH

DIV AB ;秒数转换为十进制 ADD A,#2AH

MOVC A,@A+PC ;查表个位数的字形码 MOV R1,A MOV A,B ADD A,#24H

MOVC A,@A+PC ;查表十位数的字形码 MOV R2,A

MOV R6,#40H ;设置循环次数 LOOP: MOV A,R2 ;十位数的字形码 MOV R4,#0EFH ;位控码

ACALL DISP ;调用显示子程序 MOV A,R1 ;个位数的字形码 MOV R4,#0DFH ;位控码 ACALL DISP

MOV A,R3 ;“信号灯”控制码

MOV R4,#0FBH ;“信号码”共阴极控制 ACALL DISP

DJNZ R6,LOOP ;循环 RET ;返回 TABLE:DB C0H,F9H,A4H,B0H,99H DB 92H,82H,F8H,80H,90H 显示子程序DISP

DISP: MOV R0,#0B0H ;设置循环次数 MOV R5,A DISP1:MOV A,R5

MOV P1,A ;字形码输出 MOV A,R4

MOV R3,A ;位控制码输出 DJNZ R0,DISP1 ;循环 RET ;返回

6

3.主支线路口的交通信号灯控制

由主线和支线构成的路口,其交通控制原则是尽可能保证主线的畅通,因此通常情况下都是主线放行。只有在支线有车辆到达时,才放行支线。具体描述如下:

·在通常情况下,主线为绿灯,支线为红灯。当支线有车辆到达时,延迟5s后使主线由绿灯变黄灯。再过5s,主线由黄灯变绿灯,支线由红灯变绿灯。

·支线绿灯后,如主线到达车辆少于3辆,则支线绿灯维持25s,然后变黄灯,再经5s钟,变为红灯,同时主线由红灯变为绿灯。

·若支线变绿灯后的25s之内,主线有3辆以上车辆到达,则在第三辆车到达之时,支线变为黄灯,延迟5s后变为红灯,同时主线由红灯变为绿灯。

电路连接如图所示。

其中按键K1代表支线有车辆到达,按一下后主线发光二极管黄灯亮,然后转红灯亮,同时支线发光二极管应转绿灯亮。

按键K2代表主线有车辆到达。如在支线放行期间,按键K2按3次,代表主线有3辆车到达。这时支线发光二极管立即变黄灯,然后转红灯亮,而同时主线发光二极管转为绿灯亮。

由于按键K1接P1.7,因此通过测试P1.7的电平状态就可以了解支线是否有车辆到达。而按键K2需按下3次才有效。为此最好采用中断方式实现,具体说就是计数溢出中断,使用MCS-51的定时器/计数器进行计数。每按下一次按键K2,计数器加1,按3次后就产生计数溢出。假定使用定时器/计数器1,根据交通信号灯控制的需要,应采用定时工作方式2,以利用其计数溢出后计数初值自动重装的特点。保证控制的自动性和连续性。主程序及中断服务程序流程图如下图。 4.有急救车优先的交通信号灯控制

在定时交通信号灯控制的基础上,增加允许急救车优先通过的要求。当有急救车到达时,路口的信号灯全部变红,以便让急救车通过。假定急救车通过时间为10s,急救车通过后交通灯恢复先前的状态。另假设按键K1代表有急救车到来,并以中断方式进行处理。

主程序

ORG 8100H AJMP MAIN ORG 8003H AJMP INT

MAIN: SETB EA ;开中断

SETB EX0 ;允许外中断0

CLR IT0 ;外中断0电平触发方式 LOOP: MOV R0,#0F3H ;A线放行,B线禁止 MOV P1,R0

MOV R7,#19H ;延时25s

LOOP1:LCALL DELAY ;调用1s延时子程序 DJNZ R7,LOOP1

MOV R0,#0F5H ;A线警告,B线禁止 MOV P1,R0

MOV R7,#05H ;延时5s

LOOP2:LCALL DELAY ;调用1s延时子程序

7

DJNZ R7,LOOP2

MOV R0,#0DEH ;A线禁止,B线放行 MOV P1,R0

MOV R7,#19H ;延时25s

LOOP3:LCALL DELAY ;调用1s延时子程序 DJNZ R7,LOOP3

MOV R0,#0FEH ;A线禁止,B线警告 MOV P1,R0

MOV R7,#05H ;延时5s

LOOP4:LCALL DELAY ;调用1s延时子程序 DJNZ R7,LOOP4

AJMP MAIN ;循环

1s延时子程序DELAY(略) 中断服务程序

INT: MOV P1,#0F6H ;两线都禁止 MOV R7,#0AH ;延时10s INT1: ACALL DELAY DJNZ R7,INT1

MOV P1,R0 ;恢复原状态 RETI ;中断返回

参考资料2

乐曲演奏器(简易电子琴设计)

声音是由物体振动产生的。乐器中弓和弦的摩擦振动,交变电流推动喇叭纸盘的振动等,都会发出声音。振动频率不同,所发出的声音也就不同,有规律的震动发出的声音叫“乐音”。乐谱中每一个音符都与一个频率相对应,例如,C调中音“1”,其频率f?524Hz。音乐中所用的音频大约在27Hz~4.1KHZ,而人耳能听到的音频大约在18HZ~18KHZ。

单片机用作可编程乐曲演奏器的原理是:

通过控制定时器的定时来产生不同频率的方波,驱动喇叭便发出不同音阶的声音,再利用延迟来控制发音时间的长短,即可控制音调中的节拍。把乐谱中的音符和相应的节拍变换为定时常数和延迟常数,做成数据表格存放在存储器中。有程序查表得到定时常数和延迟常数,分别用于控制定时器产生方波的频率和发出该方波的持续时间。当延迟时间到时,再查下一个音符的定时常数和延迟常数。一次进行下去,就可以自动演奏出悦耳动听的乐曲。

下面是歌曲“新年好”的一段简谱:

1=C 1 1 1 5 | 3 3 3 1 | 1 3 5 5 | 4 3 2 — | .

用定时器T0方式1来产生歌谱中个音符对应频率的方波,由P1.0输出驱动喇叭。节拍的控制可通过调用延时子程序D200(延时200ms)次数来实现,以每拍800ms的节拍时间为例,那么一拍需要循环调用D200延时子程序4次。同理,半拍就需要调用D200子程序2次。设单片机晶振频率为6MZ,乐曲中的音符、频率及定时常数三者的对应关系如下:

8

音符 频率 (HZ) 半周期 (ms) 定时值 5 392 1.28 FD80 6 440 1.14 FDC6 7 494 1.01 FE07 1 524 0.95 FE25 2 588 0.85 FE57 3 660 0.76 FE84 4 698 0.72 FE98 5 784 0.64 FEC0 6 880 0.57 FEE3 7 988 0.51 FF01

乐曲演奏控制程序如下:

ORG 000BH

MOV TH0,R1 ;定时器T0中断入口 MOV HL0,R0 ;重装定时初值 CPL P1.0 RETI

ORG 1000H

MAIN:MOV TMOD,#01H ;主程序

MOV IE,#82H ;定时器T0方式1 MOV DPTR,#TAB ;表格首地址 LOOP:CLR A ;查表

MOVC A,@A+ DPTR ;定时初值高8位存R1 MOV R1,A INC DPTR CLR A

MOVC A,@A+ DPTR

MOV R0,A ;定时初值低8位存R0 ORL A,R1

JZ NEXT0 ;R0、R1全0为休止符

MOV A,R0 ;R0、R1全1为乐曲结束 ANL A,R1

CJNE A,#0FFH,NEXT SIMP MAIN

NEXT:MOV TH0,R1 ;装入定时初值

MOV HL0,R0

SETB TR0 ;启动定时器 SJMP NEXT1 NEXT0:CLR TR0

NEXT1:CLR A ;查表

MOVC A,@A+ DPTR ;延时常数存R2 MOV R2,A INC DPTR

LOOP1:ACALL D200 DJNZ R2,LOOP1

9

INC DPTR AJMP LOOP

D200 :MOV #81H ;延时200ms子程序 D200B: MOV A,#0FFH D200A: DEC A

JNZ D200A DEC R3

CJNE R3,#00H,D200B RET

TAB: DB 0FEH,25H,02H,0FEH,25H,02H DB 0FEH,25H,04H,0FDH,80H,04H DB 0FEH,84H,02H,0FEH,84H,02H DB 0FEH,84H,04H,0FEH,25H,04H DB 0FEH,25H,02H,0FEH,84H,02H

DB 0FEH,0C0H,04H,0FEH,0C0H,04H

DB 0FEH,98H,02H,0FEH,84H,02H DB 0FEH,57H,08H,00H,00H,04H DB 0FFH,0FFH END

10


08单片机课程设计计划12(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011学年第一学期德育工作计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: