• 大小: 176KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: 其他
  • 标签: 交通灯  数码管  

资源简介

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个文件信息

评论

共有 条评论