单片机实验报告 交通灯14页wordWord格式.docx
- 文档编号:19326165
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:17
- 大小:20.53KB
单片机实验报告 交通灯14页wordWord格式.docx
《单片机实验报告 交通灯14页wordWord格式.docx》由会员分享,可在线阅读,更多相关《单片机实验报告 交通灯14页wordWord格式.docx(17页珍藏版)》请在冰豆网上搜索。
数码管千位显示
REDATA34H;
红灯亮时间,单位为秒
GRDATA35H;
绿灯亮时间,单位为秒
YEDATA36H;
黄灯亮时间,单位为秒
NUM1DATA37H;
计算东西向亮灯时间参数
NUM2DATA38H;
计算南北向亮灯时间参数
DELAY_1DATA39H;
延时参数
DELAY_2DATA40H;
KF1DATA41H;
按键标志位
KF2DATA42H;
KF3DATA43H;
KF4DATA44H;
ORG0000H
LJMP0030H
ORG001BH;
定时器1定时中断,记秒
LJMPINTR0
ORG0030H
MOVP1M1,#00000000B
MOVP1M0,#11111111B
MOVSP,#060H;
设置堆栈指针
MOVRE,#025;
红灯亮时间默认值25S
MOVGR,#020;
绿灯亮时间默认值20S
MOVYE,#005;
黄灯亮时间默认值5S
MOVR1,#000;
设置时间时暂停红绿灯
MOVR2,#000;
保存键值
MOVR7,#000;
记中断次数,R7=100为1秒
MOVKF1,#000;
初始化相关参数
MOVKF2,#000
MOVKF3,#000
MOVKF4,#000
MOVTMOD,#10H;
定时器初始化
MOVTH1,#0D8H;
定时时间10ms
MOVTL1,#0F0H
SETBET1
SETBTR1
SETBEA;
开启总中断
MAIN:
LCALLLIGHT;
主程序
/*********************************************************按键逻辑********************************************************************/
KY:
MOVR1,#001;
暂停计时
CJNER2,#000,KY0
LJMPKY15
KY0:
CJNER2,#004,KY1;
紧急按键
MOVR2,#000
KY00:
LCALLDP1;
应急模式
LCALLDP2
LCALLLIGHT7
CJNER2,#004,KY00
AJMPKY00
KY1:
CJNER2,#001,KY15;
进入设置模式
KY10:
MOVNUM2,RE
LCALLCOUNT2
LCALLDP3
CJNER2,#001,KY11
LJMPKY20
KY11:
CJNER2,#002,KY12;
红灯加
INCRE
MOVA,RE
CJNEA,#100,KY12
MOVRE,#000
KY12:
CJNER2,#003,KY14;
红灯减
CJNEA,#000,KY13
MOVRE,#099
LJMPKY14
KY13:
DECRE
KY14:
AJMPKY10
KY15:
MOVR1,#000
RET
KY20:
MOVNUM2,GR;
退出设置
LCALLLIGHT8
CJNER2,#001,KY21
LJMPKY3
KY21:
CJNER2,#002,KY22;
绿灯加
INCGR
MOVA,GR
CJNEA,#100,KY22
MOVGR,#000
KY22:
CJNER2,#003,KY24;
绿灯减
CJNEA,#000,KY23
MOVGR,#099
LJMPKY24
KY23:
DECGR
KY24:
AJMPKY20
KY3:
MOVA,RE;
利用CJNE指令对CY位的影响来比较大小
CJNEA,GR,KY31;
处理最终设置结果
AJMPBIG
KY31:
JCBIG
AJMPSMALL
SMALL:
MOVA,RE
SUBBA,GR
MOVYE,A
AJMPKY4
BIG:
LJMPKY10;
当绿灯时间小于等于红灯时间时重新设置
KY4:
/*******************************************************按键扫描及确定****************************************************************/
KS:
LCALLKS1
LCALLKS2
LCALLKS3
LCALLKS4
KS1:
MOVA,KF1
CJNEA,#001,KS12;
按键标志位消抖
SETBP0.5
CLRP3.6
SETBP3.7
JBP0.5,KS13
MOVR2,#001
MOVKF1,#000
AJMPKS13
KS12:
SETBP0.5
JNBP0.5,KS13
MOVKF1,#001
KS13:
RET
KS2:
MOVA,KF2
CJNEA,#001,KS22;
SETBP0.6
JBP0.6,KS23
MOVR2,#002
AJMPKS23
KS22:
SETBP0.6
JNBP0.6,KS23
MOVKF2,#001
KS23:
RET
KS3:
MOVA,KF3
CJNEA,#001,KS32;
SETBP0.7
JBP0.7,KS33
MOVR2,#003
KS32:
SETBP0.7
JNBP0.7,KS33
MOVKF3,#001
KS33:
KS4:
MOVA,KF4
CJNEA,#001,KS42;
CLRP3.7
SETBP3.6
JBP0.5,KS43
MOVR2,#004
AJMPKS43
KS42:
JNBP0.5,KS43
MOVKF4,#001
KS43:
/**********************************************************红绿灯亮灯规则*************************************************************/
/*绿变红时:
绿灯亮→绿灯闪→绿灯灭黄灯亮→黄灯灭红灯亮;
红变绿时:
红灯亮→红灯黄灯同时亮→红灯黄灯同时灭绿灯亮*/
LIGHT:
LOOP0:
MOVR5,GR;
东西向绿灯亮
MOVR6,GR
MOVR3,RE;
南北向红灯亮
MOVR4,RE
MOVR0,YE;
保存原黄灯时间
LOOP01:
LCALLKY
MOVNUM1,R6
MOVNUM2,R4
LCALLCOUNT1
LCALLLIGHT1
LCALLDP1
MOVA,R0
XRLA,R6
JNZLOOP01
LJMPLOOP1
LOOP1:
LCALLCOUNT1;
东西向绿灯闪,南北向红灯亮
LCALLLIGHT2
DECA
XRLA,R4
JNZLOOP1
LJMPLOOP2
LOOP2:
MOVA,R0
MOVR5,A;
东西向黄灯亮
MOVR6,A;
南北向红黄灯亮
MOVR3,#099
MOVR4,#099
LOOP21:
MOVNUM2,R6
LCALLLIGHT3
MOVA,#099
SUBBA,R0
DECA
JNZLOOP21
LJMPLOOP3
LOOP3:
MOVR5,RE;
东西向红灯亮
MOVR6,RE
MOVR3,GR;
南北向绿灯亮
MOVR4,GR
MOVR0,YE;
LOOP31:
LCALLLIGHT4
JNZLOOP31
LJMPLOOP4
LOOP4:
LCALLLIGHT5
JNZLOOP4
LJMPLOOP5
LOOP5:
东西向红黄灯亮
南北向黄灯亮
LOOP51:
LCALLLIGHT6
JNZLOOP51
LCALLLOOP0
/*******************************************************运行模式的红绿灯**************************************************************/
/**********东西向绿灯亮,南北向红灯亮**********/
LIGHT1:
MOVP2,#0EBH
SETBP3.5
CLRP3.4
SETBP3.3
CLRP3.2
/**********东西向绿灯闪,南北向红灯亮*********/
LIGHT2:
CJNER7,#050,LIGHT21
LIGHT21:
JNCLIGHT22
LCALLLIGHT24
AJMPLIGHT23
LIGHT22:
LCALLLIGHT25
LIGHT23:
LIGHT24:
MOVP2,#0EBH;
东西向绿灯亮,南北向红灯亮
CLRP3.4
CLRP3.2
LIGHT25:
MOVP2,#0EFH;
东西向无灯亮,南北向红灯亮
SETBP3.2
/*********东西向黄灯亮,南北向红黄灯亮*******/
LIGHT3:
MOVP2,#0A6H
CLRP3.3
/*********东西向红灯亮,南北向绿灯亮**********/
LIGHT4:
MOVP2,#05DH
CLRP3.5
SETBP3.4
/********东西向红黄灯亮,南北向绿灯闪*********/
LIGHT5:
CJNER7,#050,LIGHT51
LIGHT51:
JNCLIGHT52
LCALLLIGHT54
AJMPLIGHT53
LIGHT52:
LCALLLIGHT55
LIGHT53:
LIGHT54:
MOVP2,#05DH;
东西向红灯亮,南北向绿灯亮
CLRP3.5
LIGHT55:
MOVP2,#07DH;
东西向红灯亮,南北向无灯亮
/********东西向红黄灯亮,南北向黄灯亮*********/
LIGHT6:
MOVP2,#034H
/**********东西南北路口都变成红灯***********/
LIGHT7:
MOVP2,#06DH
/*****东西南北路口都变成绿灯*****/
LIGHT8:
MOVP2,#0DBH
/**************************************************中断服务程序**********************************************************************/
INTR0:
PUSHPSW;
原始时间分秒的确定
PUSHAcc
LCALLKS
MOVTH1,#0D8H
MOVTL1,#0F0H
INCR7
CJNER7,#100,INTR04
MOVR7,#000H
CJNER1,#000,INTR04
CJNER6,#000,INTR01;
倒计时
MOVA,R5
MOVR6,A
LJMPINTR02
INTR01:
DECR6
INTR02:
CJNER4,#000,INTR03;
MOVA,R3
MOVR4,A
LJMPINTR04
INTR03:
DECR4
INTR04:
POPAcc
POPPSW
RETI
/************************************************数码管各位显示计算*******************************************************************/
COUNT1:
MOVA,NUM1;
计算东西向亮灯时间
MOVB,#10
DIVAB
MOVDX2,A
MOVDX1,B
RET
COUNT2:
MOVA,NUM2;
计算南北向亮灯时间
MOVNB2,A
MOVNB1,B
/*****************************************************数码管显示**********************************************************************/
DP1:
MOVA,DX2;
东西向两位数码管显示
MOVDPTR,#TAB0
MOVCA,@A+DPTR
CLRP0.0
MOVP1,A
LCALLDL0
MOVP1,#000H
SETBP0.0
MOVA,DX1
MOVDPTR,#TAB1
CLRP0.1
SETBP0.1
DP2:
MOVA,NB2;
南北向两位数码管显示
CLRP0.2
SETBP0.2
MOVA,NB1
CLRP0.3
SETBP0.3
DP3:
CJNER7,#050,DP31;
设置模式时数码管显示模式
DP31:
JNCDP32
AJMPDP33
DP32:
LCALLDL0
DP33:
/***************************************************************延时******************************************************************/
/*说明:
延时所用的三条令,stc10f08xe中与常用的51单片机中的指令执行时间不同*/
DL0:
MOVDELAY_1,#16;
延时时间:
[2+(2+250*4+4)×
16+4]/11.0592
DL01:
MOVDELAY_2,#250;
=16102/11.0592
DJNZDELAY_2,$;
=1.456ms
DJNZDELAY_1,DL01;
RET;
;
TAB0:
DB03FH,006H,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机实验报告 交通灯14页word 单片机 实验 报告 交通灯 14 word