这是一个很好看的交通灯仿真电路图第一次为一个漂亮的仿真电路图感到惊讶,大家欣赏:
一个很用心的仿真电路
由于工作原因我自己很多年都没用51单片机做项目开发了,但因为写文章的缘故前面有初学者问能否分享一下例程做参考,所以就在网上找了一些仿真例程来,偶尔看到合适的工程功能确认没问题就拿出来分享给初学者做参考。
这个仿真电路图整体来说作者是非常用心了,把一个简单的仿真电路打扮得这么漂亮,也确实让人耳目一新,实属不易,不管怎样还是非常感谢原作者分享如此漂亮的电路图,看了作者的程序也确实写得很规范,肯定不是出自初学者之手,程序值得新手参考借鉴,代码贴后面了,各位自行复制。交通灯是一般课程训练中比较常见的工程,希望初学者可以合理利用,当然是先看到别人的代码再进行copy哈,所以不建议伸手就用,有些可以完善的功能各位可以尝试进行修改。
程序功能仿真
示例代码:
/***************************************************** 十字路口交通灯控制 c 程序******************************************************/#define uchar unsigned char#define uint unsigned int#include /*****定义控制位**********************/sbit time_show_led2=p2^5;//time_show_led2控制位sbit time_show_led1=p2^4;//time_show_led1控制位sbit ew_led2=p2^3; //ew_led2控制位sbit ew_led1=p2^2; //ew_led1控制位sbit sn_led2=p2^1; //sn_led2控制位sbit sn_led1=p2^0; //sn_led1控制位sbit sn_yellow=p1^6;//sn黄灯sbit ew_yellow=p1^2;//ew黄灯sbit ew_red=p1^3;//ew红灯sbit sn_red=p1^7;//sn红灯sbit ew_mangreen=p3^0;//ew人行道绿灯sbit sn_mangreen=p3^1;//sn人行道绿灯sbit special_led=p2^6;//交通正常指示灯sbit busy_led=p2^7;//交通繁忙指示灯sbit nomor_button=p3^5;//交通正常按键sbit busy_btton=p3^6;//交通繁忙按键sbit special_btton=p3^7;//交通特殊按键sbit add_button=p3^3;//时间加sbit reduces_button=p3^4;//时间减bit flag_sn_yellow; //sn黄灯标志位bit flag_ew_yellow;//ew黄灯标志位char time_ew;//东西方向倒计时单元char time_sn;//南北方向倒计时单元uchar ew=60,sn=40,ewl=19,snl=19; //程序初始化赋值,正常模式uchar ew1=60,sn1=40,ewl1=19,snl1=19;//用于存放修改值的变量uchar code table[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //1~~~~9段选码uchar code s[8]= {0x28,0x48,0x18,0x48,0x82,0x84,0x81,0x84}; //交通信号灯控制代码/**********************延时子程序************************/void delay(uchar a){ uchar i; i=a; while(i--) {;}}/*****************显示子函数**************************/void display(void){ char h,l; h=time_ew/10; l=time_ew%10; p0=table[l]; ew_led2=1; delay(2); ew_led2=0; p0=table[h]; ew_led1=1; delay(2); ew_led1=0; h=time_sn/10; l=time_sn%10; p0=table[l]; sn_led2=1; delay(2); sn_led2=0; p0=table[h]; sn_led1=1; delay(2); sn_led1=0; h= ew1/10; l= ew1%10; p0=table[l]; time_show_led1=1; delay(2); time_show_led1=0; p0=table[h]; time_show_led2=1; delay(2); time_show_led2=0;}/**********************外部0中断服务程序************************/void exint0(void)interrupt 0 using 1{ ex0=0; //关中断 if(add_button==0) //时间加 { ew1+=5; sn1+=5; if(ew1 >=100) { ew1=99; sn1=79; } } if(reduces_button==0) //时间减 { ew1-=5; sn1-=5; if(ew1=5) { p1=s[0]; //sn通行,ew红灯 display(); } /*******s1状态**********/ p1=0x00; while(time_sn >=0) { flag_sn_yellow=1; //sn开黄灯信号位 ew_red=1; //sn黄灯亮,等待左拐信号,ew红灯 display(); } /*******s2状态**********/ flag_sn_yellow=0; //sn关黄灯显示信号 time_sn=snl; while(time_sn >=5) { p1=s[2];//sn左拐绿灯亮,ew红灯 display(); } /*******s3状态**********/ p1=0x00; while(time_sn >=0) { flag_sn_yellow=1; //sn开黄灯信号位 ew_red=1; //sn黄灯亮,等待停止信号,ew红灯 display(); } /***********赋值**********/ ew=ew1; sn=sn1; ewl=ewl1; snl=snl1; /*******s4状态**********/ ew_mangreen=~ew_mangreen;//ew人行道通行 sn_mangreen=~sn_mangreen;//sn人行道禁止 flag_sn_yellow=0; //sn关黄灯显示信号 time_ew=sn; time_sn=ew; while(time_ew >=5) { p1=s[4]; //ew通行,sn红灯 display(); } /*******s5状态**********/ p1=0x00; while(time_ew >=0) { flag_ew_yellow=1;//ew开黄灯信号位 sn_red=1;//ew黄灯亮,等待左拐信号,sn红灯 display(); } /*******s6状态**********/ flag_ew_yellow=0; //ew关黄灯显示信号 time_ew=ewl; while(time_ew >=5) { p1=s[6];//ew左拐绿灯亮,sn红灯 display(); } /*******s7状态**********/ p1=0x00; while(time_ew >=0) { flag_ew_yellow=1; //en开黄灯信号位 sn_red=1;//ew黄灯亮,等待停止信号,sn红灯 display(); } /***********赋值**********/ ew=ew1; sn=sn1; ewl=ewl1; snl=snl1; }}
浅析电机线圈的线径和匝数
可充电电池—在它消失之前捕获自由基分子
中兴通讯利用5G小基站开启乘风破浪模式
电动汽车充电方式的变革
FPGA系统中的安全性相比处理器有区别吗
分享一个51单片机交通信号灯仿真电路图
压控振荡器的调频原理介绍
无线电管理收费规定
360度全面了解熔纤盘介绍
浅谈中国车用LED市场及行业状况
六种常用的机器人浅析
全球5G竞争将进入新一轮的竞争赛道
一文解读电感饱和原因与理论分析
反相开关稳压器在SOT-23中提供高电流/低噪声输出
Vox Power Ltd全系列用户可配置电源通过Digi-Key面向全球发售
TIF报告称:美国人工智能遥遥领先 中国多个重要领域缩短与其差距
雷军为了小米6也是拼了!各种渲染图各种忽悠、炒作?
高清影碟机产业联盟 DVD进互联网时代
OpenAI API功能升级:ChatGPT支持描述函数调用
如何进行别墅智能化设计