導航:首頁 > 操作系統 > 單片機語言C51應用實戰集錦

單片機語言C51應用實戰集錦

發布時間:2022-07-16 11:18:12

㈠ c51單片機使用C語言實現兩位數的四則運算

PROTEUS迅雷下載用於單片機軟體模擬,KEIL用於軟體編寫單片機
C51
程序,然後兩者進行聯調,可以參考書籍:北航出版的,書名
好像是
《單片機應用與原理模擬》
作者:李泉溪

㈡ 單片機難嗎

其他答案

基於51單片機的溫度測量系統
摘要: 單片機在檢測和控制系統中得到廣泛的應用, 溫度則是系統常需要測量、控制和保持的一個量。 本文從硬體和軟體兩方面介紹了AT89C2051單片機溫度控制系統的設計,對硬體原理圖和程序框圖作了簡潔的描述。
關鍵詞: 單片機AT89C2051;溫度感測器DS18B20;溫度;測量

引言
單片機在電子產品中的應用已經越來越廣泛,並且在很多電子產品中也將其用到溫度檢測和溫度控制。為此在本文中作者設計了基於atmel公司的AT89C2051的溫度測量系統。這是一種低成本的利用單片機多餘I/O口實現的溫度檢測電路, 該電路非常簡單, 易於實現, 並且適用於幾乎所有類型的單片機。

一.系統硬體設計
系統的硬體結構如圖1所示。

1.1數據採集
數據採集電路如圖2所示, 由溫度感測器DS18B20採集被控對象的實時溫度, 提供給AT89C2051的P3.2口作為數據輸入。在本次設計中我們所控的對象為所處室溫。當然作為改進我們可以把感測器與電路板分離,由數據線相連進行通訊,便於測量多種對象。

DS18B20是DALLAS公司生產的一線式數字溫度感測器,具有3引腳TO-92小體積封裝形式;溫度測量范圍為-55℃~+125℃,可編程為9位~12位A/D轉換精度,測溫解析度可達0.0625℃,被測溫度用符號擴展的16位數字量方式串列輸出,支持3V~5.5V的電壓范圍,使系統設計更靈活、方便;其工作電源既可在遠端引入,也可採用寄生電源方式產生;多個DS18B20可以並聯到3根或2根線上,CPU只需一根埠線就能與諸多DS18B20通信,佔用微處理器的埠較少,可節省大量的引線和邏輯電路。以上特點使DS18B20非常適用於遠距離多點溫度檢測系統。解析度設定,及用戶設定的報警溫度存儲在EEPROM中,掉電後依然保存。DS18B20使電壓、特性有更多的選擇,讓我們可以構建適合自己的經濟的測溫系統。如圖2所示DS18B20的2腳DQ為數字信號輸入/輸出端;1腳GND為電源地;3腳VDD為外接供電電源輸入端。

AT89C2051(以下簡稱2051)是一枚8051兼容的單片機微控器,與Intel的MCS-51完全兼容,內藏2K的可程序化Flash存儲體,內部有128B位元組的數據存儲器空間,可直接推動LED,與8051完全相同,有15個可程序化的I/O點,分別是P1埠與P3埠(少了P3.6)。

1.2介面電路

圖2 單片機2051與溫度感測器DS18B20的連接圖

介面電路由ATMEL公司的2051單片機、ULN2003達林頓晶元、4511BCD解碼器、串列EEPROM24C16(保存系統參數)、MAX232、數碼管及外圍電路構成, 單片機以並行通信方式從P1.0~P1.7口輸出控制信號,通過4511BCD解碼器解碼,用2個共陰極LED靜態顯示溫度的十位、個位。

串列EEPROM24C16是標准I2C規格且只要兩根引腳就能讀寫。由於單片機2051的P1是一個雙向的I/O埠,所以在我們在設計中將P1埠當成輸出埠用。由圖2可知,P1.7作為串性的時鍾輸出信號與24C16的第6腳相接,P1.6則作為串列數據輸出接到24C16的第5腳。P1. 4和P1.5則作為兩個數碼管的位選信號控制,在P1.4=1時,選中第一個數碼管(個位);P1.5=1時,選中第二個數碼管(十位)。P1.0~P1.3的輸出信號接到解碼器4511上作為數碼管的顯示。此外,由於單片機2051的P3埠有特殊的功能,P3.0(RXD)串列輸入埠,P3.1(TXD)串列輸出埠,P3.2(INTO)外部中斷0,P3.3(INT1)外部中斷1P3.4,(T0) 外部定時/計數輸入點,P3.5(T1)外部定時/計數輸入點。由圖2可知,P3.0和P3.1作為與MAX232串列通信的介面;P3.2和P3.3作為中斷信號介面;P3.4和P3.5作為外部定時/記數輸入點。P3.7作為一個脈沖輸出,控制發光二極體的亮滅。

由於在電路中採用的共陰極的LED數碼管,所以在設計電路時加了一個達林頓電路ULN2003對信號進行放大,產生足夠大的電流驅動數碼管顯示。由於4511隻能進行BCD十進制解碼,只能譯到0至9,所以在這里我們利用4511解碼輸出我們所需要的溫度。

1.3報警電路簡介

圖3 溫度在七段數碼管上顯示連接圖

本文中所設計的報警電路較為簡單,由一個自我震盪型的蜂鳴器(只要在蜂鳴器兩端加上超過3V的電壓,蜂鳴器就會叫個不停)和一個發光二極體組成(如圖3所示)。在這次設計中蜂鳴器是通過ULN2003電流放大IC來控制。在我們所要求的溫度達到一定的上界或者下界時(在文中我們設置的上界溫度是45℃,下界溫度是5℃),報警電路開始工作,主要程序設計如下:

main()//主函數
{unsigned char i=0; <br/>unsigned int m,n; <br/>while(1) <br/>{i=ReadTemperature();//讀溫度}
if(i>0 && i<=10) //如果溫度在0到10度之間直接給七段數碼管賦值
{P1=designP1[i];}
else//如果溫度大於10度
{m=i%10;//先給第一個七段數碼管賦值 <br/>D1=1; <br/>D2=0; <br/>P1=designP1[m]; <br/>n=i/10;//再給第二個七段數碼管賦值 <br/>D1=0; <br/>D2=1; <br/>P1=designP1[n]; <br/>if(n>=4&&m>=5)%%(m<=5)//判斷溫度的取值范圍,如果大於45或小於5度,則蜂鳴器叫,發光二極體閃爍 <br/>{ int a,b; <br/>Q1=1;//蜂鳴器叫 <br/>for(a=0;a<1000;a++)//發光二極體閃爍 <br/>for(b=0;b<1000;b++) <br/>Q2=1; <br/>for(a=0;a<1000;a++) <br/>for(b=0;b<1000;b++) <br/>Q2=0;}}}

㈢ 請單片機高手推薦一本好書

<新概念51單片機C語言教程> 郭天祥

http://www.amazon.cn/mn/detailApp/ref=sr_1_1?_encoding=UTF8&s=books&qid=1292255654&asin=B001P304PM&sr=8-1

㈣ 51單片機C語言開發與實例的內容提要

書中列舉了大量應用實例,著重介紹了51單片機的一些新技術及其應用方法,同時還介紹了幾款簡易編程器的編制和使用方法,使讀者盡快、盡可能容易地掌握利用C51對MCS-51單片機進行開發的方法。
系統全面、突出重點、由淺入深、通俗易懂、學用結合、軟硬兼備、實例豐富是本書的主要特色,因此,本書適用於具備一定電子技術基礎和具有一定的單片機基礎知識的學生、教師、單片機愛好者、電子製作愛好者、電器維修人員、電子產品開發設計者、工程技術人員閱讀參考。

㈤ c51單片機原理及應用重點

1、單片機內部資源

STC89C52:8KFLASH、512位元組RAM、32個IO口、3個定時器、1個UART、8個中斷源

(1)Flash(硬碟)——程序存儲空間 —— 擦寫10萬次,斷電數據不丟失,讀寫速度慢

(2)RAM(內存)——數據存儲空間 —— 斷電數據丟失,讀寫速度快,無限次使用

(3)SFR —— 特殊功能寄存器

2、單片機最小系統

51單片機的內部組成及應用原理解析

最小系統:最少組件組成單片機可以工作的系統。

三要素:

(1)、 電源電路:5V

(2)、 晶振電路:11.0592MHZ、兩個30PF

(3)、 復位電路:

P0:開漏輸出,必須加上拉電阻

准雙向口:

強推挽輸出:電流驅動能力強

高阻態

上下拉電阻:上拉電路就是將不確定的信號通過一個電阻拉到高電平,同時限流作用。下拉電阻就是下拉到低電平。

上下拉電阻選取:從降低功耗方面考慮應該足夠大,因為電阻越大,電流越小;驅動能力來看,小電阻

3、硬體基礎知識

(1)、電磁干擾(EMI)——靜電放電(ESD)、快速瞬間脈沖群(EFT)、浪涌(Surge)

(2)、去耦電容的使用

低頻濾波電容,平常應用最多的事鉭電容,電解電容,陶瓷電容,起到去除電源低頻紋波,穩定電源的作用。

高頻濾波電容,電容附近,通常用104電容來進行去除高頻干擾。

(3)、三極體(PNP,NPN) b,c,e --- 電壓驅動

控制應用

驅動應用

4、LED發光二極體——電流驅動

51單片機的內部組成及應用原理解析

通常紅色貼片LED, 靠電流驅動,電壓1.8V~2.2V,電流1~20mA,在1~5mA亮度有所變化,5mA以上亮度基本不變。

VCC 電壓是 5V,發光二極體自

身壓降大概是 2V,那麼在右邊 R34 這個電阻上承受的電壓就是 3V。

R = U/I —— 1~20mA —— R:150~3K

5、C語言基礎

(1)、基本運算符

+ - * / % ++ -- = == != += -= 《《 》》

㈥ 51單片機C語言應用程序設計實例精講的目錄

第1章51單片機開發的基礎知識
1.151單片機的硬體結構
1.1.1功能模塊
1.1.2CPU
1.1.3並行I/O埠
1.1.4存儲囂結構
1.1.5定時/計數器
1.1.6串列口
1.1.7中斷系統
1.251單片機的指令系統
1.2.1定址方式
1.2.2指令說明
1.2.3指令系統表
1.3本章總結
第2章C語言程序各語句用法與意義
2.1數據結構
2.1.1數據類型
2.1.2變數與常量
2.1.3數組
2.1.4指針
2.1.5結構
2.1.6共用體
2.1.7枚舉
2.2運算符與表達式
2.2.1運算符分類與優先順序
2.2.2算術運算符與表達式
2.2.3關系運算符與表達式
2.2.4邏輯運算符與表達式
2.2.5位操作運算符與表達式
2.2.6賦值運算符與表達式
2.3程序結構與函數
2.3.1程序結構
2.3.2函數
2.4流程式控制制語句
2.4.1選擇語句
2.4.2循環語句
2.4.3轉移語句
2.5本章總結
第3章Keil8051C編譯
3.1Keil編譯器簡介
3.2使用Keil開發應用軟體
3.2.1建立工程
3.2.2工程的設置
3.2.3編譯與連接
3.3dScopeforWindows的使用
3.3.1如何啟動
3.3.2如何調試
3.3.3調試窗口
3.4本章總結 第4章單片機實現液晶顯示
4.1實例說明
4.2設計思路分析
4.2.1液晶顯示模塊
4.2.2液晶顯示工作原理
4.2.3設計思路
4.3硬體電路設計
4.3.1器件選取
4.3.2電源模塊
4.3.3液晶顯示模塊
4.3.4單片機模塊
4.4軟體設計
4.4.1液晶控制驅動囂指令集
4.4.2程序說明
4.5實例總結
第5章基於MAX7219的8位數碼管顯示
5.1實例說明
5.2設計思路分析
5.2.1LED顯示驅動晶元的選取
5.2.2MAX7219的工作原理
5.3硬體電路設計
5.3.1主要器件
5.3.2電路原理圖
5.4軟體設計
5.4.1MAX7219的工作時序和寄存器描述
5.4.2程序說明
5.5實例總結
第6章鍵盤輸入實例——實現4x4鍵盤
6.1實例說明
6.2設計思路分析
6.3硬體電路設計
6.4軟體設計
6.5實例總結
第7章單片機實現語音錄放
7.1實例說明
7.2設計思路分析
7.2.1語音晶元選取
7.2.2語音晶元1SD2560簡介
7.3硬體電路設計
7.3.1主要器件
7.3.2電路原理圖及說明
7.4軟體設計
7.4.1程序流程
7.4.2程序說明
7.5實例總結 第8章基於MAX197的並行A/D轉換
8.1實例說明
8.2設計思路分析
8.2.1A/D轉換原理
8.2.2如何選擇A/D轉換器件
8.2.3A/D轉換器對電源電路的要求
8.3硬體電路設計
8.3.1主要器件
8.3.2電路原理圖及說明
8.4軟體設計
8.4.1MAX197控制字
8.4.2程序流程
8.4.3程序說明
8.5實例總結
第9章基於TLC549的串列A/D轉換
9.1實例說明
9.2設計思路分析
9.2.1晶元選取
9.2.2工作原理
9.3硬體電路設計
9.3.1主要器件
9.3.2電路原理圖及說明
9.4軟體設計
9.4.1轉換過程和時序要求
9.4.2程序流程
9.4.3程序說明
9.5實例總結
第10章基於MAX527的並行D/A轉換
10.1實例說明
10.2設計思路分析
10.2.1D/A轉換原理
10.2.2如何選擇D/A轉換器件
10.2.3D/A轉換器對電源電路的要求
10.3硬體電路設計
10.3.1主要器件
10.3.2電路原理圖及說明
10.4軟體設計
10.4.1MAX527的地址和重要引腳
10.4.2程序流程
10.4.3程序說明
10.5實例總結
第11章基於MAX517的串列D/A轉換
11.1實例說明
11.2設計思路分析
11.2.1晶元選取
11.2.2工作原理
11.3硬體電路設計
11.3.1主要器件
11.3.2電路原理圖及說明
11.4軟體設計
11.4.1時序要求和轉換過程
11.4.2程序說明
11.5實例總結
第12章基於SHT71數字溫/濕度感測器的採集實現
12.1實例說明
12.2設計思路分析
12.2.1SHT71性能概述
12.2.2SHT71的功能說明
12.2.3SHT71的引腳尺寸和說明
12.3硬體電路設計
12.4軟體設計
12.4.1SHT71的操作方法
12.42程序流程
12.4.3源程序清單
12.5實例總結
第13章基於DS1624的數字溫度計設計
13.1實例說明
13.1.2設計思路分析
13.2.1DS1624簡介
13.2.2DS1624基本特性
13.2.3DS1624工作原理
13.2.4DS1624工作方式
13.2.5DS1624的指令集
13.3硬體電路設計
13.3.1硬體設計
13.3.2原理科及其說明
13.4軟體設計
13.4.1程序流程
13.4.2程序說明
13.5實例總結 第14章基於DS12C887的實時日歷時鍾顯示系統設計
14.1實例說明
14.2設計思路分析
14.2.1選擇合適的日歷時鍾晶元7
14.2.2如何由DS12C887晶元獲取時間信息
14.3硬體電路設計
14.3.1結構框圖
14.3.2主要器件
14.3.3電路原理圖及說明
14.4軟體設計
14.4.1DS12C877的內存空間
14.4.2程序流程
14.4.3程序代碼及說明
14.5實例總結
第15章單片機控制的步進電機系統
15.1實例說明
15.2設計思路分析
15.2.1步進電機的工作原理
15.2.2步進電機的控制
15.2.3脈沖分配與驅動晶元的選取
15.3硬體電路設計
15.3.1結構框圖
15.3.2主要器件
15.3.3電路原理圖廈說明
15.4軟體設計
15.4.1程序流程
15.4.2程序說明
15.5實例總結
第16章基於MAX1898的智能充電器設計
16.1實例說明
16.2設計思路分析
16.2.1為何需要實現充電器的智能化
16.2.2如何選擇電池充電晶元
16.2.3MAX1898的充電工作原理
16.3硬體電路設計
16.3.1主要器件
16.3.2電路原理圖及說明
16.4軟體設計
16.4.1程序流程
16.4.2程序說明
16.5實例總結 第17章基於NORFlashAM29LV320的數據存儲
17.1實例說明
17.2設計思路分析
17.2.1晶元AM29LV320
17.2.2具體設計思路
17.3硬體電路設計
17.4軟體設計
17.4.1AM29LV320的命令與狀態
17.4.2串列非同步數據傳輸
17.4.3程序代碼說明
17.5實例總結
第18章基於XC95144的串口擴展
18.1實例說明
18.2設計思路分析
18.2.1串口發送的設計
18.2.2串口接收的設計
18.2.3串口模塊的設計l
18.3硬體電路設計
18.4軟體設計
18.4.1CPLD的設計原理圖
18.4.2C51單片機程序代碼說明
18.5實例總結
第19章基於8255擴展並行口
19.1實例說明
19.2設計思路分析
19.2.1並行口擴展的原理
19.2.2晶元選擇
19.3硬體電路設計
19.4軟體設計
19.5實例總結 第20章單片機實現智能信號發生器
第21章單片機實現步進式PWM信號輸出
第22章單片機實現CRC演算法
第23章單片機實現軟體濾波
第七篇通信傳輸系統設計
第24章單片機實現點對點的數據傳輸
第25章單片機實現點對多點的數據傳輸
第26章單片機實現乙太網介面
第27章單片機實現1C匯流排通信
第28章單片機實現RS-485匯流排現場監測系統
第29章CAN匯流排介面通信設計
第八篇電源監控與抗干擾設計
第30章單片機監控電路設計
第31章光電隔離電路設計 附錄A匯編語言與C語言的混合編程
附錄B實例配套實驗箱

㈦ 求80C51單片機的應用實例 方面的書籍··

首先要掌握單片機基本內部結構,如果你要學的匯編 看看孫涵芳 徐愛卿的《單片機原理及應用》(北京航空航天大學出版社)。
如果要學的C語言,看看范風強 蘭禪麗的《單片機語言C51應用實戰集錦》(電子工業出版)。
建議好好學學用C語言編程,為以後的嵌入式做好基礎···

㈧ 哪有關於單片機的論文

二.系統軟體設計

圖4 系統程序流程圖

2.1 系統程序流程圖
系統程序流程圖如圖4所示。

2.2 溫度部分軟體設計

DS18B20的一線工作協議流程是:初始化→ROM操作指令→存儲器操作指令→數據傳輸。其工作時序包括初始化時序、寫時序和讀時序。故主機控制DS18B20完成溫度轉換必須經過三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功後發送一條ROM指令,最後發送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數據線下拉500微秒,然後釋放,DS18B20收到信號後等待16~60微秒左右,後發出60~240微秒的存在低脈沖,主CPU收到此信號表示復位成功。程序主要函數部分如下:

(1)初始化函數
//讀一個位元組函數
ReadOneChar(void)
{unsigned char i=0; <br/>unsigned char dat = 0; <br/>for (i=8;i>0;i--) <br/>{ DQ = 0; // 給脈沖信號 <br/>dat>>=1; <br/>DQ = 1; // 給脈沖信號 <br/>if(DQ) <br/>dat|=0x80; <br/>delay(4);}
return(dat);}
//寫一個位元組函數
WriteOneChar(unsigned char dat)
{unsigned char i=0; <br/>for (i=8; i>0; i--) <br/>{DQ = 0; <br/>DQ = dat&0x01; <br/>delay(5); <br/>DQ = 1; <br/>dat>>=1;}}
(2)讀取溫度並計算函數
ReadTemperature(void)
{unsigned char a=0; <br/>unsigned char b=0; <br/>unsigned int t=0; <br/>float tt=0; <br/>Init_DS18B20(); <br/>WriteOneChar(0xCC); // 跳過讀序號列號的操作 <br/>WriteOneChar(0x44); // 啟動溫度轉換 <br/>Init_DS18B20(); <br/>WriteOneChar(0xCC); //跳過讀序號列號的操作 <br/>WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度 <br/>a=ReadOneChar(); <br/>b=ReadOneChar(); <br/>t=b; <br/>t<<=8; <br/>t=t|a; <br/>tt=t*0.0625; <br/>t= tt*10+0.5; //放大10倍輸出並四捨五入---此行沒用 <br/>(3)主程序部分見前 <br/>return(t);}

三. 結束語
AT89C2051單片機體積小、重量輕、抗干擾能力強、對環境要求不高、價格低廉、可靠性高、靈活性好。即使是非電子計算機專業人員,通過學習一些專業基礎知識以後也能依靠自己的技術力量來開發所希望的單片機應用系統。 本文的溫度控制系統只是單片機廣泛應用於各行各業中的一例,相信讀者會依靠自己的聰明才智使單片機的應用更加廣泛化。另外對本例子可以作一些擴展,單片機的應用越來越廣泛,由於單片機的運算功能較差,往往需要藉助計算機系統,因此單片機和PC機進行遠程通信更具有實際意義。目前此設計已成功應用於鑽井模擬器實驗室室溫控制。

本文作者創新觀點:採用的單片機AT89C2051性價比高,而且溫度感測器DS18B20轉化溫度的方法非常簡潔且精度高、測試范圍較廣。

參考文獻
[1]林伸茂.8051單片機徹底研究基礎篇 北京:人民郵電出版社 2004
[2]范風強等.單片機語言C51應用實戰集錦 北京:電子工業出版社 2005
[3]譚浩強.C語言程序設計(第二版) 北京:清華大學出版社 1999
[4]夏路易等.電路原理圖與電路板設計教程 北京:北京希望電子出版社 2002
[5]趙晶.Protel99高級應用 北京:人民郵電出版社 2000
[6]聶毅.單片機定時器中斷時間誤差的分析及補償[J] 微計算機信息 2002,18(4):37~38

㈨ 用C51語言編寫51單片機應用程序,實現以下功能

有了電路,編程,並不難。

㈩ 【一道單片機原理及應用題目】C51程序設計語言及程序設計

下載個模擬軟體先試著去編一些程序,keil是寫和編譯程序的,proteus是模擬電路的,兩者可以聯機調試的,不過對於初學者來說,我覺得還是先把基本知識弄懂,先學匯編,然後試著用c語言去寫一些程序,最後再買點資料,有關單片機c語言的,買的時候選51系列的

閱讀全文

與單片機語言C51應用實戰集錦相關的資料

熱點內容
用什麼app管理斐訊 瀏覽:165
安卓如何下載寶可夢劍盾 瀏覽:164
編譯器開發屬於哪個方向 瀏覽:938
megawin單片機 瀏覽:685
以色列加密貨幣監督 瀏覽:907
程序員前端現在怎麼樣 瀏覽:497
伺服器和介面地址ping不通 瀏覽:555
linux命令返回上級目錄 瀏覽:897
移動花卡寶藏版為什麼不能選免流app 瀏覽:255
速騰carplay怎麼用安卓 瀏覽:13
紅塔銀行app怎麼樣 瀏覽:564
農行app怎麼開網銀 瀏覽:651
java迭代器遍歷 瀏覽:303
閩政通無法請求伺服器是什麼 瀏覽:48
怎麼做積木解壓神器 瀏覽:205
王者榮耀解壓玩具抽獎 瀏覽:49
12位是由啥加密的 瀏覽:872
程序員編迷你世界代碼 瀏覽:898
php取現在時間 瀏覽:249
單片機高吸收 瀏覽:430