交通灯程序2Word文件下载.docx

上传人:b****5 文档编号:17094250 上传时间:2022-11-28 格式:DOCX 页数:9 大小:15.67KB
下载 相关 举报
交通灯程序2Word文件下载.docx_第1页
第1页 / 共9页
交通灯程序2Word文件下载.docx_第2页
第2页 / 共9页
交通灯程序2Word文件下载.docx_第3页
第3页 / 共9页
交通灯程序2Word文件下载.docx_第4页
第4页 / 共9页
交通灯程序2Word文件下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

交通灯程序2Word文件下载.docx

《交通灯程序2Word文件下载.docx》由会员分享,可在线阅读,更多相关《交通灯程序2Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。

交通灯程序2Word文件下载.docx

/*数码管显示0-9*/

uintcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

/*子函数声明*/

voiddelay(uintz);

voiddelay0(uintz);

//voidinit(uinta);

voiddisplay(uintge,uintshi);

voidxtimer0();

voidinit1();

voidinit2();

voidinit3();

voidinit4();

voidinit5();

voidxint1();

voidxint0();

voidLED_ON();

voidLED_OFF();

/**********************主函数************************/

voidmain()

{

P0=0XFF;

P1=0xFF;

P2=0xFF;

EA=1;

//打开外部中断

EX1=1;

//允许外部中断1中断

IT1=0;

//INT0为沿触发方式

init1();

while

(1)

{

init2();

//第2个状态

init3();

//第3个状态

init4();

//第4个状态

init5();

//第5个状态

}

}

voidinit1()//第一个状态:

主干道、支干道均亮红灯5S

{

uinttemp;

temp=6;

//变量赋初值

TMOD=0x01;

//定时器0工作于方式1

TH0=0x4c;

TL0=0x00;

//定时器赋初值

//开外部中断

ET0=1;

//开定时中断

TR0=1;

//开定时器0

RED_ZHU=0;

//第一个状态主干道、支干道均亮红灯5S

RED_ZHI=0;

GREEN_ZHU=1;

GREEN_ZHI=1;

YELLOW_ZHU=1;

YELLOW_ZHI=1;

if(aa==20)//定时20*50MS=1S

{

aa=0;

//定时完成一次后清0

temp--;

//变量自增

//delay(10);

if(temp>

250)//定时100S

{

temp=6;

//变量清0

break;

}

shi=temp%100/10;

//显示十位

ge=temp%10;

//显示个位

}

display(ge,shi);

voidinit2()//第二个状态:

主干道亮绿灯30S、支干道亮红灯

temp=31;

{

RED_ZHU=1;

RED_ZHI=0;

GREEN_ZHU=0;

//第二个状态:

YELLOW_ZHI=1;

if(temp==3)//定时100S

temp=30;

//显示个位

voidinit3()//第三个状态:

主干道绿灯闪3次转亮黄灯、支干道亮红灯3S

temp=4;

//YELLOW_ZHU=~YELLOW_ZHU;

YELLOW_ZHU=~YELLOW_ZHU;

200)//定时100S

temp=4;

;

voidinit4()//第四个状态:

主干道亮红灯、支干道亮绿灯25S

temp=26;

RED_ZHI=1;

//第一个状态主干道、支干道均亮红灯5S

GREEN_ZHI=0;

temp=25;

voidinit5()//第五个状态:

主干道亮红灯、支干道绿灯闪3次转亮黄灯3S

//YELLOW_ZHI=~YELLOW_ZHI;

//变量自增

YELLOW_ZHI=~YELLOW_ZHI;

}

/*显示子函数*/

voiddisplay(uintge,uintshi)

P0=0xfd;

P2=table[shi];

delay0(5);

P0=0xfe;

P2=table[ge];

voidxint0()interrupt2//外部中断1,这里用2是INT1的优先级为0

LED_ON();

voidLED_ON()//外部中断0显示子程序

RED_ZHU=0;

GREEN_ZHI=1;

GREEN_ZHU=1;

YELLOW_ZHU=1;

delay0(1000);

return;

/*定时中断子函数*/

voidxtimer0()interrupt1

aa++;

/*延时子函数*/

voiddelay0(uintz)

uinti,j;

for(i=0;

i<

z;

i++)

for(j=0;

j<

110;

j++);

/********500ms延时函数晶振:

11.0592MHz*******/

voiddelay(unsignedcharj)

unsignedchark;

unsignedinti;

for(;

j>

0;

j--)

for(i=1250;

i>

i--)

for(k=180;

k>

k--);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1