原创 单片机实验版数码管显示0——1000

2009-3-28 21:45 3556 6 9 分类: MCU/ 嵌入式

#include<reg52.h>


sbit   led1=P2^0;


sbit   led2=P2^1;


sbit   led3=P2^2;


sbit   led4=P2^3;


void  display(unsigned     int,unsigned    int,unsigned    int,unsigned    int);


void  delayms(unsigned   int    x);


unsigned   int    qian,bai,shi,ge,num,num1;


unsigned   char code       table[]={


0xc0,0xf9,0xa4,0xb0,0x99,0x92,


0x82,0xf8,0x80,0x90,0x88,0x83,


0xc6,0xa1,0x86,0x8e,0x00


};//共阳级字符表


void  main()


{


TMOD=0x11;


TH0=(65536-50000)/256;


TL0=(65536-50000)%256;


EA=1;//开总中断


ET0=1;//开定时器0中断


TR0=1;//启动定时器0


while(1)


{


        display(qian,bai,shi,ge);


}


}


void  delayms(unsigned   int    x)//延时程序


{


unsigned  i,j;


for(i=x;i>0;i--)


        for(j=110;j>0;j--);


}


void  display(unsigned     int qian,unsigned    int bai,unsigned      int    shi,unsigned    int    ge)


{


led4=1;


led3=1;


led2=1;


led1=0;


P0=table[qian];


delayms(3);


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


led4=1;


led3=1;


led2=0;


led1=1;


P0=table[bai];


delayms(3);



led4=1;


led3=0;


led2=1;


led1=1;


P0=table[shi];


delayms(3);


 



led4=0;


led3=1;


led2=1;


led1=1;


P0=table[ge];


delayms(3);


}//显示子程序


void  T_time()  interrupt  1


{


TH0=(65536-50000)/256;


TL0=(65536-50000)%256;


num1++;//定时计数器加1


if(num1==20)


{


        num1=0;//定时计数器加20次即1S,清零


        num++;//1S后加1


        if(num==1000)//显示到1000的子程序


               num=0;


               qian=num/1000;


               bai=num%1000/100;


               shi=num%1000%100/10;


               ge=num%10;


}


以上两程序都要将数字分离。这里注意一点,因为显示的是4位数,所以定义变量的时候不能用unsigned  char,要用unsigned   int。因为unsigned char表示的范围是0~255

循环到255的时候就会清零,溢出,不会继续显示下去。
PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户197418 2009-3-31 18:12

晕死,发EMAIL不能上传附件。不好意思

用户197418 2009-3-31 18:08

哦,有原理图,已经发了

用户199415 2009-3-29 22:33

有电路图吗?我是菜鸟学习下,请发到asdfqkg@yahoo.com.cn谢谢!
相关推荐阅读
用户197418 2010-04-06 22:06
自己在工作中总结的BGA封装焊接技术
自己总结的,有兴趣的看看吧,呵呵...
用户197418 2009-03-28 21:47
3×3矩阵键盘,分别让按键控制LED显示0~8
#include<reg52.h>sbit   led1=P2^0;sbit   led2=P2^1;sbit   led3=P2^2;sbit   led4=P2^3;void  del...
用户197418 2009-03-14 20:27
BGA焊接技术
BGA  Ball Grid Array Package 球栅阵列封装 广泛应用于集成电路的封装如FPGA/CPLD 主板南北桥,手机芯片,它的焊接是否良好,直接关系到所做产片的可靠性和寿命,我焊接由...
EE直播间
更多
我要评论
3
6
关闭 站长推荐上一条 /3 下一条