當前位置:首頁 » 編程語言 » 數碼管動態顯示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