资源描述
计算机硬件技术基础课程设计任务书 编号:4
河北工业大学计算机硬件技术基础(MCS-51单片机原理及应用)
综合性实验任务书
一、题目:汽车信号灯控制系统
二、设计方案
1. 硬件系统设计图
P1.6
P1.7
P3.2
P3.3
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
+5V
P3.1
蜂鸣器
左转
右转
刹车
急停
倒车
P3.4
注:P1.0接LED1,表示左前灯;P1.1为LED2,表示左指示灯;P1.2接LED3接左尾灯;
P1.3接LED4,表示右前灯;P1.4接LED5;表示右指示灯;P1.5接LED6,表示右尾灯
2. 设计程序
ORG 8000H
MAIN: MOV TMOD,#01H ;定义计时器,计时
MOV TH0,#4CH ;定义计时器高八位
MOV TL0,#00H ;定义计时器低八位
MOV IE,#82H ;开CPU的中断和中段源的允许标志位
MOV R0,#00H
MOV R2,#00H ;R0,R2用做计数器,根据其不同分别实现1hz,3hz不同频率闪烁
SETB TR0 ;将TR0置1,开启定时器
LOOP: JBC TF0,DO1 ;判断定时器是否溢出,是否产生中断,不中断一直循环LOOP
SJMP LOOP
DO1: JNB P3.3,YINGJI ;判断P3.3=0跳至YINGJI
JB P1.6,ZUOZHUAN ;判断P1.6=1跳至ZUOZ
JB P1.7,YOUZHUAN ;判断P1.7=1跳至YOUZ
JNB P3.4,DAOCHE ; 判断P3.4= 0跳至DAOCHE
JNB P3.2,SHACHE ;判断P3.2=0跳至SHACHE
SJMP TING ;无条件跳至TING
YINGJI: INC R0 ;给R0加1
CJNE R0,#06,NEXT1 ;判断R0,当R0=6时跳至NEXT1,延时300毫秒
CPL P1.0 ;取反P1.0
CPL P1.1 ;取反P1.0
CPL P1.2 ;取反P1.0
CPL P1.3 ;取反P1.0
CPL P1.4 ;取反P1.0
CPL P1.5 ;取反P1.0
MOV R0,#00H
JNB P3.3,NEXT1
SJMP DO1 ;此程序可实现六盏灯的频闪,频率约为3HZ
ZUOZHUAN: INC R2 ;R2加1
CJNE R2,#20,NEXT1 ;判断R2=20时,跳至NEXT1,延迟1秒
CPL P1.0 ;取反P1.0
CPL P1.1 ;取反P1.1
CPL P1.2 ;取反P1.2
SETB P1.3 ;把P1.3置1,使灯灭
SETB P1.4 ;把P1.4置1,使灯灭
SETB P1.5 ;把P1.5置1,使灯灭
MOV R2,#00H
JB P1.6,NEXT1
SJMP DO1 ;此程序可实现左转信号灯的频闪,时间间隔1秒即频率为1HZ
YOUZHUAN : INC R2
CJNE R2,#20,NEXT1
SETB P1.0
SETB P1.1
SETB P1.2
CPL P1.3
CPL P1.4
CPL P1.5
MOV R2,#00H
JB P1.7,NEXT1
SJMP DO1 ;同“ZUOZ”程序类似
DAOCHE CPL P3.0 ;开启蜂鸣器,其频率为20HZ
INC R2 ;R2加1
CJNE R2,#20,NEXT1 ;判断R2=20时,跳至NEXT1,实现延时1S,频率1HZ
CPL P1.2 ;左尾灯频闪
CPL P1.5 ;右尾灯频闪
SETB P1.0
SETB P1.1
SETB P1.3
SETB P1.4 ;其余灯灭
MOV R2,#00H ;回复R2初值
JNB P3.4,DAOCHE
SJMP DO1 ;实现倒车时蜂鸣器响频率约为20HZ,且左右尾灯频闪频率约
NEXT1: MOV TH0,#4CH ;为1Hz
MOV TL0,#00H
SJMP LOOP
SHACHE: SETB P1.0 ;把P1.0置1,使灯灭
SETB P1.1 ;把P1.1置1,使灯灭
CLR P1.2 ;把P1.2清零,左尾灯常亮
SETB P1.3 ;把P1.3置1,使灯灭
SETB P1.4 ;把P1.4置1,使灯灭
CLR P1.5 ;把P1.5清零,右尾灯常亮
JNB P3.2,SHACHE
SJMP DO1 ;实现左右尾灯常亮
TING: SETB P1.0
SETB P1.1
SETB P1.2
SETB P1.3
SETB P1.4
SETB P1.5
CRL P3.0
SJMP DO1 ;停车程序,六盏灯全灭,蜂鸣器不响
END
3. 3程序流程图
设定总允许中断和允许T/C0中断
开始
设定定时器T/C0的初值
设定T/C0为模式1
等待中断
将开关按键状态读入转向需要的的模块
结束
模块:MAIN主程序,进行中断允许设定,即中断初值的设定
LOOP1:等待中断
YINGJI:实现六盏灯的频闪,频率约为3HZ
ZUOZHUAN:实现左转信号灯左尾灯左前灯的频闪,时间间隔1秒即频率为1HZ
YOUZHUAN:实现右转信号灯右尾灯右前灯的频闪,时间间隔1秒即频率为1HZ
DAOCHE: 实现倒车时蜂鸣器响频率约为20HZ,且左右尾灯频闪频率约1Hz
SHACHE: 实现左右尾灯常亮
TING:实现所有灯全灭,蜂鸣器不响
NEXT1:和R0,R2一起实现了不同频率的的控制
4. 接线方法
使用排线将A2区的J61接口与D1区的J52接口相连。
SW1与P1.6相接 SW2与P1.7相接 K1与INTO(P3.2)相接 ,K2与INT1(P3.3)相接,K3与P3.4相接,P3.1与蜂鸣器相接,蜂鸣器另一个接口接地。
5. 调试步骤
1)按上述接线方法接线
2)开启硬件,开启计算机,打开KEIL新建立工程选择单片机NXP--P89C52X2
3)进行项目设置
设置时钟频率:11.0592MHZ
设置片外代码存储Eprom#1开始:0x8000,大小0x4000
设置片外Xdata存储Ram#1开始:0C000,大小:0x4000
选择Keil Monitor-51 Driver
4)将上述程序导入,进行测试。
5)测试结束,关机,关外设。
附:定时器初值计算和不同频率的实现方法
由于本设计中要求有两个不同频率1HZ和3Hz即间隔为1S和333Ms,在我们设计中设计定时器的中断间隔为50Ms,运用R0,R2实现要求中断。1Hz中断20次,3Hz中断6次。
2的16次方—50*(1/11.0592MHZ*12)=65536—46080=19456=4C00H
三.实现的功能
1转弯时,左右尾灯、左右头灯和仪表盘上的两个指示灯相应的发出闪烁信号
2当应急开关合上时,6个信号灯都闪烁
3刹车时,两个尾灯亮、不闪烁
4倒车时,两个尾灯闪烁,且蜂鸣器响,频率约为20HZ
5一般情况下,闪烁频率为1Hz
6应急情况下,闪烁频率为3Hz
四.创新
我们在原设计要求的基础上结合实际,添加了倒车的功能,在倒车时可以使后尾灯频闪,闪烁频率约为1Hz,且蜂鸣器响频率约为20Hz
4
展开阅读全文