单片机实验报告交通_第1页
单片机实验报告交通_第2页
单片机实验报告交通_第3页
单片机实验报告交通_第4页
单片机实验报告交通_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、精品实验四 交通灯实验1、 实验目的1)按键、数码管、发光二极管综合应用编程技术2)定时中断技术3)按键中断技术二、实验实现的功能1)对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。 2)紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特 殊车辆通过。再按该键,恢复正常显示。三、系统硬件设计四、系统软件设计 说明:1、红绿灯规则: 绿变红时:绿灯亮绿灯闪绿灯灭黄灯亮黄灯灭红灯亮; 红变绿时:红灯亮红灯黄灯同时亮红灯黄灯同时灭绿灯亮; 2、左边数1、2位数码管计左右灯时间,3、4位计上下灯时间; 3、1键按下时进入设置红灯时间模式,同时计时停止;再次按下进入 绿灯设置模式;

2、再次按下退出设置模式,同时继续计时。设置模式 时2 键选中灯加,3键选中灯减。 4、按键4进入和退出紧急模式P1M1EQU91HP1M0EQU92HDX1DATA30H ;数码管个位显示DX2DATA31H ;数码管十位显示NB1DATA32H ;数码管百位显示NB2DATA33H ;数码管千位显示REDATA34H ;红灯亮时间,单位为秒GRDATA35H ;绿灯亮时间,单位为秒YEDATA36H ;黄灯亮时间,单位为秒NUM1DATA37H ;计算东西向亮灯时间参数NUM2DATA38H ;计算南北向亮灯时间参数DELAY_1DATA39H ;延时参数DELAY_2DATA40H ;延时参

3、数KF1DATA41H ;按键标志位KF2DATA42H ;按键标志位KF3DATA43H ;按键标志位KF4DATA44H ;按键标志位ORG0000HLJMP0030HORG001BH ;定时器1定时中断,记秒LJMPINTR0ORG0030HMOVP1M1,#00000000BMOVP1M0,#11111111BMOVSP,#060H ;设置堆栈指针MOVRE,#025 ;红灯亮时间默认值25SMOVGR,#020 ;绿灯亮时间默认值20SMOVYE,#005 ;黄灯亮时间默认值5SMOVR1,#000 ;设置时间时暂停红绿灯MOVR2,#000 ;保存键值MOVR7,#000 ;记中断

4、次数,R7=100为1秒MOVKF1,#000 ;初始化相关参数MOVKF2,#000MOVKF3,#000MOVKF4,#000MOVTMOD,#10H ;定时器初始化MOVTH1,#0D8H ;定时时间10msMOVTL1,#0F0H SETBET1SETBTR1SETBEA ;开启总中断MAIN:LCALLLIGHT ;主程序/*按键逻辑*/KY:MOVR1,#001 ;暂停计时CJNER2,#000,KY0LJMPKY15KY0:CJNER2,#004,KY1 ;紧急按键MOVR2,#000KY00:LCALLDP1 ;应急模式LCALLDP2LCALLLIGHT7CJNER2,#00

5、4,KY00MOVR2,#000LJMPKY15AJMPKY00KY1:CJNER2,#001,KY15 ;进入设置模式MOVR2,#000KY10:MOVNUM2,RELCALLCOUNT2LCALLDP3LCALLLIGHT7CJNER2,#001,KY11MOVR2,#000LJMPKY20KY11:CJNER2,#002,KY12 ;红灯加MOVR2,#000INCREMOVA,RECJNEA,#100,KY12MOVRE,#000KY12:CJNER2,#003,KY14 ;红灯减MOVR2,#000MOVA,RECJNEA,#000,KY13MOVRE,#099LJMPKY14KY

6、13:DECREKY14:AJMPKY10KY15:MOVR1,#000RETKY20:MOVNUM2,GR ;退出设置LCALLCOUNT2LCALLDP3LCALLLIGHT8CJNER2,#001,KY21MOVR2,#000LJMPKY3KY21:CJNER2,#002,KY22 ;绿灯加MOVR2,#000INCGRMOVA,GRCJNEA,#100,KY22MOVGR,#000KY22:CJNER2,#003,KY24 ;绿灯减MOVR2,#000MOVA,GRCJNEA,#000,KY23MOVGR,#099LJMPKY24KY23:DECGRKY24:AJMPKY20KY3:M

7、OVA,RE ;利用CJNE指令对CY位的影响来比较大小CJNEA,GR,KY31 ;处理最终设置结果AJMPBIGKY31:JCBIGAJMPSMALLSMALL:MOVA,RESUBBA,GRMOVYE,AAJMPKY4BIG:LJMPKY10 ;当绿灯时间小于等于红灯时间时重新设置KY4:MOVR1,#000RET/*按键扫描及确定*/KS:LCALLKS1LCALLKS2LCALLKS3LCALLKS4RETKS1:MOVA,KF1CJNEA,#001,KS12 ;按键标志位消抖JBP0.5,KS13MOVR2,#001MOVKF1,#000AJMPKS13JNBP0.5,KS13MO

8、VKF1,#001KS13:RETKS2:MOVA,KF2CJNEA,#001,KS22 ;按键标志位消抖JBP0.6,KS23MOVR2,#002MOVKF2,#000AJMPKS23JNBP0.6,KS23MOVKF2,#001KS23:RETKS3:MOVA,KF3CJNEA,#001,KS32 ;按键标志位消抖JBP0.7,KS33MOVR2,#003MOVKF3,#000AJMPKS13JNBP0.7,KS33MOVKF3,#001KS33:RETKS4:MOVA,KF4CJNEA,#001,KS42 ;按键标志位消抖JBP0.5,KS43MOVR2,#004MOVKF4,#000A

9、JMPKS43JNBP0.5,KS43MOVKF4,#001KS43:RET/*红绿灯亮灯规则*/*绿变红时:绿灯亮绿灯闪绿灯灭黄灯亮黄灯灭红灯亮; 红变绿时:红灯亮红灯黄灯同时亮红灯黄灯同时灭绿灯亮*/LIGHT:LOOP0:MOVR5,GR ;东西向绿灯亮MOVR6,GRMOVR3,RE;南北向红灯亮MOVR4,REMOVR0,YE;保存原黄灯时间LOOP01:LCALLKYMOVNUM1,R6MOVNUM2,R4LCALLCOUNT1LCALLCOUNT2LCALLLIGHT1LCALLDP1LCALLDP2MOVA,R0XRLA,R6JNZLOOP01LJMPLOOP1LOOP1:LC

10、ALLKYMOVNUM1,R6MOVNUM2,R4LCALLCOUNT1 ;东西向绿灯闪,南北向红灯亮LCALLCOUNT2LCALLLIGHT2LCALLDP1LCALLDP2MOVA,R0DECA XRLA,R4JNZLOOP1LJMPLOOP2LOOP2:MOVA,R0MOVR5,A ;东西向黄灯亮MOVR6,A ;南北向红黄灯亮MOVR3,#099MOVR4,#099LOOP21:LCALLKYMOVNUM1,R6MOVNUM2,R6LCALLCOUNT1LCALLCOUNT2LCALLLIGHT3LCALLDP1LCALLDP2MOVA,#099SUBBA,R0DECAXRLA,R4

11、JNZLOOP21LJMPLOOP3LOOP3:MOVR5,RE ;东西向红灯亮MOVR6,REMOVR3,GR ;南北向绿灯亮MOVR4,GRMOVR0,YE ;保存原黄灯时间LOOP31:LCALLKYMOVNUM1,R6MOVNUM2,R4LCALLCOUNT1LCALLCOUNT2LCALLLIGHT4LCALLDP1LCALLDP2MOVA,R0XRLA,R4JNZLOOP31LJMPLOOP4LOOP4:LCALLKYMOVNUM1,R6MOVNUM2,R4LCALLCOUNT1 ;东西向绿灯闪,南北向红灯亮LCALLCOUNT2LCALLLIGHT5LCALLDP1LCALLDP

12、2MOVA,R0DECA XRLA,R6JNZLOOP4 LJMPLOOP5LOOP5:MOVA,R0MOVR5,A ;东西向红黄灯亮MOVR6,A ;南北向黄灯亮MOVR3,#099MOVR4,#099LOOP51:LCALLKYMOVNUM1,R6MOVNUM2,R6LCALLCOUNT1LCALLCOUNT2LCALLLIGHT6LCALLDP1LCALLDP2MOVA,#099SUBBA,R0DECAXRLA,R4JNZLOOP51LCALLLOOP0/*运行模式的红绿灯*/*东西向绿灯亮,南北向红灯亮*/LIGHT1:MOVP2,#0EBHRET/*东西向绿灯闪,南北向红灯亮*/LI

13、GHT2: CJNER7,#050,LIGHT21LIGHT21: JNCLIGHT22 LCALLLIGHT24 AJMPLIGHT23LIGHT22: LCALLLIGHT25LIGHT23: RETLIGHT24: MOVP2,#0EBH ;东西向绿灯亮,南北向红灯亮 RETLIGHT25: MOVP2,#0EFH;东西向无灯亮,南北向红灯亮 RET/*东西向黄灯亮,南北向红黄灯亮*/LIGHT3:MOVP2,#0A6HRET/*东西向红灯亮,南北向绿灯亮*/LIGHT4: MOVP2,#05DHRET/*东西向红黄灯亮,南北向绿灯闪*/LIGHT5: CJNER7,#050,LIGHT

14、51LIGHT51: JNCLIGHT52 LCALLLIGHT54 AJMPLIGHT53LIGHT52: LCALLLIGHT55LIGHT53: RETLIGHT54: MOVP2,#05DH;东西向红灯亮,南北向绿灯亮 RETLIGHT55: MOVP2,#07DH;东西向红灯亮,南北向无灯亮 RET/*东西向红黄灯亮,南北向黄灯亮*/LIGHT6:MOVP2,#034HRET/*东西南北路口都变成红灯*/LIGHT7:MOVP2,#06DHRET/*东西南北路口都变成绿灯*/LIGHT8:MOVP2,#0DBHRET/*中断服务程序*/INTR0:PUSHPSW;原始时间分秒的确定P

15、USHAccLCALLKS MOVTH1,#0D8HMOVTL1,#0F0HINCR7CJNER7,#100,INTR04MOVR7,#000HCJNER1,#000,INTR04CJNER6,#000,INTR01;倒计时MOVA,R5MOVR6,ALJMPINTR02INTR01:DECR6INTR02:CJNER4,#000,INTR03;倒计时MOVA,R3MOVR4,ALJMPINTR04INTR03:DECR4INTR04:POPAccPOPPSWRETI/*数码管各位显示计算*/COUNT1:MOVA,NUM1 ;计算东西向亮灯时间MOVB,#10DIVABMOVDX2,AMOV

16、DX1,BRETCOUNT2:MOVA,NUM2;计算南北向亮灯时间MOVB,#10DIVABMOVNB2,AMOVNB1,BRET/*数码管显示*/DP1:MOVA,DX2;东西向两位数码管显示MOVDPTR,#TAB0MOVCA,A+DPTRMOVP1,ALCALLDL0MOVP1,#000HMOVA,DX1MOVDPTR,#TAB1MOVCA,A+DPTRMOVP1,ALCALLDL0MOVP1,#000HRETDP2:MOVA,NB2 ;南北向两位数码管显示MOVDPTR,#TAB0MOVCA,A+DPTRMOVP1,ALCALLDL0MOVP1,#000HMOVA,NB1MOVDPT

17、R,#TAB0MOVCA,A+DPTRMOVP1,ALCALLDL0MOVP1,#000HRETDP3:CJNER7,#050,DP31 ;设置模式时数码管显示模式DP31:JNCDP32LCALLDP2AJMPDP33DP32:LCALLDL0DP33:RET/*延时*/*说明:延时所用的三条令,stc10f08xe中与常用的51单片机中的指令执行时间不同*/DL0:MOVDELAY_1,#16 ;延时时间:2+(2+250*4+4)DJNZDELAY_1,DL01 ;RET ; ; TAB0:DB03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,067H;无小数点的LED字模表TAB1:DB0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH,087H,0FFH,0E7H;有小数点的LED字模表END五、实验过程中遇到的问题及解决方法1、怎么将按键按描程序放入中断? 改变用无延

温馨提示

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

评论

0/150

提交评论