电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

单片机C语言交通灯设计

单片机C语言交通灯设计_第1页
1/9
单片机C语言交通灯设计_第2页
2/9
单片机C语言交通灯设计_第3页
3/9
附录一:系统总程序 #include /****************初始变量设定*****************/ sbit p1_0=P1^0; //定义 P0 口的 8 位 sbit p1_1=P1^1; sbit p1_2=P1^2; sbit p1_3=P1^3; sbit p1_4=P1^4; sbit p1_5=P1^5; sbit p0_0=P1^6; bit flag=0; //定义显示状态控制位 int ns_time; //定义东西,南北红黄绿各自的时间初值分别为 20,15,5 秒 int ew_time; int ns_time_red=20; int ns_time_green=15; int ns_time_yellow=5; int ew_time_red=20; int ew_time_green=15; int ew_time_yellow=5; char point=20; //定时的控制次数初值设定 int a=0; //南北,东西两方向切换状态标志初值设定 /**************延时子函数**************/ delay(int t) //延时子函数 { while(t--); } /*************显示子函数***************/ display(int ew_time,int ns_time) //显示子函数 { char table[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}; //共阳极数码显示0-9 对应的字型码 char i,a[4]; a[2]=ns_time%10; //南北时间个位数赋值给 a[2] a[3]=ns_time/10; //南北时间十位数赋值给 a[3] a[0]=ew_time%10; //东西时间个位数赋值给 a[0] a[1]=ew_time/10; //东西时间个位数赋值给 a[1] SM1=0;SM0=0; //串行口工作方式 0 设定 for(i=3;i>=0;i--) //分别将 4 位数送到 SBUF 区域 {SBUF=table[a[i]]; while(!TI) ; //判断是否发送完一个数据 TI=0; //若发送完,0 赋给 TI } } /*************主函数*************/ void main(void) { TMOD=0x01; //设置定时方式1 TH0=0x3c; //定时初值50MS TL0=0xb0; TR0=1; //T0 溢出中断请求开启 EA=1; //总中断开启 ET0=1; //T0 中断开启 EX0=1; //外部中断INT0 开启 IT0=1; //设置开关下降沿有效 EX1=1; //外部中断INT0 开启 IT1=1; //设置开关下降沿有效 ns_time=ns_time_green; //东西南北红黄绿灯时间赋值 ew_time=ew_time_red; ew_time_red=ns_time_green+ns_time_yellow; if(!a) //a=0,东西显示19 开始倒计时,南北14 开始倒计时 { ns_time=ew_time_red; ew_time=ns_time_green+ns_time_yellow; } while(!a) //a=0,进入循环 { if(ew_time-5>0) { while(!flag); display(ew_time,ew_time-5); //flag=1,显示东西19,南北14 P1=0xdd; //南北绿灯,...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

单片机C语言交通灯设计

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部