|
发表于 2013-1-20 09:22:46
|
显示全部楼层
本帖最后由 wangqh1983 于 2013-1-20 10:39 编辑
01 #include "reg51.h"
02
03 unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
04
05 unsigned char dat; //定义全局变量
06
07 //串行口初始化程序
08 void Init_Com(void)
09 {
10 TMOD = 0x20;
11 PCON = 0x00;
12 SCON = 0x50;
13 TH1 = 0xFd;
14 TL1 = 0xFd;
15 TR1 = 1;
16 }
17
18 //LED数码管延时程序
19 void delay(void)
20 {
21 int k;
22 for (k=0;k<600;k++);
23 }
24
25 //串行中断服务程序
26 serial()interrupt 4 using 1
27 {
28 if (RI)
29 RI = 0;
30 dat = SBUF;
31 }
32
33 //LED数码管显示程序
34 void display(int k)
35 {
36 P2 = 0x01; //位选
37 P0 = tab[k/1000]; //显示千位数字
38 delay(); //延时
39 P0=0xff; //消隐
40 P2=0x02; //位选
41 P0 = tab[k%1000/100]; //显示百位数字
42 delay(); //延时
43 P0=0xff;
44 P2 = 0x04; //位选
45 P0 = tab[k%100/10]; //显示十位数字
46 delay(); //延时
47 P0=0xff;
48 P2 = 0x08; //位选
49 P0 = tab[k%10]; //显示个位数字
50 delay(); //延时
51 P0=0xff;
52 }
53
54 //主程序
55 void main(void)
56 {
57 P2=0xff;
58 P0=0xff;
59 P1=0xff;
60 EA=1;
61 ES=1;
62 Init_Com();
63 while (1)
64 {
65 display(dat); //显示数据
66 }
67 }
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|