在c51单片机的显示管上显示四个数字的c语言程序怎么写

供稿:hz-xin.com     日期:2025-01-13
51单片机四位数码管,显示学号1308010123,求C语言程序怎么写

用数组,显示的时候让数字流动就行

#include
#define uchar unsigned char
uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; //0到9
uchar num;
uchar led[]={0,4,1,2};
void t0isr() interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
switch(num)
{
case 0:P2=0x01;break;
case 1:P2=0x02;break;
case 2:P2=0x04;break;
case 3:P2=0x08;break;
default:break;
}
P0=~tab[led[num]];
num++;
num&=0x03;
}
main()
{
TMOD=0x11;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}

sbit dula=P2^6;//段锁存器锁存湍
sbit wela=P2^7;;//位锁存器锁存湍
char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void display(shiwan_c,wan_c,qian_c,bai_c,shi_c,ge_c)//6位显示子程序
{
P0=table[shiwan_c]; //显示十万位
dula=1;
dula=0;
P0=0xfe;
wela=1;
wela=0;
delay(2);
P0=table[wan_c]; //显示万位
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
delay(2);
P0=table[qian_c]; //显示千位
dula=1;
dula=0;
P0=0xfb;
wela=1;
wela=0;
delay(2);

P0=table[bai_c]; //显示百位
dula=1;
dula=0;
P0=0xf7;
wela=1;
wela=0;
delay(2);
P0=table[shi_c]; //显示十位
dula=1;
dula=0;
P0=0xef;
wela=1;
wela=0;
delay(2);
P0=table[ge_c]; //显示个位
dula=1;
dula=0;
P0=0xdf;
wela=1;
wela=0;
delay(2);
P0=0xff; //显示完毕后关闭最后一位显示
wela=1;
wela=0;
}
以上程序需放在循环程序中,数码管需反复显示
如果其中两位不需显示,可赋值为16

在c51单片机的显示管上显示四个数字的c语言程序怎么写
void display(shiwan_c,wan_c,qian_c,bai_c,shi_c,ge_c)\/\/6位显示子程序 { P0=table[shiwan_c]; \/\/显示十万位 dula=1;dula=0;P0=0xfe;wela=1;wela=0;delay(2);P0=table[wan_c]; \/\/显示万位 dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay(2);P0=table[qian_c]; \/\/...

C51单片机如何让四位数码管分别显示四位不同的数字?
每一次只能让一个数码管位选,其他的关闭,给数码管赋值。重复4次就可以了。假设要显示“1234”:include<reg52.h> sbit k1 = P1^1;sbit k2 = P1^2;sbit k3 = P1^3;sbit k4 = P1^4;\/\/k1-k4 4个位选开关,我假设你的电路是低电平有效 uchar code table[]={0xc0,0xf9,0xa4,0xb0,...

用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器...
用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。用proteus做的时钟 可以显示年月日时分秒 可调整时间 有图 \/ includereg52.h

c51单片机数码管显示0到99
总的来说,使用C51单片机控制数码管显示0到99的数值是一个相对简单的任务,但它确实需要对单片机的I\/O端口、数码管的工作原理以及适当的编程技术有一定的了解。

c51编写一个四位数码管,共阴
上述代码实现了在8位数码管上依次显示“12345678”。这里需要注意,数码管采用共阴极连接方式,因此段码和位选控制需根据具体硬件电路进行调整。在具体实现过程中,段码数组中的每一位代表一个数码管段的点亮状态。例如,0x3F表示数码管显示数字“0”,其中每一位对应一个段,从高位到低位依次为a, b, ...

用c51单片机按下4*4矩阵按键,数码管显示0-F,能正常显示,只是0号和7...
sbit H1=P0^4; \/\/高四位分别对应P04-P07 sbit H2=P0^5;sbit H3=P0^6;sbit H4=P0^7;void main(){ P2=0x00; \/\/关数码管,数码管不显示 while(1){ P0=0xfe;if(H1==0){P2=0x3f;} \/\/按键盘S1,显示"0"if(H2==0){P2=0x06;} \/\/按键盘S2,显示"1"if(H3==0){P2=0x5b...

C51单片机,C语言编程四位共阳极数码管静态显示1234 求程序和proteus仿真...
用51单片机组成四位共阳极数码管显示1234 ,proteus仿真图如下所示,P0口输出段码,P2口输出位码。

C51单片机:用数码管显示0到999的值。求c语言程序和原理图
int key1,key,disbuf;\/\/ 此表为 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e f unsigned char code LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};unsigned char ledx[8];bit s0,s1;void delay(uchar z...

c51 实验板 编写8个按键控制程序,按下8个键,在数码管上分别显示1-8
在编写一个使用C51单片机的实验板来控制数码管显示8个按键对应数字的程序时,可以采用多种方法。这里提供两种简洁的代码实现。第一种方法涉及使用按键扫描函数来检测按键状态,并根据按键值更新数码管显示。第二种方法则通过简化逻辑,使用位移操作来确定按键值。第一种方法的代码如下:include define uchar ...

求救:c51单片机按键每按一次同时数码管显示数字加一
int Shuzu[]={---};如果会用指针 int *P;P=Shuzu; \/\/指针指向数组!用外部中断,每中断一次,中断服务程序将数组元素加一P0=Shuzu[ax++](或指针加一:P0=*P++)以上假设P0口驱动数码管!至于数码管使用的是共阳还是共阴,就把相对的数值存在数组中!- 外部中断0的中断程序入口 void ...