『壹』 用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--);
}
(1)led編程擴展閱讀:
單片機應用分類:
通用型:
這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
匯流排型:
這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。
另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
控制型:
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。
通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
參考資料來源:網路-單片機
『貳』 LED怎麼編程
LED本身只是一種電致發光器件,本質上它是一個二極體,唯一的功能是通過電流時發光(把電能轉變成光能)。它是不需要任何「編程」的。
LED需要專用的驅動器晶元來供給電源。部分驅動器晶元是可編程的,通過寫入程序,它可以控制LED元件點亮、熄滅或發出不同亮度的光;另外絕大多數驅動晶元帶有使能端,這個埠可以與多種單片機、介面電路相連,從而接受來自單片機或其他介面電路的指令來控制LED的發光狀態。這時的編程,是對單片機或其他上位機而言的。
『叄』 求ad to led編程
這個很簡單啊!!
基本正確,你沒有測試嗎?
『肆』 LED燈條怎麼編程
LED燈條編程是看你要用單片機編,還是用控制器編,用控制器編的話,你一般用什麼控制器廠家一般都有軟體(比如麥爵仕等)。
『伍』 led燈編程 最開始從什麼方面開始學 謝謝
看《郭天祥10學會單片機》視頻
『陸』 怎樣編寫程序點亮led燈
以51單片機為例 LED接到P1.0埠的 #include 「reg51.h」 sbit LED=P1^0; mail() { LED=0; //初始化LED為關閉狀態 while(1) { LED=1; //點亮LED } } 完 最主要還要看看你的硬體
『柒』 基於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>
『捌』 8個led燈編程
8個LED流水燈依次循環亮的C語言程序,問題詳細內容為:我用的是PROTUSE做的模擬程序,想讓這8個流水燈依次亮從P0到P7口要它的C語言程序可以在KEILC51裡面運行的,希望在每句C語言後面有個解釋不用WHILE和for語句i高分懸賞我這里有個程序希...我用的是PROTUSE做的模擬程序,想讓這8個流水燈依次亮,從P0到P7口
『玖』 單片機16個LED燈編程
簡單,等我閑的時候再給你寫吧,或者你直接找我吧
『拾』 用c語言單片機led燈顯示數字「28」,如何編程
給LED編個數組,控制IO口,或者直接控制IO口,不過要看顯示的28要多大,會佔用比較多的IO口,道理和矩陣鍵盤差不多。
常式:
#include<reg52.h>//單片機頭文件
voiddelay1ms(unsignedintms);//延時ms函數聲明(可根據實際情況更改)
unsignedcharcodeled0[]={};//字碼表,你自己把你要顯示的字碼放進去就可以了
voidmain()
{
unsignedcharw,i;
while(1)
{
//顯示0
w=0x01;//行變數為第一行
for(i=0;i<8;i++)
{
P1=w;//行數據送P1口
P0=led0[i];
delayms(1);//列數據送P0口
w<<=1;//向下移動一行
}
}
}
voiddelay1ms(unsignedintms)
{
unsignedinti,j;
for(i=0;i<ms;i++)
for(j=0;j<110;j++)
}