当前位置:首页 » 编程语言 » 数码管动态显示c语言

数码管动态显示c语言

发布时间: 2025-04-10 05:39:55

① 如何用c语言实现数码管显示数字12345和HELLO

看一下我编的123456 的显示,是共阴极数码管接P1口 ,用了两个74HC573锁存器段选位选,HELLO的编码表 你自己编一下,然后定义一个数组就可以了。我也刚学 ,加油!
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit la=P2^6;
sbit wela=P2^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar code tablewe[]={
0xfe,0xfd,0xfb,
0xf7,0xef,0xdf};
delay(uchar);
uchar a;
void main()
{
while(1)
{
for(a=6;a>0;a--)
{
wela=1;
P0=tablewe[6-a];
wela=0;

la=1;
P0=table[a];
la=0;
delay(1);
P0=0xff;

}
}
}

delay(uchar xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}

② 四位一体共阳级数码管动态显示c语言编程

//满意请采纳
//这是一个四位数码管动态显示c语言程序,每隔一秒加一,直至加到9999为止
//使用时需采用锁存器
#include<reg52.h>
#include"stdio.h"
unsignedcharcodeLED[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsignedcharLEDbuff[]={0xff,0xff,0xff,0xff};
//定义数码管的位选段
sbitSEG_bit_1=P0^1;
sbitSEG_bit_2=P0^2;
sbitSEG_bit_3=P0^3;
sbitSEG_bit_4=P0^4;

unsignedintcnt=0;
unsignedintsec=0;
unsignedintmini=0;
unsignedinthour=0;
unsignedchari=0;
/*voiddelay(unsignedintz)
{
unsignedintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
*/
voidinterrupttimer0()interrupt1/*设置中断函数*/
{
TH0=0xfc;
TL0=0x18;
cnt++;
//P1=0x80;
//delay(1);
switch(i)
{
case0:SEG_bit_1=0;SEG_bit_4=1;P1=LEDbuff[0];i++;break;
case1:SEG_bit_4=0;SEG_bit_3=1;P1=LEDbuff[1];i++;break;
case2:SEG_bit_3=0;SEG_bit_2=1;P1=LEDbuff[2]&;i++;break;
case3:SEG_bit_2=0;SEG_bit_1=1;P1=LEDbuff[3];i=0;break;
default:break;
}

}
/************************************************
voidserial_init()
{
//TMOD=0x20;//定时器T/C1工作方式2
SCON=0x50;//串口工作方式1,允许串口接收(SCON=0x40时禁止串口接收)
TH1=0xF3;//定时器初值高8位设置
TL1=0xF3;//定时器初值低8位设置
PCON=0x80;//波特率倍频(屏蔽本句波特率为2400)
TR1=1;//定时器启动
}
**********************************************/
voidmain()
{
//serial_init();//串口初始化

//TMOD=0x21;/*设置定时器*/
TMOD=0x01;
TH0=0xfc;
TL0=0x18;
TR0=1;

EA=1;/*设置中断*/
ET0=1;

while(1)
{
if(0==TF0)
{
if(cnt>=1000)
{
cnt=0;
sec++;
if(sec>=60){
sec=0;mini++;
if(mini>=60){
mini=0;hour++;
if(hour>=24)hour=0;
}
}

LEDbuff[0]=LED[sec%10];//*设置数码管显示位*/
LEDbuff[1]=LED[sec/10%10];
LEDbuff[2]=LED[mini%10];
LEDbuff[3]=LED[mini/10%10];
//TI=1;//使用printf函数前须先将发送标志位TI置1
//printf("%4d%x,%x%x ",sec,LEDbuff[0],LEDbuff[1],LEDbuff[2]);
//TI=0;

}
}
}
}

③ 如何用C语言编程控制数码管动态显示字符串

用仿真实现,采用6位一体的共阴数码管,P0口输出段码,P2口输出位码。仿真图如下:

程序如下

#include <reg51.h>

#include <intrins.h>

#define uint unsigned int

#define uchar unsigned char

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,//0~9段码

0x77,0x7c,0x39,0x5e,0x79,0x71,};//共阴数码管A~F段码表

uchar buf[]={0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};//显示字母

void delay()//延时子程序

{

uint j;

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

}

void display()//显示子程序

{

uchar i,litbit=0xfe;

for(i=0;i<6;i++)

{

P2=litbit;//输出位码

P0=table[buf[i]];//输出段码

litbit=_crol_(litbit,1);

delay();//延时

}

}

void main()

{

while(1)

{

display();

}

}

热点内容
scratch少儿编程课程 发布:2025-04-16 17:11:44 浏览:620
荣耀x10从哪里设置密码 发布:2025-04-16 17:11:43 浏览:350
java从入门到精通视频 发布:2025-04-16 17:11:43 浏览:64
php微信接口教程 发布:2025-04-16 17:07:30 浏览:290
android实现阴影 发布:2025-04-16 16:50:08 浏览:783
粉笔直播课缓存 发布:2025-04-16 16:31:21 浏览:335
机顶盒都有什么配置 发布:2025-04-16 16:24:37 浏览:198
编写手游反编译都需要学习什么 发布:2025-04-16 16:19:36 浏览:792
proteus编译文件位置 发布:2025-04-16 16:18:44 浏览:351
土压缩的本质 发布:2025-04-16 16:13:21 浏览:579