人的记忆力会随着岁月的流逝而衰退,写作可以弥补记忆的不足,将曾经的人生经历和感悟记录下来,也便于保存一份美好的回忆。大家想知道怎么样才能写一篇比较优质的范文吗?下面我给大家整理了一些优秀范文,希望能够帮助到大家,我们一起来看一看吧。
51单片机交通灯控制设计程序 51单片机交通灯流程图篇一
东西方向60秒,南北方向57秒
#include
sbit ns_y=p2^4;//南北黄灯 sbit ns_r=p2^3;//南北红灯
sbit ew_g=p2^2;//东西绿灯 sbit ew_y=p2^1;//东西黄灯 sbit ew_r=p2^0;//东西红灯
sbit led_d1=p3^7;//南北方向数码管位控制 sbit led_c1=p3^6;//南北方向数码管位控制 sbit led_b1=p3^1;//东西方向数码管为控制 sbit led_a1=p3^0;//东方向数码管位控制
/*********倒计时赋初值*************/ uchar ewf=20,nsf=17,x=20,y=17,z=20,shu=20;uchar count;
void init(void){ tmod=0x01;th0=(65536-50000)/256;tl0=(65536-50000)%256;ea=1;et0=1;tr0=1;} /*******************中断服务程序**************************/ void timer1(void)interrupt 1 {
tmod=0x01;th0=(65536-50000)/256;tl0=(65536-50000)%256;ea=1;et0=1;tr0=1;
count++;if(count>19){
ewf--;
nsf--;
x--;
y--;
z--;
shu--;
count=0;
}
} /******************延时**********************/
void delay10us(uchar z){ uchar x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}
/******************led控制*******************/ unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极数码管赋值
void display1(uchar num1,uchar num2)
//控制东西方向led显示 {
p0=table[num1];
led_a1=on;
delay10us(1);
led_a1=off;
p0=table[num2];
led_b1=on;
delay10us(1);
led_b1=off;
} void display2(uchar num3,uchar num4)//控制南北方向led显示 {
p0=table[num3];
led_c1=on;
delay10us(1);
led_c1=off;
p0=table[num4];
led_d1=on;
delay10us(1);
led_d1=off;
} void main(){ int i;/************初始状态东西南北禁止通行************/
ns_r=on;//南北方向红灯打开
ew_r=on;
//东西方向红灯打开
for(i=0;i<600;i++)
{
delay10us(20);
} ns_r=off;//南北方向红灯关闭
ew_r=off;//东西方向红灯关闭
while(1)
{
init();
// 初始化计时器
/****************状态1:东西绿灯(57s),南北红灯(60s)**************/ /***************状态2:东西黄灯(3s),南北红灯(60s)****************/
ew_g=on;//东西方向的绿灯打开
ns_r=on;//南北方向的红灯打开
while(ewf!=0)
{
display1(ewf/10,ewf%10);// 东西方向红灯(60s)
display2(nsf/10,nsf%10);// 南北方向绿灯(57s)
while(ewf==3)
{
while(x!=0)
{
display1(ewf/10,ewf%10);// 东西方向红灯(3s)
display2(x/10,x%10);// 南北方向黄灯(3s)
ew_g=off;// 东西方向的绿灯关闭
ew_y=on;// 东西方向的黄灯打开
}
}
}
ns_r=off;// 南北方向的红灯关闭
ew_g=off;// 东西方向的绿灯关闭
ew_y=off;// 东西方向的黄灯打?
/*=*************状态3:东西红灯(60s),南北绿灯(57s)************/ /****************状态4:东西红灯(60s),南北黄灯(3s)***************/
ew_r=on;// 东西方向的红灯打开
ns_g=on;// 南北方向的绿灯打开
while(z!=0)
{
display2(z/10,z%10);// 南北方向红灯(57s)
display1(y/10,y%10);// 东西方向绿灯(57s)
while(z==3)
{
while(shu!=0)
{
display2(z/10,z%10);// 东西红灯(3s)
display1(shu/10,shu%10);// 南北绿灯(3s)
ns_g=off;//南北方向的绿灯关闭
ns_y=on;// 南北方向的黄灯打开
}
}
}
} ew_r=off;// 东西方向的红灯关闭
ns_g=off;// 南北方向的绿灯关闭
ns_y=off;// 南北方向的黄灯关闭
ewf=60,nsf=57,x=60,y=57,z=60,shu=60;//重新赋值
}
51单片机交通灯控制设计程序 51单片机交通灯流程图篇二
毕业设计
程序源代码
org 0000h
;主程序的入口地址
ljmp main
;跳转到主程序的开始处
org 0003h
;外部中断0的中断程序入口地址
org 000bh
;定时器0的中断程序入口地址
ljmp t0_int
;跳转到中断服务程序处
org 0013h
;外部中断1的中断程序入口地址
main : mov sp,#50h
mov ie,#8eh
;cpu开中断,允许t0中断,t1中断和外部中断1中断
mov tmod,#51h
;设置t1为计数方式,t0为定时方式,且都工作于模式1
mov th1,#00h
;t1计数器清零
mov tl1,#00h
setb tr1
;启动t1计时器
setb ex1
;允许int1中断
setb it1
;选择边沿触发方式
mov dptr ,#0003h
mov a, #80h
;给8255赋初值,8255工作于方式0
movx @dptr, a again: jb p3.1,n0
;判断是否要设定东西方向红绿灯时间的初值,若p3.1为1 则跳转
mov a,p1
jb p1.7,red
;判断p1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间
mov r0,#00h
;r0清零
mov r0,a
;存入东西方向绿灯初始时间
mov r3,a
lcall disp1
lcall delay
ajmp again red:
mov a,p1
anl a,#7fh
;p1.7置0
mov r7,#00h
;r7清零
mov r7,a
;存入东西方向红灯初始时间
mov r3,a
lcall disp1
lcall delay
ajmp again
毕业设计
;------------n0:
setb tr0
;启动t0计时器
mov 76h,r7
;红灯时间存入76h n00:
mov a,76h
;东西方向禁止,南北方向通行
mov r3,a
mov dptr,#0000h;置8255a口,东西方向红灯亮,南北方向绿灯亮
mov a,#0ddh
movx @dptr, a n01:
jb p2.0,b0 n02:
setb p3.0
cjne r3,#00h,n01;比较r3中的值是否为0,不为0转到当前指令处执行;------黄灯闪烁5秒程序------n1:
setb p3.0
mov r3,#05h
mov dptr,#0000h;置8255a口,东西,南北方向黄灯亮
mov a,#0d4h
movx @dptr,a n11:
mov r4,#00h n12:
cjne r4,#7dh,$
;黄灯持续亮0.5秒
n13:
mov dptr,#0000h
;置8255a口,南北方向黄灯灭
mov a,#0ddh
movx @dptr,a n14:
mov r4,#00h
cjne r4,#7dh,$
;黄灯持续灭0.5秒
cjne r3,#00h,n1
;闪烁时间达5秒则退出;-----------------------------n2:
mov r7,#00h
mov a,r0
;东西通行,南北禁止
mov r3,a
mov dptr,#0000h;置8255a口,东西方向绿灯亮,南北方向红灯亮
mov a,#0ebh
movx @dptr,a n21:
jb p2.0,t03
n22:
cjne r3,#00h,n21;------黄灯闪烁5秒程序------n3:
mov r3,#05h
mov dptr,#0000h
;置8255a口,东西,南北方向黄灯亮
毕业设计
mov a,#0e2h
movx @dptr,a n31:
mov r4,#00h
cjne r4,#7dh,$
;黄灯持续亮0.5秒
n32:
mov dptr,#0000h;置8255a口,南北方向黄灯灭
mov a,#0ebh
movx @dptr,a n33:
mov r4,#00h
cjne r4,#7dh,$
;黄灯持续灭0.5秒
cjne r3,#00h,n3
;闪烁时间达5秒则退出
sjmp n00;------闯红灯报警程序------b0:
mov r2,#03h
;报警持续时间3秒 b01:
mov a,r3
jz n1
;若倒计时完毕,不再报警
clr p3.0
;报警
cjne r2,#00h,b01
;判断3秒是否结束
sjmp n02;------1秒延时子程序-------n7:
reti t0_int:mov tl0,#9ah
;给定时器t0送定时10ms的初值
mov th0,#0f1h
inc r4
inc r5
cjne r5,#0fah,t01;判断延时是否够一秒,不够则调用显示子程序
mov r5,#00h
;r5清零
dec r3
;倒计时初值减一
dec r2
;报警初值减一 t01:
acall disp
;调用显示子程序
reti
;中断返回;------显示子程序------disp: jnb p2.4,t02 disp1: mov b,#0ah
mov a,r3
;r3中值二转十显示转换
div ab
mov 79h,a
mov 7ah,b dis:
mov a,79h
;显示十位
毕业设计
mov dptr,#tab
movc a,@a+dptr
mov dptr,#0002h
movx @dptr,a
mov dptr,#0001h
mov a,#0f7h
movx @dptr,a
lcall delay ds2:
mov a,7ah
;显示个位
mov dptr,#tab
movc a,@a+dptr
mov dptr,#0002h
movx @dptr,a
mov dptr,#0001h
mov a,#0fbh
movx @dptr,a
ret;------东西方向车流量检测程序------t03:
mov a,r3
subb a,#00h
;若绿灯倒计时完毕,不再检测车流量
jz
n3
jb p2.0,t03
inc r7
cjne r7,#64h,e1
mov r7,#00h
;中断到100次则清零 e1:
sjmp n22;------东西方向车流量显示程序------t02:
mov b,#0ah mov
a,r7
;r7中值二转十显示转换
div ab
mov 79h,a
mov 7ah,b dis3: mov a,79h
;显示十位
mov dptr,#tab
movc a,@a+dptr
mov dptr,#0002h
movx @dptr,a
mov dptr,#0001h
毕业设计
mov a,#0f7h
movx @dptr,a
lcall delay ds4:
mov a,7ah
;显示个位
mov dptr,#tab
movc a,@a+dptr
mov dptr,#0002h
movx @dptr,a
mov dptr,#0001h
mov a,#0fbh
movx @dptr,a
ljmp n7;------延时4ms子程序----------delay: mov r1,#0ah loop: mov r6,#64h
nop loop1: djnz r6,loop1
djnz r1,loop
ret
;------字符表------tab:
db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
end
51单片机交通灯控制设计程序 51单片机交通灯流程图篇三
单片机控制交通灯实验设计
摘要:本次实验运用80c51单片机来完成对红黄绿交通灯的控制。实验当中主要运用了80c51单片机的计数器定时器功能,另外对单片机的一些参数进行了设置,比如说晶振,复位电路中的电阻值,电容值等。系统采用上电自动复位【1】,利用4个数码管显示各状态的剩余时间,时间显示采用倒计时方式,两组红黄绿led三色灯作为模拟显示的交通信号灯,各状态交替进行。
关键字:80c51单片机
倒计时
红绿灯led显示
前言:十字路口的红绿交通灯,保证了车辆,行人有条不紊的通行。从事本课题设计的意义在于,在实际的脚痛管理中引入答案偏激交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性,提高交通管理的服务质量,并在一定程度上减少服务人员的工作量。通过自己的实际操作,了解和掌握80c51单片机在解决实际问题时的应用,同样也了解红绿交通灯设计的背景和原理。目前在一些大的十字路口上所用到的交通灯系统不仅仅有红黄绿灯的指示,而且还有直行,转弯的提示灯,本次实验个人仅就十字路口中的红黄绿交通灯作简要分析。再设计本次实验时我调整了各个数码管的频率设置,还有对其中一些原件进行了参数的设置,以达到我想要的结果。本次实验完全是通过自己的查书翻阅资料进行设计的,设计不当之处望老师加以指正。
正文:本次实验老师要求参照实际交通灯的模型来进行设计,设计难度不限。我所设计的交通灯系统用在十字路口上,由红黄绿三种颜色的灯组成。红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换;绿灯亮时则表示可以通行。我所设计的电路图如下:
试验流程图:
实验:本电路中包含的主要元件有:80c51单片机芯片,交通灯,红绿信号led灯,数码显示管等。交通灯设计了两组,分别代表南北和东西方向。当东西方向允许通行时,南北方向就禁止行车;南北方向允许通车时,东西方向就禁止行车。连接线路图如图所示。经过我的观察,十字路口的交通灯东西,南北方向分别为红灯,绿灯时所需要的时间是不同的。例如当东西方向为红灯时,变为绿灯的过程中不仅要有一个黄灯的转换过程,而且计数的时间和开始南北方向为绿灯时的计数起始值是不一样的。红灯的计数起始值要比绿灯的计数起始值长,这么做主要是为了安全因素的考虑。即不管哪个方向是红灯,计数的起始值始终要比起始是绿灯的那个方向长。所以,本次实验我在设计时,把红灯的起始时间设计为9s,而绿灯的起始时间设定为7s。当东西南北方向的红绿灯进行转换时,所设定的9s,7s数值一次跟着一起转换,在程序中要加以变换。在电路中我还依次设计了外接晶振的内部时钟电路和复位电路。外接晶振的内部时钟方式所选取的电容值为30pf;复位电路采用上电复位电路,因为所选取的晶振为12mhz,所以电容值选为10uf,r1电阻选为8.2k。复位电路处接正5伏特电源。在led灯前面要加上限流电阻。【2】因为一般数码管的工作电流为5ma左右,而电源为5伏特,所以限流电阻值为5/0.005=1k。
调试过程:本次实验的调试过程还是非常艰辛的。起初我的数码显示管只设计了一组两个,按照之前所做过的三次试验,我进行了组合。但是调试出来的结果是数码管可以显示数据,但是设为9的一个数码管每次跳到2,设为7的数码管每次跳到1就停止了。不能自动循环。我又仔细检查调试了源程序。发现我在写试验程序时,loop1和loop3并不是按照loop2那样把p2和p3端口依次查表进行循环,而只是顾及了p2端口查表循环,然后进行更正后,设为9的端口可以自己跳到1并且开始循环。在实验的设计中,为了把黄灯闪烁的时间考虑在内,设为9和7的端口我分别进行了频率的调整,使设为7的端口值变为1之后还能停在那里等待设为9的那个端口变为1之后一起进行循环。因为实际的交通灯的数码显示管都是有四个的,所以为了减少工作量,我并没有去重新再写一段程序,而是把上面两个弄好的数码管中的连线依次接到我想接的数码管上。这样理论上是行的通的,因为只是把端口进行了复用,但是刚开始我做的时候是不成功的。因为我发现在接上两个交通灯后,上面两个弄好的数码管间也不能完整的显示每一个数字了,而是对于每一个数字都会有短缺。【3】我又进行了线路的排线仔细检查,发现原来是有些线路接在一起了,造成了连线,只要起始位置之间保证是一条线连接过来的,那么这个想法就可以实现,最后在自己的努力之下终于成功了。
测试结果:交通灯可以正常工作,按照以上所述进行红黄绿的转换。因为在实验中我分别用到了四个循环,针对两个数码管和led灯,并且调用了延时程序。
结论:本次交通灯的实验设计花费了我很大的精力,具体得出以下几点结论要点:
1.试验中要注意的第一点就是排线是否正确,以及所设计的程序和电路图的接口是否正确。如果不正确的话,根本出不来想要的结果。
2.注意到本次实验用到的是汇编语言,同以前的c语言还是有很多的不同的。包括循环的调用与c语言就有很多的不同。c语言中后面所跟的循环主要是条件,而汇编语言中是要转到的目的地址,一定要特别注意。
3.实验中要注意各元器件的参数问题,只有合理设计好各元器件参数值,这样设计出的实验才更精准,达到的效果才更好。
4.单片机是一门实用性很强的学科,所以必须多加实践,必须用到实际中才能成为真正学以致用的知识。参考文献:
【1】 单片机原理与应用技术,第三版,李全钊主编,p27-p30 【2】 梁宗善.电子技术基础与课程设计.华东理工大学出版社.1994.【3】 赵广林,电路设计与制版
【4】 http://
附录:
图1:复位电路
图2:晶振电路
3:80c51的主芯片图
51单片机交通灯控制设计程序 51单片机交通灯流程图篇四
智能交通灯设计与实现
基于单片机的智能交通灯控制系统的设计与实现,系统能够根据十字路口双车道车流量的情况控制交通讯号灯按特定的规律变化。
首先对智能交通灯的研究意义和智能交通灯的研究现状进行了分析,指出了现状交通灯存在的缺点,并提出了改进方法。智能交通灯控制系统通常要实现自动控制和在紧急情况下能够手动切换信号灯让特殊车辆优先通行。
一.引言
智能的交通讯号灯指挥着人和各种车辆的安全运行,实现红、黄、绿灯的自动指挥是城乡交通治理现代化的重要课题.在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通讯号灯,其中红灯亮,表示该条道路禁止通行;黄灯亮,表示该条道路上未过泊车线的车辆休止通行,已过泊车线的车辆继承通行;绿灯亮,表示该条道路答应通行.交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通治理自动化.本文实现了交通道路的治理,力求交通治理提高前辈性、科学化.分析应用了单片机实现智能交通灯管制的控制系统。
二.技术指标
1)设计一个十字路口的交通灯控制电路,要求南北方向和东西方向两个交叉路口的车辆交替运行,两个方向能根据车流量大小自动调节通行时间,车流量大,通行时间长,车流量小,通行时间短。
2)每次绿灯变红灯时,要求黄灯先亮5s,才能变换运行车辆.3)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用数码管显示器进行显示(采用倒计时的方法)。
4)同步设置人行横道红、绿灯指示。
5)考虑到特殊车辆情况,设置紧急转换开头。
三.智能交通灯的方案选择
1)智能交通灯的研究现状 目前设计交通灯的方案有良多,有应用cpld设计实现交通讯号灯控制器方法;有应用plc实现对交通灯控制系统的设计;有应用单片机实现对交通讯号灯设计的方法。目前,海内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。对于一般情况下的安全行车,车辆分流尚能施展作用,但根据实际行车过程中泛起的情况,还存在以下缺点:1.两车道的车辆轮放逐行时间相同且固定,在十字路口,常常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。2.没有考虑紧急车通过期,两车道应采取的措施,臂如,消防车执行紧急任务通过期,两车道的车都应休止,让紧急车通过。
2)智能交通灯的设计解决方案及改进措施
针对道路交通拥挤,交叉路口常常泛起拥堵的情况。利用单片机控制技术.提出了软件和硬件 设计方案及两点改进措施:
1、根据各道路路口车流量的大小自动调节通行时间。
2、考虑特殊车辆通行情况,设计紧急切换开关。
因为at89s51单片机自单带有2计数器,6个间断源,能知足系统的设计要求。用单片机设计不但设计简朴,而且本钱低,用其设计的交通灯也知足了要求,所以本文采用单片机设计交通灯
原文地址:http:///rmwz/dpj/
51单片机交通灯控制设计程序 51单片机交通灯流程图篇五
proteus仿真原理图:
keil c源程序:
#include
int sbit
red_dongxi
= p1^0;//南北方向红灯亮 sbit
yellow_dongxi = p1^1;//南北方向黄灯亮 sbit
red_nanbei
= p1^3;//东西方向红灯亮 sbit
green_dongxi = p1^2;//南北方向绿灯亮 sbit
yellow_nanbei = p1^4;//东西方向黄灯亮 sbit
green_nanbei = p1^5;//东西方向绿灯亮
sbit
dxweixuan1
= p1^6;//南北方向数码管位选1 sbit
dxweixuan2
= p1^7;//南北方向数码管位选2 sbit
nbweixuan1
= p3^0;//东西方向数码管位选1 sbit
nbweixuan2
= p3^1;//东西方向数码管位选2 sbit
l1=p3^5;sbit
l2=p3^6;sbit
l3=p3^7;uint aa, bai,shi,ge,bb;uint shi1,ge1,shi2,ge2;uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uint code table1[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};void delay(uint z);void init(uint a);void display(uint shi1,uint ge1,uint shi2,uint ge2);void xtimer0();void init1();void init2();void init3();void init4();void init5();void xint1();void xint0();void led_on();void led_off();
void main(){ p0=0xff;p1=0xff;p2=0x00;
p3=0xff;ea=1;ex0=1;it0=0;
init1();while(1)
{
init2();//第2个状态
init3();//第3个状态
init4();//第4个状态
init5();//第5个状态
} } void init1()//第一个状态:东西、南北方向均亮红灯5s { uint temp;temp=5;tmod=0x01;th0=(65535-50000)/256;tl0=(65535-50000)%256;ea=1;et0=1;tr0=1;while(1){
red_dongxi=0;
//第一个状态东西、南北均亮红灯5s
red_nanbei=0;
green_dongxi=1;
green_nanbei=1;
yellow_dongxi=1;
yellow_nanbei=1;
if(aa==20)//定时20*50ms=1s
{
aa=0;
temp--;
}
shi1=shi2=temp/10;
ge1=ge2=temp%10;
if(temp==0)
{
temp=5;
break;
}
display(ge1,shi1,ge2,shi2);} } void init2()//第二个状态:东西亮红灯30s~5s、南北亮绿灯25~0s;{ uint temp;temp=26;tmod=0x01;th0=(65535-50000)/256;tl0=(65535-50000)%256;ea=1;et0=1;tr0=1;while(1){
red_dongxi=1;
red_nanbei=0;
green_dongxi=0;
green_nanbei=1;
yellow_dongxi=1;//第二个状态:东西亮绿灯25s、南北亮红灯
yellow_nanbei=1;
if(aa==20)//定时20*50ms=1s
{
aa=0;
temp--;
shi1=(temp+5)/10;
}
}
} ge1=(temp+5)%10;shi2=temp/10;ge2=temp%10;if(temp==0){ temp=26;break;} display(ge1,shi1,ge2,shi2);void init3()//第三个状态:东西绿灯变为黄灯闪5次、南北亮红灯5s { uint temp;temp=6;tmod=0x01;th0=(65535-50000)/256;tl0=(65535-50000)%256;ea=1;et0=1;tr0=1;while(1){
red_nanbei=0;
green_dongxi=1;
if(aa==20)//定时20*50ms=1s
{
aa=0;
temp--;
yellow_dongxi=~yellow_dongxi;
shi1=temp/10;
shi2=shi1;
ge1=temp%10;
ge2=ge1;
}
if(temp==0)
{
temp=6;
break;
}
display(ge1,shi1,ge2,shi2);} } void init4()//第四个状态:东西亮绿灯25~0s,南北方向亮红灯30~5s; { uint temp;temp=26;tmod=0x01;th0=(65535-50000)/256;tl0=(65535-50000)%256;ea=1;et0=1;tr0=1;while(1){
red_dongxi=0;
red_nanbei=1;
yellow_dongxi=1;//第一个状态东西、南北均亮红灯5s
green_nanbei=0;
if(aa==20)
{
aa=0;
temp--;
shi1=temp/10;
shi2=(temp+5)/10;
ge1=temp%10;
ge2=(temp+5)%10;
if(temp==0)
{
temp=26;
break;
}
}
display(ge1,shi1,ge2,shi2);} } void init5()//第五个状态:东西亮红灯、南北绿灯闪5次转亮黄灯5s { uint temp;temp=6;tmod=0x01;th0=(65535-50000)/256;tl0=(65535-50000)%256;ea=1;et0=1;tr0=1;while(1){
red_nanbei=1;
red_dongxi=0;
green_dongxi=1;
green_nanbei=1;
if(aa==20)
{
aa=0;
temp--;
yellow_nanbei=~yellow_nanbei;
shi1=temp/10;
shi2=shi2;
ge1=temp%10;
ge2=ge1;
if(temp==0)
{
temp=6;
break;
}
}
display(ge1,shi1,ge2,shi2);} }
void display(uint shi1,uint ge1,uint shi2,uint ge2){ dxweixuan1=0;dxweixuan2=1;nbweixuan1=1;nbweixuan2=1;p0=table[ge1];delay(5);dxweixuan1=1;dxweixuan2=0;nbweixuan1=1;nbweixuan2=1;p0=table[shi1];delay(5);dxweixuan1=1;dxweixuan2=1;nbweixuan1=0;nbweixuan2=1;p0=table[ge2];delay(5);dxweixuan1=1;dxweixuan2=1;nbweixuan1=1;nbweixuan2=0;p0=table[shi2];delay(5);} void xint0()interrupt 0 { red_nanbei=0;red_dongxi=0;green_nanbei=1;green_dongxi=1;
yellow_nanbei=1;yellow_dongxi=1;p0=0x00;nbweixuan1=0;nbweixuan2=0;dxweixuan1=0;dxweixuan2=0;delay(2);return;} void xint1()interrupt 2 { red_nanbei=1;red_dongxi=1;green_nanbei=0;green_dongxi=0;
yellow_nanbei=1;yellow_dongxi=1;p0=0x00;nbweixuan1=0;nbweixuan2=0;dxweixuan1=0;dxweixuan2=0;delay(2);return;} void xtimer0()interrupt 1 { th0=(65535-50000)/256;tl0=(65535-50000)%256;aa++;} void delay(uint z){uint x,y;for(x=0;x for(y=0;y<110;y++);}