单片机交通灯灯c语言程序,51单片机用C语言实现交通灯(红绿灯)源程序
51单片机用C语言实现交通灯(红绿灯)源程序
2009-10-29 23:00
交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改。
源程序如下:
/*
1、程序目的:使用定时器学习 倒计时 红绿灯原理 主要程序和倒计时一样
2、硬件要求:数码管、晶振12M
*/
#include bit red,green,yellow,turnred; //定义红、黄、绿及转红标志
code unsigned char tab[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//共阴数码管 0-9
unsigned char Dis_Shiwei;//定义十位
unsigned char Dis_Gewei; //定义个位
void delay(unsigned int cnt) //用于动态扫描数码管的延时程序
{
while(--cnt);
}
main()
{
TMOD |=0x01;//定时器设置 10ms in 12M crystal定时器0,工作方式1,16位定时器
TH0=0xd8; //65535-10000=55535=D8F0(十六进制)
TL0=0xf0;
IE= 0x82; //中断控制,EA=1开总中断,ET0=1:定时器0中断允许
TR0=1; //开定时器0中断
P1=0xfc;//红灯亮,根据红黄绿接灯的顺序。
red =1;
while(1)
{
P0=Dis_Shiwei;//显示十位,这里实现用8位数码管,即左1位
P2=0;
delay(300);//短暂延时
P0=Dis_Gewei; //显示个位,左数,2位
P2=1;
delay(300);
}
}
/********************************/
/* 定时中断 */
/********************************/
void tim(void) interrupt 1 using 1
{
static unsigned char second=60,count; //初值60
TH0=0xd8;//重新赋值,10毫秒定时
TL0=0xf0;
count++;
if (count==100)
{
count=0;
second--;//秒减1
if(second==0)
{ //这里添加定时到0的代码 ,可以是灯电路,继电器吸合等,或者执行一个程序
if(red) //红灭,先转黄
{
red=0;yellow=1;
second=4;
P1=0xF3;//黄灯亮4秒,黄灯为过渡灯,再根据情况转绿或转红
}
else if(yellow && !turnred)
{
yellow=0;green=1;
second=25;
P1=0xCF;//绿灯亮25秒,
}
else if(green)
{
yellow=1;green=0;
second=4;
P1=0xF3;//黄灯亮4秒
turnred=1;
}
else if(yellow && turnred) //绿灯灭,转黄灯,后红灯,turnred=1时
{
red=1;yellow=0;
P1=0xFC;//红灯亮60秒
second=60;
turnred=0; //接下来是转黄,绿。
}
}
Dis_Shiwei=tab[second/10];//十位显示值处理
Dis_Gewei=tab[second%10]; //个位显示处理
单片机交通灯灯c语言程序,51单片机用C语言实现交通灯(红绿灯)源程序相关推荐
- 8255A红绿灯c语言程序,51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序).doc...
51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序) 51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序)2010-04-21 22:0 ...
- 单片机交通灯数码管c语言程序,51单片机C语言实现交通灯(红绿灯)源程序.doc
51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改. 源程序如下: /*1.程序目的:使用定 ...
- 单灯闪烁c语言程序,51单片机,C语言编程,控制指示灯闪烁的频率
c51单片机,c语言编程,关于指示灯定时闪烁的. P1.0 P1.1 P1.2 P1.3上面各接有一个指示灯,P2.0接一个外接按键. 要求: 按一下按键P1.0以1Hz的频率闪烁 半周期为500ms ...
- 洗衣机洗涤部分c语言程序,51单片机洗衣机控制板及C语言程序
51单片机洗衣机控制板及C语言程序,该控制板单片机采用AT89C51单片机,所设计全自动洗衣机功能有:标准洗衣.经济洗衣.单独洗衣以及排水四种洗衣等四种方式,有强洗.弱洗及运行/暂停.显示及报警功能, ...
- 计数显示器c语言程序,51单片机计数显示器Proteus仿真程序
一.设计要求及目的 [实验目的] 熟悉51单片机的基本输入/输出应用,掌握Proteus ISIS模块的原理图绘图方法及单片机系统仿真运行方法. [实验内容] (1)观察Proteus ISIS模块的 ...
- 水下超声波测距c语言程序,51单片机超声波测距C程序
51单片机超声波测距C程序 (2010-01-26 14:09:10) 电子工程师电子资料大学校园 超声波检测原理 超声波测距的程序流程图 程序如下: //超声波模块程序 #include #defi ...
- 51单片机蜂鸣器演奏《小苹果》C语言程序,51单片机C语言蜂鸣器发声生日快乐播放程序...
<51单片机C语言蜂鸣器发声生日快乐播放程序>由会员分享,可在线阅读,更多相关<51单片机C语言蜂鸣器发声生日快乐播放程序(4页珍藏版)>请在人人文库网上搜索. 1.按键发音/ ...
- 单片机汉字点阵c语言程序,51单片机C语言多种点阵屏驱动程序(开发软件为keil C...
51单片机C语言多种点阵屏驱动程序(开发软件为keil C 2016-08-23 1 0 0 暂无评分 其他 1 积分下载 如何获取积分? 51单片机C语言多种点阵屏驱动程序(开发软件为keil C ...
- 超声波c语言程序,51单片机超声波模块的C语言程序.doc
51单片机超声波模块的C语言程序.doc 超声波模块程序 超声波模块程序 Trig P20 Echo P32 include define uchar unsigned char define uin ...
最新文章
- Oracle SQL高级编程——分析函数(窗口函数)全面讲解
- node开发环境(mac)和线上环境(linux)搭建
- 在linux系统中安装VSCode(Visual Studio Code)
- MySQL查询时构建自增ID
- php中的 server 2008,window_Windows Server 2008开发指南解析, Windows Server 2008开发指南中 - phpStudy...
- RPN Calculator for mac(RPN计算器)
- 重磅干货!揭秘波士顿动力背后的专利技术
- 2022-07-12
- linux操作系统和ucos操作系统,嵌入式操作系统ucos与linux比较
- 淘宝API签名异常,如何正确计算SIGN参数?(error code:25 Invalid Signature)
- 烧写ARM板----MYS-6ULX
- webpack4.0 css压缩js压缩 css 样式添加前缀
- 值得关注的5款“企业级低代码开发平台”推荐
- php后台登录,简单的PHP数据后台实现用户登录,php后台用户登录
- docker(5、网络2) 1、容器间通信的三种方式 2、 容器如何访问外部 3、 外部如何访问容器
- 电压有效值电容和电感的电压电流相位关系以及电抗和容抗值推导
- JavaScript里面的“类”
- 从支付宝「蜻蜓」布局看线下支付场景的想象空间...
- MyEclipse个性设置
- 苹果平替笔哪个牌子好?苹果平替笔推荐