任务描述:
某企业承担了一个十字路口交通灯控制系统设计任务,控制要求:东西向绿灯亮 5s 后,黄灯闪烁,闪烁5次亮红灯,红灯亮后,南北向由红灯变成绿灯,5s 后南北向黄灯闪烁,闪烁5次后亮红灯,东西向绿灯亮,如此往复。请用单片机设计其控制系统并调试运行。
电路原理图
元件清单
C语言程序
#include void delay0_5s(); void delay5s(); void main() { unsigned char k; TMOD=0x10; //设置T1为工作方式1 while(1) { P1=0x09; //东西绿灯亮5秒&南北红灯亮 delay5s(); for(k=0;k<5;k++) //东西黄灯闪烁&南北红灯 { P1=0x11; //东西黄灯亮&南北红灯亮 delay0_5s(); P1=0x01; //东西黄灯灭&南北红灯亮 delay0_5s(); } P1=0x24; //东西红灯亮&南北绿灯亮5秒 delay5s(); for(k=0;k<5;k++) //东西红灯&南北黄灯闪烁 { P1=0x22; //东西红灯&南北黄灯亮 delay0_5s(); P1=0x20; //东西红灯&南北黄灯灭 delay0_5s(); } } } void delay0_5s() //0.5秒延时 { unsigned char i; for(i=0;i<10;i++) { TH1=0X3C; TL1=0xb0; TR1=1; while(!TF1); TF1=0; } } void delay5s() //5秒延时 { unsigned char i; for(i=0;i<50;i++) { TH1=0X3C; TL1=0xb0; TR1=1; while(!TF1); TF1=0; } }