導航:首頁 > 操作系統 > 單片機c程序100例

單片機c程序100例

發布時間:2023-02-03 20:26:40

單片機c語言編程100個實例

51單片機C語言編程實例 基礎知識:51單片機編程基礎 單片機的外部結構: 1. DIP40雙列直插; 2. P0,P1,P2,P3四個8位準雙向I/O引腳;(作為I/O輸入時,要先輸出高電平) 3. 電源VCC(PIN40)和地線GND(PIN20); 4. 高電平復位RESET(PIN9);(10uF電容接VCC與RESET,即可實現上電復位) 5. 內置振盪電路,外部只要接晶體至X1(PIN18)和X0(PIN19);(頻率為主頻的12倍) 6. 程序配置EA(PIN31)接高電平VCC;(運行單片機內部ROM中的程序) 7. P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 單片機內部I/O部件:(所為學習單片機,實際上就是編程式控制制以下I/O部件,完成指定任務) 1. 四個8位通用I/O埠,對應引腳P0、P1、P2和P3; 2. 兩個16位定時計數器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3. 一個串列通信介面;(SCON,SBUF) 4. 一個中斷控制器;(IE,IP) 針對AT89C52單片機,頭文件AT89x52.h給出了SFR特殊功能寄存器所有埠的定義。 C語言編程基礎: 1. 十六進製表示位元組0x5a:二進制為01011010B;0x6E為01101110。 2. 如果將一個16位二進數賦給一個8位的位元組變數,則自動截斷為低8位,而丟掉高8位。 3. ++var表示對變數var先增一;var—表示對變數後減一。 4. x |= 0x0f;表示為 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示給變數TMOD的低四位賦值0x5,而不改變TMOD的高四位。 6. While( 1 ); 表示無限執行該語句,即死循環。語句後的分號表示空循環體,也就是{;} 在某引腳輸出高電平的編程方法:(比如P1.3(PIN4)引腳) 代碼 1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P1.3 2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口 3. { 4. P1_3 = 1; //給P1_3賦值1,引腳P1.3就能輸出高電平VCC 5. While( 1 ); //死循環,相當 LOOP: goto LOOP; 6. } 注意:P0的每個引腳要輸出高電平時,必須外接上拉電阻(如4K7)至VCC電源。 在某引腳輸出低電平的編程方法:(比如P2.7引腳) 代碼 1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P2.7 2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口 3. { 4. P2_7 = 0; //給P2_7賦值0,引腳P2.7就能輸出低電平GND 5. While( 1 ); //死循環,相當 LOOP: goto LOOP; 6. } 在某引腳輸出方波編程方法:(比如P3.1引腳) 代碼 1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P3.1 2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口 3. { 4. While( 1 ) //非零表示真,如果為真則執行下面循環體的語句 5. { 6. P3_1 = 1; //給P3_1賦值1,引腳P3.1就能輸出高電平VCC 7. P3_1 = 0; //給P3_1賦值0,引腳P3.1就能輸出低電平GND 8. } //由於一直為真,所以不斷輸出高、低、高、低……,從而形成方波 9. } 將某引腳的輸入電平取反後,從另一個引腳輸出:( 比如 P0.4 = NOT( P1.1) ) 代碼 1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P0.4和P1.1 2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口 3. { 4. P1_1 = 1; //初始化。P1.1作為輸入,必須輸出高電平 5. While( 1 ) //非零表示真,如果為真則執行下面循環體的語句 6. { 7. if( P1_1 == 1 ) //讀取P1.1,就是認為P1.1為輸入,如果P1.1輸入高電平VCC 8. { P0_4 = 0; } //給P0_4賦值0,引腳P0.4就能輸出低電平GND 2 51單片機C語言編程實例 9. else //否則P1.1輸入為低電平GND 10. //{ P0_4 = 0; } //給P0_4賦值0,引腳P0.4就能輸出低電平GND 11. { P0_4 = 1; } //給P0_4賦值1,引腳P0.4就能輸出高電平VCC 12. } //由於一直為真,所以不斷根據P1.1的輸入情況,改變P0.4的輸出電平 13. } 將某埠8個引腳輸入電平,低四位取反後,從另一個埠8個引腳輸出:( 比如 P2 = NOT( P3 ) ) 代碼 1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P2和P3 2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口 3. { 4. P3 = 0xff; //初始化。P3作為輸入,必須輸出高電平,同時給P3口的8個引腳輸出高電平 5. While( 1 ) //非零表示真,如果為真則執行下面循環體的語句 6. { //取反的方法是異或1,而不取反的方法則是異或0 7. P2 = P3^0x0f //讀取P3,就是認為P3為輸入,低四位異或者1,即取反,然後輸出 8. } //由於一直為真,所以不斷將P3取反輸出到P2 9. } 注意:一個位元組的8位D7、D6至D0,分別輸出到P3.7、P3.6至P3.0,比如P3=0x0f,則P3.7、P3.6、P3.5、P3.4四個引腳都輸出低電平,而P3.3、P3.2、P3.1、P3.0四個引腳都輸出高電平。同樣,輸入一個埠P2,即是將P2.7、P2.6至P2.0,讀入到一個位元組的8位D7、D6至D0。 第一節:單數碼管按鍵顯示 單片機最小系統的硬體原理接線圖: 1. 接電源:VCC(PIN40)、GND(PIN20)。加接退耦電容0.1uF 2. 接晶體:X1(PIN18)、X2(PIN19)。注意標出晶體頻率(選用12MHz),還有輔助電容30pF 3. 接復位:RES(PIN9)。接上電復位電路,以及手動復位電路,分析復位工作原理 4. 接配置:EA(PIN31)。說明原因。 發光二極的控制:單片機I/O輸出 將一發光二極體LED的正極(陽極)接P1.1,LED的負極(陰極)接地GND。只要P1.1輸出高電平VCC,LED就正向導通(導通時LED上的壓降大於1V),有電流流過LED,至發LED發亮。實際上由於P1.1高電平輸出電阻為10K,起到輸出限流的作用,所以流過LED的電流小於(5V-1V)/10K = 0.4mA。只要P1.1輸出低電平GND,實際小於0.3V,LED就不能導通,結果LED不亮。 開關雙鍵的輸入:輸入先輸出高 一個按鍵KEY_ON接在P1.6與GND之間,另一個按鍵KEY_OFF接P1.7與GND之間,按KEY_ON後LED亮,按KEY_OFF後LED滅。同時按下LED半亮,LED保持後松開鍵的狀態,即ON亮OFF滅。 代碼 1. #include <at89x52.h> 2. #define LED P1^1 //用符號LED代替P1_1 3. #define KEY_ON P1^6 //用符號KEY_ON代替P1_6 4. #define KEY_OFF P1^7 //用符號KEY_OFF代替P1_7 5. void main( void ) //單片機復位後的執行入口,void表示空,無輸入參數,無返回值 6. { 7. KEY_ON = 1; //作為輸入,首先輸出高,接下KEY_ON,P1.6則接地為0,否則輸入為1 8. KEY_OFF = 1; //作為輸入,首先輸出高,接下KEY_OFF,P1.7則接地為0,否則輸入為1 9. While( 1 ) //永遠為真,所以永遠循環執行如下括弧內所有語句 10. { 11. if( KEY_ON==0 ) LED=1; //是KEY_ON接下,所示P1.1輸出高,LED亮 12. if( KEY_OFF==0 ) LED=0; //是KEY_OFF接下,所示P1.1輸出低,LED滅 13. } //松開鍵後,都不給LED賦值,所以LED保持最後按鍵狀態。 14. //同時按下時,LED不斷亮滅,各佔一半時間,交替頻率很快,由於人眼慣性,看上去為半亮態 15. } 數碼管的接法和驅動原理 一支七段數碼管實際由8個發光二極體構成,其中7個組形構成數字8的七段筆畫,所以稱為七段數碼管,而餘下的1個發光二極體作為小數點。作為習慣,分別給8個發光二極體標上記號:a,b,c,d,e,f,g,h。對應8的頂上一畫,按順時針方向排,中間一畫為g,小數點為h。 我們通常又將各二極與一個位元組的8位對應,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相應8個發光二極體正好與單片機一個埠Pn的8個引腳連接,這樣單片機就可以通過引腳輸出高低電平控制8個發光二極的亮與滅,從而顯示各種數字和符號;對應位元組,引腳接法為:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。 如果將8個發光二極體的負極(陰極)內接在一起,作為數碼管的一個引腳,這種數碼管則被稱為共陰數碼管,共同的引腳則稱為共陰極,8個正極則為段極。否則,如果是將正極(陽極)內接在一起引出的,則稱為共陽數碼管,共同的引腳則稱為共陽極,8個負極則為段極。 以單支共陰數碼管為例,可將段極接到某埠Pn,共陰極接GND,則可編寫出對應十六進制碼的七段碼表位元組數據

㈡ 《單片機C語言程序設計實訓100例——基於8051+Proteus模擬》第03篇源代碼

//=======================
// 8個LED 閃爍
// 用來回循環亮
//-------------------------------------
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar i ;
//--------------------------------
void DelayMS(uint ms)
{
uchar t;
while(ms--) for (t=0;t<120;t++);
}
//----------------------------------
void main()
{
P2= 0xfe;
while (1)
{
for ( i = 0; i < 7; i++)
{P2 =_crol_(P2,1); //左移
DelayMS(200);
}
for ( i = 0; i < 7; i++)
{P2 =_cror_(P2,1); //右移
DelayMS(200);
}
}
}

㈢ 單片機C語言程序設計實訓100例:基於8051+Proteus模擬的內容簡介

《單片機C語言程序設計實訓100例:基於8051+Proteus模擬》講述了:第一章用簡短篇幅介紹8051單片機的特點、應用,以及Keil C語言程序設計,在語言程序設計中重點介紹8051內部資源;第二章介紹Proteus的入門操作;第三~五章全部為單片機的C程序設計案例;第三章為基礎案例,涉及C語言基礎部分,基本IO部分,中斷與定時器,串口控制,模數與數模轉換部分等;第四章在前面的基礎上對擴展的外圍硬體應用進行編程,包括解碼器、串並轉換晶元、存儲器、中英文液晶屏、IIC等;第五章是綜合設計部分,涉及一些具體的應用型產品的設計。讀者對象:《單片機C語言程序設計實訓100例:基於8051+Proteus模擬》適用於計算機專業或電子類專業在校學生,特別是職業技術院校學生,實驗室投入不足的學校,電子工程技術人員,以及社會上希望學習單片機技術但還沒有購置單片機硬體實驗設備的人員。

㈣ 《單片機C語言程序設計實訓100例——基於8051+Proteus模擬》 第03篇源代碼

單片機c語言編程100個實例目錄1
函數的使用和熟悉
實例3:用單片機控制第一個燈亮
實例4:用單片機控制一個燈閃爍:認識單片機的工作頻率
實例5:將 P1口狀態分別送入P0、P2、P3口:認識I/O口的引腳功能
實例6:使用P3口流水點亮8位LED
實例7:通過對P3口地址的操作流水點亮8位LED
實例8:用不同數據類型控制燈閃爍時間
實例9:用P0口、P1 口分別顯示加法和減法運算結果
實例10:用P0、P1口顯示乘法運算結果
實例11:用P1、P0口顯示除法運算結果
實例12:用自增運算控制P0口8位LED流水花樣
實例13:用P0口顯示邏輯"與"運算結果
實例14:用P0口顯示條件運算結果
實例15:用P0口顯示按位"異或"運算結果
實例16:用P0顯示左移運算結果
實例17:"萬能邏輯電路"實驗
實例18:用右移運算流水點亮P1口8位LED
實例19:用if語句控制P0口8位LED的流水方向
實例20:用swtich語句的控制P0口8位LED的點亮狀態
實例21:用for語句控制蜂鳴器鳴笛次數
實例22:用while語句控制LED
實例23:用do-while語句控制P0口8位LED流水點亮
實例24:用字元型數組控制P0口8位LED流水點亮
實例25: 用P0口顯示字元串常量
實例26:用P0 口顯示指針運算結果
實例27:用指針數組控制P0口8位LED流水點亮
實例28:用數組的指針控制P0 口8 位LED流水點亮
實例29:用P0 、P1口顯示整型函數返回值
實例30:用有參函數控制P0口8位LED流水速度
實例31:用數組作函數參數控制流水花樣
實例32:用指針作函數參數控制P0口8位LED流水點亮
實例33:用函數型指針控制P1口燈花樣
實例34:用指針數組作為函數的參數顯示多個字元串
單片機c語言編程100個實例目錄2
實例35:字元函數ctype.h應用舉例
實例36:內部函數intrins.h應用舉例
實例37:標准函數stdlib.h應用舉例
實例38:字元串函數string.h應用舉例
實例39:宏定義應用舉例2
實例40:宏定義應用舉例2
實例41:宏定義應用舉例3
* 中斷、定時器中斷、定時器 *中斷、定時器*中斷、定時器 /
實例42:用定時器T0查詢方式P2口8位控制LED閃爍
實例43:用定時器T1查詢方式控制單片機發出1KHz音頻
實例44:將計數器T0計數的結果送P1口8位LED顯示
實例45:用定時器T0的中斷控制1位LED閃爍
實例46:用定時器T0的中斷實現長時間定時
實例47:用定時器T1中斷控制兩個LED以不同周期閃爍
實例48:用計數器T1的中斷控制蜂鳴器發出1KHz音頻
實例49:用定時器T0的中斷實現"渴望"主題曲的播放
實例50-1:輸出50個矩形脈沖
實例50-2:計數器T0統計外部脈沖數
實例51-2:定時器T0的模式2測量正脈沖寬度
實例52:用定時器T0控制輸出高低寬度不同的矩形波
實例53:用外中斷0的中斷方式進行數據採集
實例54-1:輸出負脈寬為200微秒的方波
實例54-2:測量負脈沖寬度
實例55:方式0控制流水燈循環點亮
實例56-1:數據發送程序
實例56-2:數據接收程序
實例57-1:數據發送程序
實例57-2:數據接收程序
實例58:單片機向PC發送數據
實例59:單片機接收PC發出的數據
*數碼管顯示*數碼管顯示 數碼管顯示數碼管顯示*/
實例60:用LED數碼顯示數字5
實例61:用LED數碼顯示器循環顯示數字0~9
實例62:用數碼管慢速動態掃描顯示數字"1234"
實例63:用LED數碼顯示器偽靜態顯示數字1234
實例64:用數碼管顯示動態檢測結果
實例65:數碼秒錶設計
實例66:數碼時鍾設計
實例67:用LED數碼管顯示計數器T0的計數值
實例68:靜態顯示數字「59」
單片機c語言編程100個實例目錄3
鍵盤控制*鍵盤控制* *鍵盤控制 *鍵盤控制 */
實例69:無軟體消抖的獨立式鍵盤輸入實驗
實例70:軟體消抖的獨立式鍵盤輸入實驗
實例71:CPU控制的獨立式鍵盤掃描實驗
實例72:定時器中斷控制的獨立式鍵盤掃描實驗
實例73:獨立式鍵盤控制的4級變速流水燈
實例74:獨立式鍵盤的按鍵功能擴展:"以一當四"
實例75:獨立式鍵盤調時的數碼時鍾實驗
實例76:獨立式鍵盤控制步進電機實驗
實例77:矩陣式鍵盤按鍵值的數碼管顯示實驗
//實例78:矩陣式鍵盤按鍵音
實例79:簡易電子琴
實例80:矩陣式鍵盤實現的電子密碼鎖
液晶顯示LCD*液晶顯示LCD *液晶顯示LCD * *液晶顯示LCD*液晶顯示LCD *液晶顯示LCD */
實例81:用LCD顯示字元'A'
實例82:用LCD循環右移顯示"Welcome to China"
實例83:用LCD顯示適時檢測結果
實例84:液晶時鍾設計
*一些晶元的使用*24c02 DS18B20 X5045 ADC0832 DAC0832 DS1302 紅外遙控/
實例85:將數據"0x0f"寫入AT24C02再讀出送P1口顯示
實例86:將按鍵次數寫入AT24C02,再讀出並用1602LCD顯示
實例87:對I2C匯流排上掛接多個AT24C02的讀寫操作
實例88:基於AT24C02的多機通信 讀取程序
實例89:基於AT24C02的多機通信 寫入程序
實例90:DS18B20溫度檢測及其液晶顯示
實例91:將數據"0xaa"寫入X5045再讀出送P1口顯示
實例92:將流水燈控制碼寫入X5045並讀出送P1口顯示
實例93:對SPI匯流排上掛接多個X5045的讀寫操作
實例94:基於ADC0832的數字電壓表
實例95:用DAC0832產生鋸齒波電壓
實例96:用P1口顯示紅外遙控器的按鍵值
實例97:用紅外遙控器控制繼電器
實例98:基於DS1302的日歷時鍾
實例99:單片機數據發送程序
實例100:電機轉速表設計
模擬霍爾脈沖

http://www.dzkfw.com.cn/myxin/51c_language.chm 單片機c語言一百例子

㈤ 經典C語言程序例子

題目01:在一個已知的字元串中查找最長單詞,假定字元串中只含字母和空格,空格用來分隔不同的單詞。

(5)單片機c程序100例擴展閱讀:

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

㈥ 單片機C語言應用100例的目錄

第1章概述
1.1單片機的結構與應用
1.1.1單片機的定義、分類與內部組成
1.1.2單片機應用系統的結構及其工作過程
1.1.3單片機的應用
1.2單片機基礎知識
1.2.1數制與數制間的轉換
1.2.2單片機中數的表示方法及常用數制的對應關系
1.2.3邏輯數據的表示
1.2.4單片機中常用的基本術語
1.3單片機入門的有效方法與途徑
1.4學習單片機的基本條件
1.4.1軟體條件
1.4.2硬體條件
習題與實驗
第2章單片機開發軟體及開發過程
2.1模擬軟體Proteus的使用
2.1.1Proteus的主要功能特點
2.1.2實例1:功能感受——Pmteus模擬單片機播放《渴望》主題曲
2.1.3Proteus軟體的界面與操作介紹
2.1.4實例2:Proteus模擬設計快速入門
2.2KeilC51的使用
2.2.1單片機最小系統
2.2.2實例3:用Kei1C51編寫點亮一個發光二極體的程序
2.3程序燒錄器及燒錄軟體的使用
習題與實驗
第3章逐步認識單片機基本結構
3.1實例4:用單片機控制一個燈閃爍
3.1.1實現方法
3.1.2程序設計
3.1.3用Proteus軟體模擬
3.1.4延時程序分析
3.2實例5:將P1口狀態送入P0口、P2口和P3口
3.2.1實現方法
3.2.2程序設計
3.2.3用Proteus軟體模擬
3.2.4用實驗板試驗
3.2.5I/O口功能介紹
3.2.6I/O口的結構分析
3.3實例6:使用P3口流水點亮8位1ED
3.3.1實現方法
3.3.2程序設計
3.3.3用Proteus軟體模擬
3.3.4用實驗板試驗
3.4實例7:通過對P3口地址的操作流水點亮8位1ED
3.4.1實現方法
3.4.2程序設計
3.4.3用Proteus軟體模擬
3.4.4用實驗板試驗
3.5MCS-51單片機存儲器的基本結構
3.5.1程序存儲器
3.5.2數據存儲器
3.6單片機的復位電路
習題與實驗
第4章單片機C語言開發基礎
4.1C語言源程序的結構特點
4.2標志符與關鍵字
4.3C語言的數據類型與運算符
4.3.1數據類型
4.3.2運算符
4.3.3實例8:用不同數據類型的數據控制1ED的閃爍
4.3.4實例9:用P0口、P1口分別顯示加法和減法運算結果
4.3.5實例10:用P0口、P1口顯示乘法運算結果
4.3.6實例11:用P1口、P0口顯示除法運算結果
4.3.7實例12:用自增運算控制P0口8位1ED的閃爍花樣
4.3.8實例13:用P0口顯示邏輯「與」運算結果
4.3.9實例14:用P0口顯示條件運算結果
4.3.10實例15:用P0口顯示按位「異或」運算結果
4.3.11實例16:用P0口顯示左移運算結果
4.3.12實例17:「萬能邏輯電路」實驗
4.3.13實例18:用右移運算流水點亮P1口8位1ED
4.4C語言的語句
4.4.1概述
4.4.2控制語句
4.4.3實例19:用if語句控制P0口8位LED的點亮狀態
4.4.4實例20:用swtich語句控制PO口8位LED的點亮狀態
4.4.5實例21:用for語句設計鳴笛報警程序
4.4.6實例22:用while語句控制PO口8位LED閃爍花樣
4.4.7實例23:用dOwhile語句控制PO口8位LED流水點亮
4.5C語言的數組
4.5.1數組的定義和引用
4.5.2實例24:用字元型數組控制PO口8位LED流水點亮
4.5.3實例25:用PO口顯示字元串常量
4.6C語言的指針
4.6.1指針的定義與引用
4.6.2實例26:用PO口顯示指針運算結果
4.6.3實例27:用指針數組控制PO口8位LED流水點亮
4.6.4實例28:用數組的指針控制PO口8位LED流水點亮
4.7C語言的函數
4.7.1函數的定義與調用
4.7.2實例29:用PO口、P1口顯示整型函數返回值
4.7.3實例30:用有參函數控制PO口8位LED流水速度
4.7.4實例3l:用數組作函數參數控制PO口8位LED流水點亮
4.7.5實例32:用指針作函數參數控制PO口8位LED流水點亮
4.7.6實例33:用函數型指針控制PO口8位LED流水點亮
4.7.7實例34:用指針數組作為函數的參數顯示多個字元串
4.7.8實例35:字元軟體ctype.h中的isalpha()函數應用舉例
4.7.9實例36:內部函數庫文件intrins.h中的_cml_()函數應用舉例
4.7.10實例37:標准函數庫文件stdlib.h中的rand()函數應用舉例
4.7.1l實例38:字元串函數庫文件string.h中的strcmp()函數應用舉例
4.8C語言的編譯預處理
4.8.1常用預處理命令介紹
4.8.2實例39:宏定義應用舉例
4.8.3實例40:文件包含應用舉例
4.8.4實例41:條件編譯應用舉例
習題與實驗
第5章單片機的定時器/計數器
5.1定時器,計數器的基本概念
5.2定時器/計數器的結構及工作原理
5.2.1定時器/計數器的結構
5.2.2定時器,計數器的工作原理
5.3定時器,計數器的控制
5.3.1定時器/計數器的方式控制寄存器(TMOD)
5.3.2定時器/計數器控制寄存器(TCON)
5.3.3定時器/計數器的4種工作方式
5.3.4定時器/計數器中定時/計數初值的計算
5.4定時器/計數器應用舉例
5.4.1實例42:用定時器T0查詢方式控制P2口8位LED閃爍
5.4.2實例43:用定時器T1查詢方式控制單片機發出1kHz音頻
5.4.3實例44:用計數器TO查詢的方式計數,結果送P1口顯示
習題與實驗
第6章單片機的中斷系統
6.1中斷系統的基本概念
6.2中斷系統的結構及控制
6.2.1中斷系統的結構
6.2.2中斷系統的控制
6.3中斷系統應用舉例
6.3.1實例45:用定時器TO的方式1控制LED閃爍
6.3.2實例46:用定時器TO的方式1實現長時間定時
6.3.3實例47:用定時器T1的方式1控制兩個LED以不同周期閃爍
6.3.4實例48.用計數器T1的中斷方式控制發出1kHz音頻
6.3.5實例49:用定時器TO的方式O控制播放《好人一生平安》
6.3.6實例50.用計數器TO的方式2對外部脈沖計數
6.3.7實例51:用定時器TO的門控制位測量外部正脈沖寬度
6.3.8實例52:用外中斷INT0測量負跳變信號累計數
6.3.9實例53-用外中斷控制INT0控制P1口LED亮滅狀態
6.3.10實例54:用外中斷INT0中斷測量外部負脈沖寬度
習題與實驗
第7章串列通信技術
7.1串列通信的基本概念
7.2串列通信口的結構
7.3串列通信口的控制
7.3.1串列控制寄存器SCON
7.3.2電源控制寄存器PCON
7.3.3四種工作方式與波特率的設置
7.4串列通信口應用舉例
7.4.1實例55.將方式0用於擴展並行輸出控制流水燈
7.4.2實例56.基於方式1的單工通信
7.4.3實例57:基於方式3的單工通信
7.4.4實例58:單片機向計算機發送數據
7.4.5實例59:單片機接收計算機送出的數據
習題與實驗
第8章介面技術
第9章新型串列介面晶元應用介紹
第10章常用功能器件應用舉例
第11章高級綜合應用技術
參考文獻
……

㈦ 單片機C語言程序設計實訓100例:基於PIC+Proteus模擬的編輯推薦

《單片機C語言程序設計實訓100例:基於PIC+Proteus模擬》:一本凝聚了作者近兩年艱苦寫作經歷的書籍
一本忠實的讀者們期待已久的單片機技術開發書籍
一本涵蓋PIC單片機C語言程序設計大量核心源碼的書籍
一本帶領你進入PIC單片機C語言程序設計神奇之旅的書籍
一本可作為「代碼寶典或「代碼手冊」使用的書籍
◆豐富的C語言源程序全部基於MPLAB IDE+H1—TECHPICC/PICC 1 8/MCC 1 8開發環境
◆基於Proteus提供的實物電路案例模擬解決了實驗條件欠缺的問題
◆逐步遞進的案例設計及難易適中的實訓目標引領讀者進入爐火純青的程序設計境界
◆基礎設計類案例涵蓋PIC單片機最基本的埠編程、定時/計數器應用、中斷程序設計、A/D轉換、CCP程序設計、EEPRoM、FIash、USART及看門狗程序設計等
◆硬體應用類案例涉及單片機存儲器擴展、介面擴展、解碼、編碼、驅動、光電、機電、感測器、I2C及SP}介面器件、MMC、ATA、遙控等器件等
◆綜合設計類案例涉及消費類電子產品、儀器儀表及智能控制設備等相關技術,部分案例涉及IRDA/RS-485/M0dbus/CAN/Ethernet等技術應用

㈧ 單片機C語言程序設計實訓100例:基於PIC+Proteus模擬的目錄

第1章PIC單片機C語言程序設計概述
1.1 PIC單片機簡介
1.2 MPLAB+C語言程序開發環境安裝及應用
1.3 PICC/PICC18/MCC18程序設計基礎
1.4 PIC單片機內存結構
1.5 PIC單片機配置位
1.6 基本的I/O埠編程
1.7 中斷服務程序設計
1.8 PIC單片機外設相關寄存器
1.9 C語言程序設計在PIC單片機應用系統開發中的優勢
第2章PROTEUS操作基礎
2.1 PROTEUS操作界面簡介
2.2 模擬電路原理圖設計
2.3 元件選擇
2.4 模擬運行
2.5 MPLAB IDE與PROTEUS的聯合調試
2.6 PROTEUS在PIC單片機應用系統開發中的優勢
第3章 基礎程序設計
3.1 閃爍的LED
3.2 用雙重循環控制LED左右來回滾動顯示
3.3 多花樣流水燈
3.4 LED模擬交通燈
3.5 單只數碼管循環顯示0~9
3.6 4隻數碼管滾動顯示單個數字
3.7 8隻數碼管掃描顯示多個不同字元
3.8 K1~K5控制兩位數碼管的開關、加減與清零操作
3.9 數碼管顯示4×4鍵盤矩陣按鍵
3.10 數碼管顯示撥碼開關編碼
3.11 繼電器及雙向可控硅控制照明設備
3.12 INT中斷計數
3.13 RB埠電平變化中斷控制兩位數碼管開關與加減顯示
3.14 TIMER0控制單只LED閃爍
3.15 TIMER0控制流水燈
3.16 TIMER0控制數碼管掃描顯示
3.17 TIMER1控制交通指示燈
3.18 TIMER1與TIMER2控制十字路口秒計時顯示屏
3.19 用工作於同步計數方式的TMR1實現按鍵或脈沖計數
3.20 用定時器設計的門鈴
3.21 報警器與旋轉燈
3.22 用工作於捕獲方式的CCP1設計的頻率計
3.23 用工作於比較模式的CCP1控制音階播放
3.24 CCP1 PWM模式應用
3.25 模擬比較器測試
3.26 數碼管顯示兩路A/D轉換結果
3.27 EEPROM讀寫與數碼管顯示
3.28 睡眠模式及看門狗應用測試
3.29 單片機與PC雙向串口通信模擬
3.30 PIC單片機並行從動埠PSP讀寫測試
第4章 硬體應用
4.1 74HC138與74HC154解碼器應用
4.2 74HC595串入並出晶元應用
4.3 用74HC164驅動多隻數碼管顯示
4.4 數碼管BCD解碼驅動器7447與4511應用
4.5 8×8LED點陣屏顯示數字
4.6 8位數碼管段位復用串列驅動晶元MAX6951應用
4.7 串列共陰顯示驅動器MAX7219與7221應用
4.8 14段與16段數碼管串列驅動顯示
4.9 16鍵解碼晶元74C922應用
4.10 1602LCD字元液晶測試程序
4.11 1602液晶顯示DS1302實時時鍾
4.12 1602液晶工作於4位模式實時顯示當前時間
4.13 帶RAM內存的實時時鍾與日歷晶元PCF8583應用
4.14 2×20串列字元液晶演示
4.15 LGM12864液晶顯示程序
4.16 PG160128A液晶圖文演示
4.17 TG126410液晶串列模式顯示
4.18 HDG12864系列液晶演示
4.19 Nokia7110液晶菜單控製程序
4.20 8通道模擬開關74HC4051應用測試
4.21 用帶I2C介面的MCP23016擴展16位通用I/O埠
4.22 用帶SPI介面的MCP23S17擴展16位通用I/O埠
4.23 用I2C介面控制MAX6953驅動4片5×7點陣顯示器
4.24 用I2C介面控制MAX6955驅動16段數碼管顯示
4.25 用帶SPI介面的數/模轉換器MCP4921生成正弦波形
4.26 用帶SPI介面的數/模轉換器MAX515控制LED亮度循環變化
4.27 正反轉可控的直流電機
4.28 PWM控制MOSFET搭建的H橋電路驅動直流電機運行
4.29 正反轉可控的步進電機
4.30 用L297+L298控制與驅動步進電機
4.31 PC通過RS-485器件MAX487遠程式控制制單片機
4.32 I2C介面DS1621溫度感測器測試
4.33 SPI介面溫度感測器TC72應用測試
4.34 溫度感測器LM35全量程應用測試
4.35 K型熱電偶溫度計
4.36 用鉑電阻溫度感測器PT100設計的測溫系統
4.37 DS18B20溫度感測器測試
4.38 SHT75溫濕度感測器測試
4.39 1-Wire式可定址開關DS2405應用測試
4.40 光敏電阻應用測試
4.41 MPX4250壓力感測器測試
4.42 用I2C介面讀寫存儲器AT24C04
4.43 用SPI介面讀寫AT25F1024
4.44 PIC18 I2C介面存儲器及USART介面測試程序
4.45 PIC18 SPI介面存儲器測試程序
4.46 PIC18定時器及A/D轉換測試
4.47 用PIC18控制Microwire介面繼電器驅動器MAX4820
4.48 MMC存儲卡測試
4.49 ATA硬碟數據訪問
4.50 微芯VLS5573液晶顯示屏驅動器演示
第5章 綜合設計
5.1 用DS1302/DS18B20+MAX6951設計的多功能電子日歷牌
5.2 用PCF8583設計高模擬數碼管電子鍾
5.3 用4×20LCD與DS18B20設計的單匯流排多點溫度監測系統
5.4 用內置EEPROM與1602液晶設計的加密電子密碼鎖
5.5 用PIC單片機與1601LCD設計的計算器
5.6 電子秤模擬設計
5.7 數碼管顯示的GP2D12模擬測距警報器
5.8 GPS全球定位系統模擬
5.9 能接收串口信息的帶中英文硬字型檔的80×16點陣顯示屏
5.10 用M145026與M145027設計的無線收發系統
5.11 紅外遙控收發模擬
5.12 交流電壓檢測與數字顯示模擬
5.13 帶位置感應器的直流無刷電機PMW控制模擬
5.14 3端可調正穩壓器LM317應用測試
5.15 模擬射擊訓練游戲
5.16 帶觸摸屏的國際象棋游戲模擬
5.17 溫室監控系統模擬
5.18 PIC單片機MODBUS匯流排通信模擬
5.19 PIC單片機內置CAN匯流排通信模擬
5.20 基於PIC18+Microchip TCP/IP協議棧的HTTP伺服器應用
參考文獻

㈨ 《單片機C語言程序設計實訓100例——基於8051+Proteus模擬》 【綜合設計部分】的源代碼

單片機c語言編程100個實例目錄1 函數的使用和熟悉例26:用P0 口顯示指針運算結果 實例27:用指針數組控制P0口8位LED流水點亮 實例28:用數組的指針控制P0 口8 位LED流水點亮 實例29:用P0 、P1口顯示整型函數返回值 實例30:用有參函數控制P0口8位LED流水速度 實例31:用數組作函數參數控制流水花樣 實例32:用指針作函數參數控制P0口8位LED流水點亮 實例33:用函數型指針控制P1口燈花樣 實例34:用指針數組作為函數的參數顯示多個字元串 單片機c語言編程100個實例目錄2 實例35:字元函數ctype.h應用舉例 實例36:內部函數intrins.h應用舉例 實例37:標准函數stdlib.h應用舉例 實例38:字元串函數string.h應用舉例 實例39:宏定義應用舉例2 實例40:宏定義應用舉例2 實例41:宏定義應用舉例3 * 中斷、定時器中斷、定時器 *中斷、定時器*中斷、定時器 / 實例42:用定時器T0查詢方式P2口8位控制LED閃爍 實例43:用定時器T1查詢方式控制單片機發出1KHz音頻 實例44:將計數器T0計數的結果送P1口8位LED顯示 實例45:用定時器T0的中斷控制1位LED閃爍 實例46:用定時器T0的中斷實現長時間定時 實例47:用定時器T1中斷控制兩個LED以不同周期閃爍 實例48:用計數器T1的中斷控制蜂鳴器發出1KHz音頻 實例49:用定時器T0的中斷實現"渴望"主題曲的播放 實例50-1:輸出50個矩形脈沖 實例50-2:計數器T0統計外部脈沖數 實例51-2:定時器T0的模式2測量正脈沖寬度 實例52:用定時器T0控制輸出高低寬度不同的矩形波 實例53:用外中斷0的中斷方式進行數據採集 實例54-1:輸出負脈寬為200微秒的方波 實例54-2:測量負脈沖寬度 實例55:方式0控制流水燈循環點亮 實例56-1:數據發送程序 實例56-2:數據接收程序 實例57-1:數據發送程序 實例57-2:數據接收程序 實例58:單片機向PC發送數據 實例59:單片機接收PC發出的數據 *數碼管顯示*數碼管顯示 數碼管顯示數碼管顯示*/ 實例60:用LED數碼顯示數字5 實例61:用LED數碼顯示器循環顯示數字0~9 實例62:用數碼管慢速動態掃描顯示數字"1234" 實例63:用LED數碼顯示器偽靜態顯示數字1234 實例64:用數碼管顯示動態檢測結果 實例65:數碼秒錶設計 實例66:數碼時鍾設計 實例67:用LED數碼管顯示計數器T0的計數值 實例68:靜態顯示數字「59」 單片機c語言編程100個實例目錄3 鍵盤控制*鍵盤控制* *鍵盤控制 *鍵盤控制 */ 實例69:無軟體消抖的獨立式鍵盤輸入實驗 實例70:軟體消抖的獨立式鍵盤輸入實驗 實例71:CPU控制的獨立式鍵盤掃描實驗 實例72:定時器中斷控制的獨立式鍵盤掃描實驗 實例73:獨立式鍵盤控制的4級變速流水燈 實例74:獨立式鍵盤的按鍵功能擴展:"以一當四" 實例75:獨立式鍵盤調時的數碼時鍾實驗 實例76:獨立式鍵盤控制步進電機實驗 實例77:矩陣式鍵盤按鍵值的數碼管顯示實驗 //實例78:矩陣式鍵盤按鍵音 實例79:簡易電子琴 實例80:矩陣式鍵盤實現的電子密碼鎖 液晶顯示LCD*液晶顯示LCD *液晶顯示LCD * *液晶顯示LCD*液晶顯示LCD *液晶顯示LCD */ 實例81:用LCD顯示字元'A' 實例82:用LCD循環右移顯示"Welcome to China" 實例83:用LCD顯示適時檢測結果 實例84:液晶時鍾設計 *一些晶元的使用*24c02 DS18B20 X5045 ADC0832 DAC0832 DS1302 紅外遙控/ 實例85:將數據"0x0f"寫入AT24C02再讀出送P1口顯示 實例86:將按鍵次數寫入AT24C02,再讀出並用1602LCD顯示 實例87:對I2C匯流排上掛接多個AT24C02的讀寫操作 實例88:基於AT24C02的多機通信 讀取程序 實例89:基於AT24C02的多機通信 寫入程序 實例90:DS18B20溫度檢測及其液晶顯示 實例91:將數據"0xaa"寫入X5045再讀出送P1口顯示 實例92:將流水燈控制碼寫入X5045並讀出送P1口顯示 實例93:對SPI匯流排上掛接多個X5045的讀寫操作 實例94:基於ADC0832的數字電壓表 實例95:用DAC0832產生鋸齒波電壓 實例96:用P1口顯示紅外遙控器的按鍵值 實例97:用紅外遙控器控制繼電器 實例98:基於DS1302的日歷時鍾 實例99:單片機數據發送程序 實例100:電機轉速表設計 模擬霍爾脈沖 實例3:用單片機控制第一個燈亮 實例4:用單片機控制一個燈閃爍:認識單片機的工作頻率 實例5:將 P1口狀態分別送入P0、P2、P3口:認識I/O口的引腳功能 實例6:使用P3口流水點亮8位LED 實例7:通過對P3口地址的操作流水點亮8位LED 實例8:用不同數據類型控制燈閃爍時間 實例9:用P0口、P1 口分別顯示加法和減法運算結果 實例10:用P0、P1口顯示乘法運算結果 實例11:用P1、P0口顯示除法運算結果 實例12:用自增運算控制P0口8位LED流水花樣 實例13:用P0口顯示邏輯"與"運算結果 實例14:用P0口顯示條件運算結果 實例15:用P0口顯示按位"異或"運算結果 實例16:用P0顯示左移運算結果 實例17:"萬能邏輯電路"實驗 實例18:用右移運算流水點亮P1口8位LED 實例19:用if語句控制P0口8位LED的流水方向 實例20:用swtich語句的控制P0口8位LED的點亮狀態 實例21:用for語句控制蜂鳴器鳴笛次數 實例22:用while語句控制LED 實例23:用do-while語句控制P0口8位LED流水點亮 實例24:用字元型數組控制P0口8位LED流水點亮 實例25: 用P0口顯示字元串常量 實例26:用P0 口顯示指針運算結果

閱讀全文

與單片機c程序100例相關的資料

熱點內容
空調壓縮機自製工具 瀏覽:518
命令行控制路由器 瀏覽:957
逆拓撲排序演算法描述 瀏覽:588
如何遠程鏈接到linux伺服器地址 瀏覽:630
抹茶app支付方式怎麼選 瀏覽:556
獵人寶寶攻擊命令 瀏覽:159
操作系統是編譯原理嗎 瀏覽:646
雲伺服器遷移後 瀏覽:260
excel格式轉換pdf 瀏覽:987
登錄器一般存在哪個文件夾 瀏覽:535
中興光貓機器碼演算法 瀏覽:330
android響應時間測試 瀏覽:940
java編程思想第四版答案 瀏覽:888
如何對nbt編程 瀏覽:885
mscpdf 瀏覽:948
文件夾d盤突然0位元組可用 瀏覽:272
吃火腿腸的解壓場面 瀏覽:339
衛星鍋加密教程 瀏覽:792
php7的特性是什麼 瀏覽:469
編譯類高級語言源代碼運行過程 瀏覽:177