當前位置:首頁 » 編程語言 » led動態顯示c語言

led動態顯示c語言

發布時間: 2022-08-24 15:08:44

1. 四位一體共陽級數碼管動態顯示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;

}
}
}
}

2. 點亮一個LED的C語言程序,

//請依照你的硬體輸入相對值#defineKEY_ACTIVE_LEVEL(請輸入)#defineKEY1_PIN(請輸入)#defineKEY2_PIN(請輸入)#defineLED_ON_LEVEL(請輸入)#defineLED_LOW_LEVEL(請輸入)#defineLED_PIN(請輸入)unsignedcharis_key1_press(void){reutrn(KEY1_PIN==KEY_ACTIVE_LEVEL)l}unsignedcharis_key2_press(void){reutrn(KEY2_PIN==KEY_ACTIVE_LEVEL)l}voidset_led_to(unsignedcharvalue){LED_PIN=value;}voidmain(void){while(1){if(is_key1_press()&&is_key2_press()){set_led_to(LED_ON_LEVEL);}else{set_led_to(LED_OFF_LEVEL);}}}

3. 在開發板上有4個LED顯示器,請設計一個流動點亮LED的c語言程序,間隔時間1秒

voidset_led(intn,intstatus)
{
//TODO,boardspecific
}
voidwait_second(intn)
{
//TODO,boardspecific
}
intmain()
{
inti,lastLED;
for(i=0;i<4;i++)
set_led(i,0);
lastLED=0;
while(1){
for(i=0;i<4;i++){
set_led(lastLED,0);
set_led(i,1);
lastLED=i;
wait_second(1);
}
}
}

4. 用C語言編寫一個單片機控制LED燈閃爍變化的編程 急用!!!!!!!!!

C語言實現LED燈閃爍控制配套51單片機開發板。

#include //包含單片機寄存器的頭文件

/****************************************
函數功能:延時一段時間

*****************************************/

void delay(void) //兩個void意思分別為無需返回值,沒有參數傳遞。

{

unsigned int i; //定義無符號整數,最大取值范圍65535。

for(i=0;i<20000;i++) //做20000次空循環。

; //什麼也不做,等待一個機器周期。

}

/*******************************************************

函數功能:主函數 (C語言規定必須有也只能有1個主函數)。

********************************************************/
void main(void)

{

while(1) //無限循環。

{

P0=0xfe; //P1=1111 1110B, P0.0輸出低電平。

delay(); //延時一段時間。

P0=0xff; //P1=1111 1111B, P0.0輸出高電平。

delay(); //延時一段時間。

}

}

單片機驅動LED燈的源程序:

#include<reg52.h> //頭文件。

#define uint unsigned int

#define uchar unsigned char

sbit LED1=P1^7; //位定義。

void delay_ms(uint);//mS級帶參數延時函數。

void main()

{

while(1)

{

LED1=0;

delay_ms(1000);

LED1=1;

delay_ms(1000);

}

}

void delay_ms(uint z) //延時子程序

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

(4)led動態顯示c語言擴展閱讀:

單片機應用分類:

通用型:

這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。

匯流排型:

這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。

另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。

控制型:

這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。

通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。

參考資料來源:網路-單片機



5. 單片機led顯示程序C語言的

該程序的原理是動態掃描,即每一時刻,只讓一個數碼管亮。讓數碼管從第一個到地第八個依次快速地顯示,給人的視覺效果就是八個數碼管同時顯示。

/*程序讓八個數碼管顯示數字0-7。*/

#include<reg52.h>
#include<intrins.h>包含對_crol_()函數的聲明的頭文件。
#define uchar unsigned char宏定義用以簡寫unsigned char
#define uint unsigned int

uchar temp,i;定義無字元型全局變數temp,i。

void delay(unsigned int z)//延時程序,大概延時1ms。
{
unsigned int x ,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07};//數碼管真值數組,分別為0到7.

void main()
{
while(1)//大循環,讓顯示的狀態保持
{
temp=0xfe;
for(i=0;i<8;i++)
{
P3=temp;讓第一個數碼管顯示
P1=table[i];調用數組
temp=_crol_(temp,1); 每執行一條這個語句,temp的值左移一位
delay(4); 延時(4這個參數不知道管不管用,你實際操作的時候自己改一下)
}
i=0;
}
}

6. 用C語言怎麼編寫7段LED的顯示程序

C語言寫LED數碼管顯示程序與匯編是一致的,將顯示的基本內容定義在一個數組中就可以了,比如:

#include<reg51.h>

#define uchar unsigned char

uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};

sbit rstkey=P2^2;

sbit speaker=P2^0;

void delay()//延時約400毫秒

{

uchar i,j;

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

for(j=0;j<250;j++);

}

main()

{

uchar i,key;

P2=0xff;

while(1)

{

i=0;

P1=table[i];

while(1)

{

key=P3;

if(key!=0)break;

}

switch(key)

{

case 0x01:i=1;break;

case 0x02:i=2;break;

case 0x04:i=3;break;

case 0x08:i=4;break;

case 0x10:i=5;break;

case 0x20:i=6;break;

case 0x40:i=7;break;

case 0x80:i=8;break;

default:break;

}

P1=table[i];//顯示按下搶答器的號

P0=key;//顯示按下鍵號的LED

while(1)

{

if(rstkey==0)break;//主持人按下復位鍵則重新開始

speaker=~speaker;//否則蜂鳴器報警

delay();

}

}

}

7. 寫出單片機LED閃爍的C語言控製程序,並說明程序的含義

C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%~20%。因此,C語言可以編寫系統軟體。[2]
當前階段,在編程領域中,C語言的運用非常之多,它兼顧了高級語言和匯編語言的優點,相較於其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。同時,C語言的普適較強,在許多計算機操作系統中都能夠得到適用,且效率顯著。[3]
馮.諾依曼在1945年提出了現代計算機的若干思想,被後人稱為馮.諾依曼思想,這是計算機發展史上的里程碑。自1945 年至今大多採用其結構,因此馮.諾依曼被稱為計算機之父。他的體系結構計算機由運算器、控制器、存儲器、輸入設備、輸出設備五大部件構成。 C語言擁有一套完整的理論體系經過了漫長的發展歷史,在編程語言中具有舉足輕重的地位。[4]
發展歷史
C語言誕生於美國的貝爾實驗室,由D.M.Ritchie以B語言為基礎發展而來,在它的主體設計完成後,Thompson和Ritchie用它完全重寫了UNIX,且隨著UNIX的發展,c語言也得到了不斷的完善。為了利於C語言的全面推廣,許多專家學者和硬體廠商聯合組成了C語言標准委員會,並在之後的1989年,誕生了第一個完備的C標准,簡稱「C89」,也就是「ANSI c」,截至2020年,最新的C語言標准為2017年發布的 「C17」。[5]
C語言之所以命名為C,是因為C語言源自Ken Thompson發明的B語言,而B語言則源自BCPL語言。

8. 基於LED顯示屏設計C語言編程

本設計是在51單片機與PC機上實現基於RS232串列通訊功能的,制定和實現可靠的上下位機通訊協議,完成顯示數據的下傳和讀取,圖形和文字有靜止、移入移出等多種顯示方式是本設計的最大特點。第二章 系統組成與工作原理2.1系統設計要求和技術指標 此次設計的系統將由五部分(主要分為上位機部分和下位機部分,其中下位機主要分成,顯示信息存儲器﹑LED顯示屏行驅動電路和LED點陣顯示屏)組成來實現,分別為:上位PC機﹑串列電平轉換器﹑顯示信息存儲器﹑LED顯示屏行驅動電路和LED點陣顯示屏。控制系統的結構框圖如圖2.1所示。設計要求系統能控制中文LED漢字顯示,主控板採用以單片機為核心的單片機系統。MCS-51單片機具有擴展性強﹑功能強盛﹑價格較低等長處,因此,採用Atmel公司的AT89C52單片機。採用MAX232作為RS-232與TTL電平的轉換器件。PC機發送到下位機的數據先由SBUF(數據緩沖區)接收,再存入EEPROM器件AT24C256中。漢字點陣顯示屏可分為屏體和控制器兩部分。屏體的主要部分是LED點陣屏,還有行列驅動電路。LED點陣顯示屏採用8*8LED顯示模塊拼接而成。控制電路負責有序地選通各行,選通每一行之前還要把該行該列的數據預備好,一旦該行選通,這一行上的LED發光器件就可以根據列數據進行顯示。從理論上講,不論顯示圖形還是文字,只要控制這些組成圖形或文字的各個點所在位置相應的LED器件發光,就可以得到想要的顯示結果,這種同時控制各個發光點亮滅的方法稱為靜態驅動顯示方式。16*16點陣共有256個發光二極體,顯然單片機沒有這么多的埠,假如採用鎖存器來擴展埠,按8位的鎖存器來計算,16*16的點陣需要256/8=32個鎖存器。這個數字很大,因為這里僅僅是16*16的點陣,但是在實際應用中的顯示屏往往要大的多,這樣在鎖存器上花的成本也就將是一個很大的數字。因此,在實際應用中的顯示屏幾乎都不採用靜態驅動顯示方式之中設計,而是採用另一種稱為動態掃描的顯示方式。所謂動態掃描,簡朴地說就是逐行輪流點亮,這樣掃描驅動電路就可以實現多行同名列共用一套列驅動器。以本次設計的16*16點陣為例,把所有的同一行發光管的陽極連在一起,把所有同一列發光管的陰極連在一起(共陽極接法),先發送出對應第一行發光管亮滅的數據並鎖存,然後選通第一行使其點亮一定的時間,然後熄滅;再發送出第二行的數據並鎖存,然後選通第二行使其點亮一定的時間,然後熄滅;……第十六行之後又重新點亮第一行,這樣反復輪回。當這樣輪回的速度足夠快時(每秒24次以上),由於人眼的視覺暫留現象,就能看到顯示屏上穩定的圖形。採用串列傳輸方案,控制電路可以只用一根信號線,將列數據一位一位傳往列驅動器,在硬體方面,這無疑是十分經濟的。但是,串列傳輸過程較長,數據按順序一位一位地輸出給列驅動器,只有一行的各列數據都已傳輸到位之後,這一行的各列才能並行地進行顯示。這樣,對於一行的顯示過程就可以分解成列數據准備(傳輸)和列數據顯示兩部分。對於串列傳輸方式來說,列數據准備時間可能相稱長,在行掃描周期確定的情況下,留給行顯示的時間就太少了,以至影響LED的亮度。為解決串列傳輸中列數據准備與列數據顯示的時間矛盾問題,可以採用重疊處理的方法,即在顯示本行各列數據的同時,傳送下一行的列數據。為達到重疊處理的目的,列數據的顯示就需要具有鎖存功能。經過上述的分析,可以歸納出列驅動器電路應具備的主要功能。對於列數據准備來說,它應能實現串入並出的移位功能;對於列數據顯示來說,應具有並行鎖存的功能。這樣,本行已准備好的數據送入並行鎖存器進行顯示時,串並移位寄存器就可以准備下一行的列數據,而會不影響本行的顯示。該顯示屏系統的原理框圖如圖2.1所示。
</SPAN></SPAN></SPAN></SPAN>

9. led數碼管動態顯示00-99。的c語言程序怎麼寫

用p口與led連接,將p口輸出不同的電平,顯示出數字,然後把這些不同的電平組指令寫成驅動,然後自己就可以編程調用驅動。

熱點內容
雲隙伺服器下載 發布:2024-05-19 04:33:22 瀏覽:312
德國C語言 發布:2024-05-19 04:13:40 瀏覽:959
音頻管理器沒有文件夾 發布:2024-05-19 04:13:36 瀏覽:666
qq郵箱埠993伺服器怎麼填 發布:2024-05-19 04:07:05 瀏覽:202
javaapi框架 發布:2024-05-19 04:06:59 瀏覽:359
與存儲結構無關的術語 發布:2024-05-19 04:05:41 瀏覽:499
編譯路由器固件選擇 發布:2024-05-19 03:56:28 瀏覽:39
手機f加密 發布:2024-05-19 03:28:47 瀏覽:225
用什麼密碼寫日記 發布:2024-05-19 03:27:57 瀏覽:303
資料庫access2003 發布:2024-05-19 02:49:39 瀏覽:620