#include <reg51.h>
//sbit用来定义一个符号位地址,方便编程,提高可读性,和可移植性
sbit SNRed =P0^2; //南北方向红灯
sbit SNRed1 =P2^7;
sbit SNYellow =P0^1; //南北方向黄灯
sbit SNYellow1 =P0^7;
sbit SNGreen =P0^0; //南北方向绿灯
sbit SNGreen1 =P0^6;
sbit EWRed =P0^5; //东西方向红灯
sbit EWRed1 =P2^0;
sbit EWYellow =P0^4; //东西方向黄灯
sbit EWYellow1 =P2^1;
sbit EWGreen =P0^3; //东西方向绿灯
sbit EWGreen1 =P2^2;
/* 用软件产生延时一个单位时间 */
void Delay1Unit( void )
{
unsigned int i, j;
for( i="0"; i<1000; i++ )
for( j<0; j<1000; j++ ); //通过实测,调整j循环次数,产生1ms延时
//还可以通过生成汇编程序来计算指令周期数,结合晶体频率来调整j循环次数,接近1ms
}
/* 延时n个单位时间 */
void Delay( unsigned int n ){ for( ; n!=0; n-- ) Delay1Unit(); }
void main( void )
{
while( 1 )
{
SNRed=1;SNRed1=1; SNYellow="1";SNYellow1=1; SNGreen="0";SNGreen1=0; EWRed="0";EWRed1=0; EWYellow="1";EWYellow1=1; EWGreen="1";EWGreen1=1; Delay( 200 );
SNRed=1;SNRed1=1; SNYellow="0";SNYellow1=0; SNGreen="1";SNGreen1=1; EWRed="0";EWRed1=0; EWYellow="1";EWYellow1=1; EWGreen="1";EWGreen1=1; Delay( 20);
SNRed=1;SNRed1=1; SNYellow="1";SNYellow1=1; SNGreen="1";SNGreen1=1; EWRed="0";EWRed1=0; EWYellow="1";EWYellow1=1; EWGreen="1";EWGreen1=1; Delay( 20);
SNRed=1;SNRed1=1; SNYellow="0";SNYellow1=0; SNGreen="1";SNGreen1=1; EWRed="0";EWRed1=0; EWYellow="1";EWYellow1=1; EWGreen="1";EWGreen1=1; Delay( 20);
SNRed=1;SNRed1=1; SNYellow="1";SNYellow1=1; SNGreen="1";SNGreen1=1; EWRed="0";EWRed1=0; EWYellow="1";EWYellow1=1; EWGreen="1";EWGreen1=1; Delay( 20);
SNRed=1;SNRed1=1; SNYellow="0";SNYellow1=0; SNGreen="1";SNGreen1=1; EWRed="0";EWRed1=0; EWYellow="1";EWYellow1=1; EWGreen="1";EWGreen1=1; Delay( 20);
SNRed=0;SNRed1=0; SNYellow="1";SNYellow1=1; SNGreen="1";SNGreen1=1; EWRed="1";EWRed1=1; EWYellow="1";EWYellow1=1; EWGreen="0";EWGreen1=0; Delay( 200 );
SNRed=0;SNRed1=0; SNYellow="1";SNYellow1=1; SNGreen="1";SNGreen1=1; EWRed="1";EWRed1=1; EWYellow="0";EWYellow1=0; EWGreen="1";EWGreen1=1; Delay( 20);
SNRed=0;SNRed1=0; SNYellow="1";SNYellow1=1; SNGreen="1";SNGreen1=1; EWRed="1";EWRed1=1; EWYellow="1";EWYellow1=1; EWGreen="1";EWGreen1=1; Delay( 20 );
SNRed=0;SNRed1=0; SNYellow="1";SNYellow1=1; SNGreen="1";SNGreen1=1; EWRed="1";EWRed1=1; EWYellow="0";EWYellow1=0; EWGreen="1";EWGreen1=1; Delay( 20 );
SNRed=0;SNRed1=0; SNYellow="1";SNYellow1=1; SNGreen="1";SNGreen1=1; EWRed="1";EWRed1=1; EWYellow="1";EWYellow1=1; EWGreen="1";EWGreen1=1; Delay( 20 );
SNRed=0;SNRed1=0; SNYellow="1";SNYellow1=1; SNGreen="1";SNGreen1=1; EWRed="1";EWRed1=1; EWYellow="0";EWYellow1=0; EWGreen="1";EWGreen1=1; Delay( 20 );
}
}
文章评论(0条评论)
登录后参与讨论