资源简介
mega16单片机实现交通灯protues仿真,12个LED,8个数码管显示时间。程序+原理图

代码片段和文件信息
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar moshi_flag=1;
#pragma data:code //数码管码值
const table[]={~0x3f~0x06~0x5b~0x4f~0x66~0x6d~0x7d ~0x07
~0x7f~0x6f~0x77~0x7c~0x39~0x5e~0x79~0x71};
void delay(uint ms)//延时函数
{
uint i;
while(--ms)
for(i=0;i<1154;i++);
}
void show(uchar j)//数码管显示单个管
{
PORTB|=BIT(0);
PORTA&=table[j];
PORTB&=~BIT(0);
PORTA|=0XFF;
PORTA&=BIT(j-1);
PORTB|=BIT(1);
PORTB&=~BIT(1);
PORTA|=0XFF;
delay(3);
}
void show_num(uint num)//数码管显示数字
{
uchar i;
for(i=0;i<5;i++)
{
switch (i){
case 0:showgundong(num/1000i);break;
case 1:showgundong(num%1000/100i);break;
case 2:showgundong(num%100/10i);break;
case 3:showgundong(num%10i);break;
}
}
}
void showgundong(uchar datuchar num)//数码管滚动显示
{
PORTB|=BIT(0);
PORTA&=table[dat];
PORTB&=~BIT(0);
PORTA|=0XFF;
PORTA&=BIT(num);
PORTB|=BIT(1);
PORTB&=~BIT(1);
PORTA|=0XFF;
delay(2);
}
uchar key_press()//按键函数
{
uchar i;
DDRD|=0XF0;
PORTD|=0XF0;
DDRD&=0X0F;
i=PIND;
i&=0xf0;
if(i==0xf0)
{
return 0;
}
else
{
return 1;
}
}
uchar key_scan()//检测按键
{
uchar key;
delay(10);
if(key_press())
{
key=PIND;
key&=0xf0;
switch(key)
{
case 0xb0:
key=1;
moshi_flag=1;
break;
case 0x70:
key=2;
moshi_flag=0;
break;
//default:key=16;
}
//while(key_press());
}
return key;
}
void main()//主函数
{
uint ijnumnum1=0count =0anjian;
DDRA=0XFF;//端口初始化
DDRB|=BIT(0);
DDRB|=BIT(1);
DDRD|=BIT(PD0);
PORTD|=BIT(PD0);
DDRC=0XFF;
PORTC=0XFF;
while(1)
{
anjian=key_scan();//
show_num(num);//数码管显示
delay(10);
count++;
if(count==50)//时间1s
{
count=0;
num1++;
}
if(moshi_flag==1)//白天模式
{
num = num1*100+num1;
if(num1>=0&&num1<=30)
{
if(num1>0&&num1<=26)
{
PORTC&=~BIT(0);//亮
PORTC|=BIT(1);//灭
PORTC|=BIT(2);
}
if(num1>26&&num1<=30)
{
PORTC|=BIT(0);
PORTC&=~BIT(1);
PORTC|=BIT(2);
}
PORTC&=~BIT(3);//亮
PORTC|=BIT(4);//灭
PORTC|=BIT(5);
}
if(num1>30&&num1<60)
{
PORTC|=BIT(0);
PORTC|=BIT(1);
PORTC&=~BIT(2);
if(num1>30&&num1<56)
{
PORTC|=BIT(3);
PORTC&=~BIT(5);
PORTC|=BIT(4);
}
if(num1>56&&num1<60)
{
PORTC|=BIT(3);
PORTC&=~BIT(4);
PORTC|=BIT(5);
}
if(num1==59)
num1=0;
}
}
if(moshi_flag==0)//夜间模式,黄灯闪烁
{
num=0;num1=0;
if(count>=0&&count<25)
{
PORTC|=BIT(0);
PORTC&=~BIT(1);
PORTC|=BIT(2);
PORTC|=BIT(3);
PORTC&=~BIT(4);
PORTC|=BIT(5);
}
else
{
PORTC|=BIT(1);
PORTC|=BIT(4);
}
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1 2011-10-01 20:23 程序\BACKUP\lesson2.c.111001202336
文件 116 2011-10-01 20:24 程序\BACKUP\lesson2.c.111001202452
文件 195 2011-10-01 20:26 程序\BACKUP\lesson2.c.111001202622
文件 240 2011-10-01 20:30 程序\BACKUP\lesson2.c.111001203052
文件 257 2011-10-01 20:32 程序\BACKUP\lesson2.c.111001203232
文件 271 2011-10-01 20:32 程序\BACKUP\lesson2.c.111001203240
文件 334 2011-10-01 20:38 程序\BACKUP\lesson2.c.111001203836
文件 334 2011-10-01 20:39 程序\BACKUP\lesson2.c.111001203952
文件 374 2011-10-01 20:41 程序\BACKUP\lesson2.c.111001204154
文件 374 2011-10-01 20:44 程序\BACKUP\lesson2.c.111001204440
文件 376 2011-10-01 20:44 程序\BACKUP\lesson2.c.111001204450
文件 379 2011-10-01 20:46 程序\BACKUP\lesson2.c.111001204618
文件 397 2011-10-01 20:47 程序\BACKUP\lesson2.c.111001204704
文件 394 2011-10-01 20:47 程序\BACKUP\lesson2.c.111001204752
文件 392 2011-10-01 20:48 程序\BACKUP\lesson2.c.111001204844
文件 392 2011-10-01 20:49 程序\BACKUP\lesson2.c.111001204910
文件 392 2011-10-01 20:50 程序\BACKUP\lesson2.c.111001205008
文件 392 2011-10-01 20:50 程序\BACKUP\lesson2.c.111001205016
文件 394 2011-10-01 20:51 程序\BACKUP\lesson2.c.111001205114
文件 394 2011-10-01 20:51 程序\BACKUP\lesson2.c.111001205144
文件 394 2011-10-01 20:52 程序\BACKUP\lesson2.c.111001205222
文件 392 2011-10-01 20:52 程序\BACKUP\lesson2.c.111001205228
文件 393 2011-10-01 20:53 程序\BACKUP\lesson2.c.111001205302
文件 544 2011-10-01 20:55 程序\BACKUP\lesson2.c.111001205514
文件 547 2011-10-01 20:55 程序\BACKUP\lesson2.c.111001205524
文件 548 2011-10-01 20:56 程序\BACKUP\lesson2.c.111001205622
文件 545 2011-10-01 20:56 程序\BACKUP\lesson2.c.111001205656
文件 547 2011-10-01 20:57 程序\BACKUP\lesson2.c.111001205708
文件 533 2011-10-01 20:57 程序\BACKUP\lesson2.c.111001205742
文件 420 2011-10-01 20:58 程序\BACKUP\lesson2.c.111001205826
............此处省略164个文件信息
相关资源
- 51单片机基于protues的几个仿真实例
- 步进电机protues仿真
- 毕业设计 单片机 对讲机 protues仿真
- 数据采集系统——ADC0808的应用,单片
- 基于proteus的单片机仿真--交通灯控制
- 基于单片机交通灯设计
- protues万年历仿真
- 基于VHDL的交通灯控制器设计
- 数字电压表(源程序 protues仿真)
- 数字电路课程设计—交通灯
- 基于51单片机的计算器(C51编写,有
- 8086交通灯 Proteus原理图及程序
- Quartus EDA交通灯控制电路的设计实训报
- 数据采集系统——ADC0808的应用
- 基于protues的信号发生器,protues详细教
- Quartusii十字交叉路口三色交通灯设计
- 微机原理 十字路口交通灯控制 prot
- 基于Verilog的交通灯设计EDA课程设计
- 数电交通灯 Multisim 13.0 仿真程序已验
- 基于51单片机的交通灯设计
- 交通灯原理图、PCB3d图、Solidworks外壳
- 基于AT89C51的十字路口交通灯设计pro
- 红绿灯protues仿真
- 交通灯模拟程序十字路口
- 十字路口交通灯设计
- 基于Multisim10的十字路口交通灯控制器
- 基于51单片机的智能十字路口交通灯系
- 十字路口交通灯.pdsprj
- 交通灯控制实验(计算机组成原理)
- 数电设计 交通灯控制逻辑电路设计
评论
共有 条评论