资源简介

C语言版交通灯,用定时器和计数器实现。涉及到了联合定时,中断,外部扩展等知识,希望对大家学习有用!

资源截图

代码片段和文件信息

#include
#include
#define COM XBYTE[0xfff3]/*命令口地址*/
#define PA XBYTE[0xfff0]  /*端口A地址*/
#define PB XBYTE[0xfff1]   /*端口B地址*/
#define PC XBYTE[0xfff2]   /*端口C地址*/
unsigned char count;   
sbit P1_0=P1^0;
unsigned char table[]={0xc00xf90xa40xb00x99
0x920x820xf80x800x90};
void main()
{ do{
    P1_0=1;
COM=0x80;//8255中A.B.C均为输出口
TMOD=0xe9;/*T/C0工作在定时器方式1,
          T/C1工作在计数器方式2*/
    TH0=(65536-50000)/256;   //预置计数初值
    TL0=(65536-50000)%256;
      TH1=256-10;
TL1=256-10;
IP=0x82; //置优先级寄存器
EA=1;
ET0=1;  ET1=1;
TR0=1; TR1=1;
{count=60;
        PA=table[5];
PB=table[9]; 
PC=0xfb;}while(count+1);
{count=5;
PA=table[0];
PB=table[5];
PC=0xfd;
}while(count+1); 
{count=60;
PA=table[5];
PB=table[9];
PC=0xfe;}while(count+1);}
while(1);     
}
timer0() interrupt /*T/C0中断服务程序*/
{  P1_0=!P1_0; 
TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;  //定时50ms
}
timer1() interrupt 3
{
count--;
PA=table[count/10]; //十位显示
PB=table[count%10]; //个位显示
}  

 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件          31  2010-11-22 18:47  交通灯2.lnp
     文件        2823  2010-11-23 21:57  交通灯2.LST
     文件        4932  2010-11-22 18:47  交通灯2.M51
     文件         977  2010-11-22 19:31  交通灯2.Opt
     文件         294  2010-11-23 21:56  交通灯2.plg
     文件        2111  2010-11-22 18:59  交通灯2.Uv2
     文件         976  2010-11-22 18:59  交通灯2_Opt.Bak
     文件        2111  2010-11-22 18:04  交通灯2_Uv2.Bak
     文件      139161  2010-11-22 18:59  交通灯8255.DSN
     文件           0  2010-11-18 20:16  交通灯c
     文件        1158  2010-11-22 18:59  交通灯2.c
     文件        1017  2010-11-22 18:47  交通灯2.hex

评论

共有 条评论