簡單的一個用定時器控制的流水燈c程式
用定時器以間隔500MS在6位數碼管上依次顯示0、1、2、3….C、D、E、F,重複。
#include<reg52.h>typedef unsigned int u8;
typedef unsigned char u16;
u8 code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
u8 code weixuan[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
sbit duan=P2^6;
sbit wei=P2^7;
u8 i=0,j=0;
void time0()
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
EA=1;
ET0=1;
TR0=1;
while(1);
} void main()
{
TMOD=0x01;
time0();
} void time1() interrupt 1
{
wei=0;
P0=weixuan[(i++)%16];
wei=1;
duan=0;
P0=table[(j++)%6];
duan=1;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
}