[农业]交通灯.doc
《[农业]交通灯.doc》由会员分享,可在线阅读,更多相关《[农业]交通灯.doc(8页珍藏版)》请在三一文库上搜索。
1、自己弄的程序已经调试通过不过还有个问题由于没设定输入为0时进入出错程序当按键设定为0时会出错有兴趣的可以加下 org 0000h mov sp,#70h sjmp main org 0023h ljmp sentmain: mov a,#00h mov p2,a lcall del1 mov a,p2 mov r1,a lcall del1 mov a,#00h mov p2,a mov a,p2 xrl a,r1 cjne a,#00h,error ;绿灯时间储入r1 缺一错误跳转 mov a,#00h mov p0,a mov a,p0 anl a,#00fh mov r2,a ;黄灯时间
2、储入r2 lcall del1 mov a,#00h mov p0,a mov a,p0 anl a,#00fh xrl a,r2 cjne a,#00h,error ; mov a,r1 add a,r2 mov r3,a ;黄灯加红灯时间存入r3 mov a,#66h add a,r3 ;判断r3是否大于99大于99则出错 jc errorcus: mov scon, #90h ;设置串行口为方式2 setb ea ;开中断 setb es ;允许串行口中断 lcall sout ;先发送红灯数据 mov r0,#02h cjne r0,#00,$ ;等待两次中断start: mov a,
3、 r1 mov 30h, a ;将绿灯时间存入30h单元 mov a, r2 mov 31h, a ;将黄灯时间存入31h单元 mov a, r3 mov 32h, a ;将绿灯加红灯时间存入32h单元 mov a, r4 mov 33h, a ;将红灯时间存入33h单元main0: mov a, 32h ;取红灯加黄灯时间 mov 2ah, a ;存入2ah 倒计时显示时间 mov r3, #0bfh ;数码管控制码 绿灯亮其他灭 mov a, 30h mov r7, a ;取延时时间存入r7,即绿灯亮时间main1: lcall del ;调用一秒延时子程序 并显示倒计时时间 djnz r
4、7,main1 ;判断延时时间是否到 没到则 转main1循环 mov r3,#0dfh ;数码管控制码 黄灯亮其他灭 mov a, 31h mov r7, a ;取延时时间存入r7, 即黄灯亮时间main2: lcall del djnz r7,main2 ;判断时间到否 没到则循环 mov r3,#7fh ;数码管控制码 红灯亮其他灭 mov a,33h ;取红灯时间 mov 2ah,a ;存入 2ah 倒计时显示时间 mov a,33h mov r7,a ;取延时时间存入r7,即红灯亮时间 main3: lcall del ;调用一秒延时 并显示倒计时时间 djnz r7,main3 ;
5、判断时间是否到没到循环 ajmp main0 ;跳转到main循环执行程序error: sjmp errordel: dec 2ah ;倒计时时间减1 mov dptr , # table ;1秒延时加到计时显示 子程序 取表头地址存入dptr mov a,2ah ; 取倒计时显示时间到a中 mov b,#0ah ;数字10存入b中 div ab ;a除以b 十位数存入a中 个位数存入b中 movc a,a+dptr ;代码装换 mov r1,a ;代码存入r1 mov a,b ;个位数存入a中 add a,r1 ;代码与个位相加 得显示码 存入a mov r2,a ;显示码存入r2disp:
6、 mov a,r2 ;显示码存入r2 mov p1,a ;送出显示码 显示 mov a,r3 mov p0,a ;输出信号灯控制码控制灯亮t2: mov r6,#10 ;延时程序 0.999秒 12mHZ时为0.99秒d1: mov r5,#200 ;6mHz时为1.98秒 可改r6=#5d2: mov r4,#248 djnz r4,$ djnz r5,d2 djnz r6,d1 ret ;子程序返回table: db 00h,10h,20h,30h,40h, db 50h,60h,70h,80h,90hsent: jnb ri,send ;不是接收,转向发送 lcall sin ;接收,调
7、用接收子程序 reti ;中断返回send: clr ti ;清发送中断标志 dec r0 ;r0减1变为1 reti ;中断返回sout: push psw push acc ;保存 psw acc装状态 mov a,r3 ;取黄灯加红灯时间放入a中 mov c,p mov tb8,c ;取奇偶效验为存入tb8 mov sbuf,a ;发送数据 pop a pop psw ;恢复 psw acc状态 ret ;子程序返回sin: push psw push a ;保存 psw acc状态 clr ri ;清接收中断标志 mov a,sbuf ;读入缓存区内容 mov c,p ;取奇偶效验位
8、jnc s1 ;p=c=0转移到s1 jnb rb8,error ;若两次效验位不一样,则出错 ljmp s2 ;正确则转s2s1: jb rb8,error ;若双方效验位不一样,则出错s2: mov r4,a ;接收到的红灯时间存入r4 dec r0 ; r0减1 pop a pop psw ;恢复 psw acc状态 ret ;子程序返回del1 : nop ; 15毫秒延时子程序 12m赫兹时 ;30毫秒延时子程序 6m赫兹时del2 : mov r6, #50del3 : mov r7, #150del4 : djnz r7, del4del5 : djnz r6, del3 ret
9、/系统晶振是 11.0592 MHz ORG 0000H LJMP START ;跳转ORG 0003H ;INT 0 中断入口地址 LJMP INT0 ORG 0040H START: MOV SP,#60H SETB EX0 ;INT 0 中断有效 SETB IT0 SETB EA LCALL STATUS0 ;初始状态(都是红灯) CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯 LCALL STATUS3 ;南北红灯,东西绿灯 LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯LJMP CIRCLEINT0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 农业 交通灯
链接地址:https://www.31doc.com/p-1970339.html