89C51单片机数码管,动态显示0到199怎么用C语言编程?

初学C语言,请尽可能简单,谢谢!

#include<reg51.h>
#define uchar unsigned char;
uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};  //0到f
uchar number,dat[3],nn=0,cnt=0;;
void t0isr() interrupt 1
{
    TH0=(65536-5000)/256;
    TL0=(65536-5000)%256;
    number++;
    number%=3;
    P2=0x01<<number;
    P0=distab[dat[number]];
    cnt++;
    if(cnt>99)
        {
        cnt=0;
        nn++;
        nn%=200;
        dat[0]=nn/100;
        dat[1]=(nn%100)/10;
        dat[2]=nn%10;
        }
}
main()
{
        TMOD=0x01;
        TH0=(65536-5000)/256;
        TL0=(65536-5000)%256;
        TR0=1;
        ET0=1;
        EA=1;
        while(1);
}
温馨提示:内容为网友见解,仅供参考
无其他回答

急求一个由89C51单片机的代码!要求用4*4矩阵键盘控制LED矩阵输出0~9的...
unsigned int b_count=0;\/*扫描次数*\/ void delayms(unsigned int i);unsigned int keyboar();unsigned int b;void t0()interrupt 1 using 1 \/*中断程序负责显示b的值 *\/ { unsigned char a1=0,a2=0,a3=0,a4=0;static int k=0;\/*数码管扫描显示*\/ a1=b\/1000;\/*取b的千位*\/ a2...

求用C语言编写一个单片机89C51电子时钟程序,有时,分,秒,还有电路图
\/\/根据选择调整相应项目void Set(uchar sel,uchar sel_1) { uchar address,time; uchar max,min; if(sel==1) {address=0x84; max=23;min=0;} \/\/小时 if(sel==2) {address=0x82; max=59;min=0;} \/\/分钟 if(sel==3) {address=0x88; max=12;min=1;} \/\/月 ...

单片机89c51一个6位LED数码管显示功能 程序,希望能准确点的程序,只显...
LedOut[7]=Disp_Tab[LedNumVal%10]; \/\/个位 for( i=0; i<9; i++){ P0 = LedOut[i];P1 = dispbit[i]; \/\/使用查表法进行位选 \/* switch(i) \/\/使用switch 语句控制位选 { case 0:P1 = 0x7F; break;case 1:P1 = 0xbF; break;case 2:P1 = 0xdF; break...

...要求89C51单片机实现4位7段数码管动态和静态显示,希望大神能给写个...
void display(char z[],uchar z1) \/\/“:“表示“-” \/***无 { if(z[0]-'0'<13) \/\/不能为小于等于0 { d1=0;P0=table[z[0]-'0'];if(z1==1)Dp=0;delay(1);d1=1;P0=0xff;} if(z[1]-'0'<13){d2=0;P0=table[z[1]-'0'];if(z1==2)Dp=0;delay...

急求基于单片机AT89C51的多功能数字电子钟的汇编程序,高手进!~_百度知...
用89C51控制3个HC595,前两个595接8段数码显示管,显示“0”~“9”每秒跳动一次.第3个HC595接8个LED灯,每隔1秒闪烁1次.include<at89x52.h> include<intrins.h> define uchar unsigned char define uint unsigned int uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90...

89c51对7SEG--MPX8--CA--BLUE动态扫描显示01234567的c语言程序 谢谢啦...
以共阳极驱动为例:include <reg51.h> define uchar unsigned char void delay1s(void);\/\/声明 uchar code ZIXING[]={ 0xc0.0xf9,0xa4,0xb0,0x99,0xa4,0x72,0xf7,0x80,0x90};\/\/0-9字形码 void main(void){ uchar buf[]={ 0,1,2,3,4,5,6,7};uchar code *ptr;ptr = ZIXING;...

数码管秒表 00-99计时 求电路图 和程序
EA=1;ET0=1;while(1){ ss=b\/10;sg=b%10;gs=a\/10;gg=a%10;P0=0;P0=table[gg];P2=0xfe;delay(5);P2=0xff;P0=table[gs];P2=0xfd;delay(5);P2=0xff;P0=0;P0=table[sg];P2=0xf7;delay(5);P2=0xff;P0=table[ss];P2=0xef;delay(5);P2=0xff;P0=0x40;P2=0xfb;dela...

89c51单片机的数字钟程序?
MOV P2,48H \/\/选择显示位(从左到右0-7) MOV A,@R0 \/\/获取该位的数码值 地址 MOV R1,A MOV A,@R1 \/\/获取该位码值 \/\/CPL A \/\/根据数码管是共阴、共阳 是否取反 MOV P0,A \/\/从P0输出每位的码值,注意:该端口时下面的“清屏”一起改 LCALL DELAY \/\/进入每位延时 MOV P0,#0FFH \/\/清屏 INC...

用89c51单片机 6个数码管循环显示HELLO的程序 及仿真电路图
void t0isr() interrupt 1\/\/秒计时 { TH0=0x3c;TL0=0xb0;time++;if(time>=20){ time=0;dischg();num++;num%=10;} } void t1isr() interrupt 3\/\/显示 { TH1=0xec;TL1=0x78;P2=0x01<<scanled;P0=disdat[scanled];scanled++;scanled%=6;} main(){ TMOD=0x11;TH0=0x3c;TL0...

stm 32用的c和89c51的c51有什么区别?
学习C51单片机的真正目地是,借助51单片机来学习C语言,通过51单片机以上实验把C语言32个关键字能灵活应用,结构体、数组、指针、宏定义、条件编译、都能在以上实验中灵活应用,那你C语言基本算掌握,很多初学者都说是从C51入门后,转向ARM,结果感觉ARM很难掌握,这说明他C语言没有学好,STM32是C语言的...

相似回答