资源简介
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个文件信息
相关资源
- 基于VHDL的交通灯设计EDA课程设计报告
- 压力测量系统
- 51单片机实现交通灯系统模拟
- 交通灯课程设计数电 proteus实现
- 基于24C02和LCD液晶显示的电子密码锁
- EWB课程设计——交通灯
- 基于VHDL语言的交通灯设计
- 红外遥控protuse仿真+keil程序
- 51单片机 的交通灯仿真与原理图
- 基于C51单片机的交通灯开发
- 交通灯控制电路设计数电课程设计 数
- 8255交通灯控制系统(倒计时显示,紧
- 16x16点阵文字屏幕protues仿真图
- 8255交通灯实验含详细注解
- 基于FPGA的交通灯控制器设计
- 51单片机宠物喂食器代码、仿真、电路
- FPGA 交通灯程序
- 基于C51的交通灯控制系统
- 交通灯设计VHDL程序代码
- 课设 交通灯
- EDA课程设计交通灯
- 数电课程设计交通灯
- 基于单片机的智能交通灯控制系统设
- protues 8086 8255 8253汇编仿真
- 交通灯 数字电子课程设计
- 微机原理:交通灯课程设计
- 24秒倒计时篮球计数器设计protues软件
- protues模拟红外发射接收
- 8字流动显示点阵Protues仿真图
- 在protues仿真的循迹小车
评论
共有 条评论