动态数码管

来源:互联网 发布:百度软件助手怎么样? 编辑:程序博客网 时间:2024/05/29 04:34

使用定时器使单片机以固定时间差增加数字

#include<reg52.h>#define uchar unsigned char  //注意uchar与unchar#define uint unsigned intsbit aa=P1^1;sbit bb=P1^2;sbit cc=P1^3;uchar temp=0;uchar count=0;uchar baiwei;  //定义变量最好定义成全局变量,血的教训。uchar shiwei;uchar gewei;uchar code NUM[]={0x3f,0x06,0x5b,0x4f,                    0x66,0x6d,0x7d,0x07,                    0x7f,0x6f};void init();  //函数声明void delay();void display(uchar a,uchar b,uchar c);void main(){   init();   while(1)   {     display(baiwei,shiwei,gewei);   }}void init(){    TMOD=0x01;    TH0=(65536-50000)/256;    TL0=(65536-50000)%256;    EA=1;    ET0=1;    TR0=1;}void inter() interrupt 1{    TH0=(65536-50000)/256;    TL0=(65536-50000)%256;    count++;    if(count==20)    {        count=0;        temp++;        if(temp==999)            temp=0;        baiwei=temp/100;        shiwei=temp%100/10;        gewei=temp%10;    }}void display(uchar a,uchar b,uchar c){    aa=0;bb=0;cc=0;    P0=NUM[a];    delay();  //不加延时函数根本看不清    aa=0;bb=0;cc=1;    P0=NUM[b];    delay();    aa=0;bb=1;cc=0;    P0=NUM[c];    delay();}void delay(){    uchar i,j;    for(i=0;i<100;i++)        for(j=0;j<10;j++)            ;}
原创粉丝点击