單片機語言C51應(yīng)用實戰(zhàn)集錦使用C語言開發(fā)速度快,代碼可重復(fù)使用,程序結(jié)構(gòu)清晰、易懂、易維護(hù),易開發(fā)一些比較大型的項目。目前,許多編譯器都已經(jīng)支持了C51,而且是Windows視窗界面。Kelic51是目前單片機開發(fā)最為流行的軟件。本書收集并整理了許多實用的采用C51單片機開發(fā)的程序,這些程序既可以給讀者以開拓思路,參考的用途又是實際的開發(fā)程序,可以直接作為程序應(yīng)用在相同的開發(fā)系統(tǒng)上。通過本書的學(xué)習(xí),讀者可以進(jìn)一步了解和掌握C51編程的思路和方法。單片機語言C51應(yīng)用實戰(zhàn)集錦目錄:程序一 實時時鐘芯片DS1302的C51程序例子程序二 C430與CSI的一點區(qū)別程序三 一個菜單的例子程序四 DS1820單芯片溫度測量程序五 keilc 6.20c版直接嵌入?yún)R編的方法程序六 用計算機并口模擬SPI通信的C源程序程序七 CRC 16-SIANDARD的快速算法程序八 在PC上用并行口模擬I(平方)C總線的C源代碼程序九 一種在C51中寫二進(jìn)制的方法程序十 CRC算法原理及C語言實現(xiàn)程序十一 軟件陷階程序十二 一個簡單的VB串口發(fā)送程序程序十三 12864漢字液晶顯示驅(qū)動程序程序十四 12232點陣液晶基本驅(qū)動程序程序十五 串口中斷服務(wù)函數(shù)集程序十六 93C46讀寫程序程序十七 20045讀寫程序程序十八 一組小程序集錦程序十九 AVR asm源程序程序二十 AVR單片機一個簡單的通信程序程序二十一 TG19264A接口程序程序二十二 TG19264A接口程序(AVR模擬方式)程序二十三 常用的幾種碼制轉(zhuǎn)換BCD,HEX,BIN程序二十四 16x2字符液晶屏驅(qū)動演示程序一程序二十五 16x2字符液晶屏驅(qū)動演示程序二程序二十六 PS7219代碼程序二十七 2051的AD代碼程序二十八 ARV19264型液晶顯示字庫程序二十九 液晶CKW19264A型接口程序(模擬方式)程序三十 I(平方)C總線驅(qū)動程序程序三十一 240128型液晶代碼程序三十二 飛機游戲程序三十三 PC鍵代碼程序三十四 拼音輸入法模塊程序三十五 串行口代碼程序三十六 蛇游戲代碼程序三十七 與液晶模塊T6963C連接代碼程序三十八 鍵盤輸入法設(shè)計草案程序三十九 16*4液晶漢字代碼程序四十 智能化家電控制附錄C 單片機C51編程幾個有用的模塊附錄D 頭文件W77E58.h附錄A MCS-51單片機定點運算子程序庫附錄B MCS-51單片機浮點運算子程序庫
上傳時間: 2013-11-02
上傳用戶:kbnswdifs
單片機的數(shù)學(xué)基礎(chǔ):本章基本要求:單片機是現(xiàn)代電子智能儀器儀表及嵌入式系統(tǒng)的主要組成部分,應(yīng)用非常廣泛,是現(xiàn)代工程技術(shù)人員必須掌握的知識之一。本章要求掌握數(shù)的進(jìn)制及其相互轉(zhuǎn)換、帶符號數(shù)的表示方法、溢出的判別方法、ASCII 碼和BCD 碼等單片機的數(shù)學(xué)基礎(chǔ)知識;掌握單片機的概念、特點、應(yīng)用范圍、發(fā)展歷程等基礎(chǔ)知識;了解常用單片機系列。為后續(xù)章節(jié)的學(xué)習(xí)打下基礎(chǔ)。1.1 單片機的數(shù)學(xué)基礎(chǔ)1.1.1 數(shù)的進(jìn)位制及其相互轉(zhuǎn)換(1) 數(shù)的幾種常用進(jìn)制數(shù)制是人們利用符號來計數(shù)的方法,數(shù)制有很多種,人們熟悉的是十進(jìn)制。但由于數(shù)在機器中是以器件的物理狀態(tài)來表示的,所以一個具有兩種穩(wěn)定狀態(tài)且能相互轉(zhuǎn)換的器件,就可以用來表示一位二進(jìn)制數(shù)。二進(jìn)制數(shù)的表示是最簡單而且是最可靠的,另外二進(jìn)制的運算規(guī)則也是最簡單的。因此,迄今為止,所有計算機都是以二進(jìn)制進(jìn)行算術(shù)運算和邏輯運算的。但是在使用二進(jìn)制編寫程序時既繁鎖又容易出錯,所以人們在編寫程序時又經(jīng)常用到十進(jìn)制、十六進(jìn)制或八進(jìn)制。下面分別予以介紹。任何一種數(shù)制都有兩個要素,即基數(shù)和權(quán)?;鶖?shù)為數(shù)制中所使用的數(shù)碼的個數(shù)。當(dāng)基數(shù)為R 時,該數(shù)制可使用的數(shù)碼為0~(R-1)。例如在二進(jìn)制中基數(shù)為2,可使用0 和1 兩個數(shù)碼。在進(jìn)行運算時按逢R 進(jìn)一,借1當(dāng)R的規(guī)則進(jìn)行。權(quán)是數(shù)制中某一數(shù)位上單位數(shù)的大小,它是一個指數(shù),底是基數(shù)R,冪是數(shù)碼的位置號,數(shù)碼的位置號從0 開始。將一個數(shù)中某一位的數(shù)碼與該位的權(quán)相乘,即為該位數(shù)碼的數(shù)值。
標(biāo)簽: 單片機
上傳時間: 2013-11-16
上傳用戶:mahone
一:微電腦設(shè)計11.1:微電腦基本結(jié)構(gòu)11.2:單芯片微電腦21.3:單芯片微電腦種類3二:MCS51架構(gòu)介紹62.1:接腳說明62.2:內(nèi)部構(gòu)造圖72.3:系統(tǒng)時序82.4:內(nèi)存結(jié)構(gòu)92.5:系統(tǒng)重制142.6:中斷結(jié)構(gòu)15三:LCD簡介243.1:簡介243.2:內(nèi)部結(jié)構(gòu)263.3:模塊指令29圖1-1 微電腦基本結(jié)構(gòu)1表1-1 MCS-51 單芯片比較.5圖2-1 MCS-51 接腳圖.6圖2-2 內(nèi)部結(jié)構(gòu)方塊圖8圖2-3 MCS-51 指令執(zhí)行時序.9圖2-4 MCS-51 內(nèi)部數(shù)據(jù)存儲器.10圖2-5 MCS-51 程序內(nèi)存結(jié)構(gòu)圖.10圖2-6 MCS-51內(nèi)部數(shù)據(jù)存儲器結(jié)構(gòu)11圖2-7 特殊功能緩存器12表2-1 特殊功能緩存器(SFC)初值設(shè)定.13圖2-8 數(shù)據(jù)存儲器結(jié)構(gòu)圖13表2-2 SFR重置設(shè)定值.15表2-3 中斷向量17圖2-9 中斷結(jié)構(gòu)方塊圖18表2-4 中斷致能緩存器IE19表2-5 中斷優(yōu)先權(quán)緩存器(IP) .20表2-6 中斷源優(yōu)先權(quán)順序21表2-7 計時/計數(shù)控制緩存器TCON.21表2-8 計時/計數(shù)模式設(shè)定.23圖3-1 LCD 的接口電路方圖24表3-1 LCD 接腳說明25表3-2 控制腳功能25表3-3 LCD 模塊地址對映26表3-4 字符產(chǎn)生器與字型碼對映27表3-5 LCD 內(nèi)字型表28表3-6 LCD 控制指令表32圖3-2 初始化流程圖33表4-1 功能說明34圖4-1 電路圖35圖4-2 程序流程圖36此篇專題主要研究是利用8051芯片制作出電子鐘,利用LCD當(dāng)作顯示介面,并且設(shè)置有鬧鈴功能,是很可以融入生活的小家電。關(guān)鍵詞: AT89C51,LCD,電子鍾,數(shù)字鐘,鬧鈴。四:電子鐘344.1:相關(guān)知識344.2:功能說明344.3`:流程圖36五:心得感想41六:程序代碼42附錄:MCS51指令集.54參考數(shù)據(jù)60
上傳時間: 2013-10-11
上傳用戶:butterfly2013
《微機原理及應(yīng)用》課程教案目 錄 下載WORD文檔前 言 下載WORD文檔第一章 51系列單片機概述 下載WORD文檔 第一節(jié) 概述 第二節(jié) 51系列單片機分類 思考題與習(xí)題 第二章 MCS-51系列單片機組成及工作原理 下載WORD文檔 第一節(jié) MCS-51系列單片機組成 第二節(jié) 8051的內(nèi)部數(shù)據(jù)存儲器(內(nèi)部RAM) 第三節(jié) 8051的內(nèi)部程序存儲器(內(nèi)部ROM) 第四節(jié) MCS-51系列單片機典型芯片的外部引腳功能 第五節(jié) 并行輸入/輸出口 第六節(jié) CPU的時鐘電路和時序定時單位 第七節(jié) 單片機指令執(zhí)行的過程 思考題與習(xí)題 第三章 指令系統(tǒng) 下載WORD文檔 第一節(jié) 指令格式和尋址方式 第二節(jié) 指令系統(tǒng) 思考題與習(xí)題 第四章 算法與結(jié)構(gòu)程序設(shè)計 下載WORD文檔 第一節(jié) 算法 第二節(jié) 程序基本結(jié)構(gòu) 第三節(jié) 結(jié)構(gòu)化程序設(shè)計 第四節(jié) 匯編語言程序設(shè)計舉例 思考題與習(xí)題 第五章 中斷 下載WORD文檔 第一節(jié) 中斷技術(shù)概述 第二節(jié) 8051中斷系統(tǒng) 第三節(jié) 中斷控制 第四節(jié) 中斷響應(yīng) 第五節(jié) 中斷系統(tǒng)應(yīng)用舉例 思考題與習(xí)題 第六章 定時器/計數(shù)器 下載WORD文檔 第一節(jié) 概述 第二節(jié) 定時器/計數(shù)器基本結(jié)構(gòu) 工作方式及應(yīng)用 思考題與習(xí)題 第七章 8051單片機系統(tǒng)擴展與接口技術(shù) 下載WORD文檔 第一節(jié) 8051單片機系統(tǒng)擴展概述 第二節(jié) 單片機外部存儲器擴展 第三節(jié) 單片機輸入/輸出(I/O)口擴展 第四節(jié) LED顯示器接口電路及顯示程序 第五節(jié) 單片機鍵盤接口技術(shù) 第六節(jié) 單片機與數(shù)模(D/A)及模數(shù)(A/D)轉(zhuǎn)換器的接口及應(yīng)用 思考題與習(xí)題 第八章 8051單片機的異步串行通信技術(shù) 下載WORD文檔 第一節(jié) 概述 第二節(jié) 8051串行口基本結(jié)構(gòu) 第三節(jié) 8051串行通信工作方式及應(yīng)用 第四節(jié) 多機通信原理 下載WORD文檔 思考題與習(xí)題 第九章 單片機應(yīng)用舉例 下載WORD文檔 第一節(jié) 單片機數(shù)據(jù)采集系統(tǒng) 第二節(jié) 電機轉(zhuǎn)速測量 第三節(jié) 步進(jìn)電機控制系統(tǒng) 第四節(jié) 機器人三覺機械手信號處理及控制算法 思考題與習(xí)題 第十章 單片機與字符式液晶顯示模塊連接技術(shù) 下載WORD文檔 第一節(jié) 字符式液晶顯示模塊簡介 第二節(jié) 模塊指令系統(tǒng) 第三節(jié) 模塊與8051單片機的接口 第四節(jié) 模塊字符顯示舉例 第五節(jié) 自定義字符顯示 思考題與習(xí)題 附錄一 計算機數(shù)的運算基礎(chǔ) 下載WORD文檔 第一節(jié) 進(jìn)位計數(shù)制及相互轉(zhuǎn)換 第二節(jié) 計算機中數(shù)和字符的表示附錄二 美國標(biāo)準(zhǔn)信息交換碼(ASCII)字符表附錄三 MCS-51指令表 下載WORD文檔
上傳時間: 2014-04-16
上傳用戶:hhkpj
PC機之間串口通信的實現(xiàn)一、實驗?zāi)康?nbsp;1.熟悉微機接口實驗裝置的結(jié)構(gòu)和使用方法。 2.掌握通信接口芯片8251和8250的功能和使用方法。 3.學(xué)會串行通信程序的編制方法。 二、實驗內(nèi)容與要求 1.基本要求主機接收開關(guān)量輸入的數(shù)據(jù)(二進(jìn)制或十六進(jìn)制),從鍵盤上按“傳輸”鍵(可自行定義),就將該數(shù)據(jù)通過8251A傳輸出去。終端接收后在顯示器上顯示數(shù)據(jù)。具體操作說明如下:(1)出現(xiàn)提示信息“start with R in the board!”,通過調(diào)整乒乓開關(guān)的狀態(tài),設(shè)置8位數(shù)據(jù);(2)在小鍵盤上按“R”鍵,系統(tǒng)將此時乒乓開關(guān)的狀態(tài)讀入計算機I中,并顯示出來,同時顯示經(jīng)串行通訊后,計算機II接收到的數(shù)據(jù);(3)完成后,系統(tǒng)提示“do you want to send another data? Y/N”,根據(jù)用戶需要,在鍵盤按下“Y”鍵,則重復(fù)步驟(1),進(jìn)行另一數(shù)據(jù)的通訊;在鍵盤按除“Y”鍵外的任意鍵,將退出本程序。2.提高要求 能夠進(jìn)行出錯處理,例如采用奇偶校驗,出錯重傳或者采用接收方回傳和發(fā)送方確認(rèn)來保證發(fā)送和接收正確。 三、設(shè)計報告要求 1.設(shè)計目的和內(nèi)容 2.總體設(shè)計 3.硬件設(shè)計:原理圖(接線圖)及簡要說明 4.軟件設(shè)計框圖及程序清單5.設(shè)計結(jié)果和體會(包括遇到的問題及解決的方法) 四、8251A通用串行輸入/輸出接口芯片由于CPU與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,必須要有“接收移位寄存器”(串→并)和“發(fā)送移位寄存器”(并→串)。能夠完成上述“串←→并”轉(zhuǎn)換功能的電路,通常稱為“通用異步收發(fā)器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251。8251A異步工作方式:如果8251A編程為異步方式,在需要發(fā)送字符時,必須首先設(shè)置TXEN和CTS#為有效狀態(tài),TXEN(Transmitter Enable)是允許發(fā)送信號,是命令寄存器中的一位;CTS#(Clear To Send)是由外設(shè)發(fā)來的對CPU請求發(fā)送信號的響應(yīng)信號。然后就開始發(fā)送過程。在發(fā)送時,每當(dāng)CPU送往發(fā)送緩沖器一個字符,發(fā)送器自動為這個字符加上1個起始位,并且按照編程要求加上奇/偶校驗位以及1個、1.5個或者2個停止位。串行數(shù)據(jù)以起始位開始,接著是最低有效數(shù)據(jù)位,最高有效位的后面是奇/偶校驗位,然后是停止位。按位發(fā)送的數(shù)據(jù)是以發(fā)送時鐘TXC的下降沿同步的,也就是說這些數(shù)據(jù)總是在發(fā)送時鐘TXC的下降沿從8251A發(fā)出。數(shù)據(jù)傳輸?shù)牟ㄌ芈嗜Q于編程時指定的波特率因子,為發(fā)送器時鐘頻率的1、1/16或1/64。當(dāng)波特率指定為16時,數(shù)據(jù)傳輸?shù)牟ㄌ芈示褪前l(fā)送器時鐘頻率的1/16。CPU通過數(shù)據(jù)總線將數(shù)據(jù)送到8251A的數(shù)據(jù)輸出緩沖寄存器以后,再傳輸?shù)桨l(fā)送緩沖器,經(jīng)移位寄存器移位,將并行數(shù)據(jù)變?yōu)榇袛?shù)據(jù),從TxD端送往外部設(shè)備。在8251A接收字符時,命令寄存器的接收允許位RxE(Receiver Enable)必須為1。8251A通過檢測RxD引腳上的低電平來準(zhǔn)備接收字符,在沒有字符傳送時RxD端為高電平。8251A不斷地檢測RxD引腳,從RxD端上檢測到低電平以后,便認(rèn)為是串行數(shù)據(jù)的起始位,并且啟動接收控制電路中的一個計數(shù)器來進(jìn)行計數(shù),計數(shù)器的頻率等于接收器時鐘頻率。計數(shù)器是作為接收器采樣定時,當(dāng)計數(shù)到相當(dāng)于半個數(shù)位的傳輸時間時再次對RxD端進(jìn)行采樣,如果仍為低電平,則確認(rèn)該數(shù)位是一個有效的起始位。若傳輸一個字符需要16個時鐘,那么就是要在計數(shù)8個時鐘后采樣到低電平。之后,8251A每隔一個數(shù)位的傳輸時間對RxD端采樣一次,依次確定串行數(shù)據(jù)位的值。串行數(shù)據(jù)位順序進(jìn)入接收移位寄存器,通過校驗并除去停止位,變成并行數(shù)據(jù)以后通過內(nèi)部數(shù)據(jù)總線送入接收緩沖器,此時發(fā)出有效狀態(tài)的RxRDY信號通知CPU,通知CPU8251A已經(jīng)收到一個有效的數(shù)據(jù)。一個字符對應(yīng)的數(shù)據(jù)可以是5~8位。如果一個字符對應(yīng)的數(shù)據(jù)不到8位,8251A會在移位轉(zhuǎn)換成并行數(shù)據(jù)的時候,自動把他們的高位補成0。 五、系統(tǒng)總體設(shè)計方案根據(jù)系統(tǒng)設(shè)計的要求,對系統(tǒng)設(shè)計的總體方案進(jìn)行論證分析如下:1.獲取8位開關(guān)量可使用實驗臺上的8255A可編程并行接口芯片,因為只要獲取8位數(shù)據(jù)量,只需使用基本輸入和8位數(shù)據(jù)線,所以將8255A工作在方式0,PA0-PA7接實驗臺上的8位開關(guān)量。2.當(dāng)使用串口進(jìn)行數(shù)據(jù)傳送時,雖然同步通信速度遠(yuǎn)遠(yuǎn)高于異步通信,可達(dá)500kbit/s,但由于其需要有一個時鐘來實現(xiàn)發(fā)送端和接收端之間的同步,硬件電路復(fù)雜,通常計算機之間的通信只采用異步通信。3.由于8251A本身沒有時鐘,需要外部提供,所以本設(shè)計中使用實驗臺上的8253芯片的計數(shù)器2來實現(xiàn)。4:顯示和鍵盤輸入均使用DOS功能調(diào)用來實現(xiàn)。設(shè)計思路框圖,如下圖所示: 六、硬件設(shè)計硬件電路主要分為8位開關(guān)量數(shù)據(jù)獲取電路,串行通信數(shù)據(jù)發(fā)送電路,串行通信數(shù)據(jù)接收電路三個部分。1.8位開關(guān)量數(shù)據(jù)獲取電路該電路主要是利用8255并行接口讀取8位乒乓開關(guān)的數(shù)據(jù)。此次設(shè)計在獲取8位開關(guān)數(shù)據(jù)量時采用8255令其工作在方式0,A口輸入8位數(shù)據(jù),CS#接實驗臺上CS1口,對應(yīng)端口為280H-283H,PA0-PA7接8個開關(guān)。2.串行通信電路串行通信電路本設(shè)計中8253主要為8251充當(dāng)頻率發(fā)生器,接線如下圖所示。
上傳時間: 2013-12-19
上傳用戶:小火車?yán)怖怖?/p>
基于單片機的紅外門進(jìn)控制系統(tǒng)設(shè)計與制作:我們所做的創(chuàng)新實驗項目“基于單片機的紅外門控系統(tǒng)”已基本完成,現(xiàn)將其工作原理簡要說明。該系統(tǒng)主要分為兩大部分:一是紅外傳感器部分。二是單片機計數(shù)顯示控制部分?;倦娐穲D如下:其中紅外傳感器部分我們采用紅外對管實現(xiàn),紅外對管平行放置,平常處于接收狀態(tài),經(jīng)比較器輸出低電平,當(dāng)有人經(jīng)過時,紅外線被擋住,接收管接收不到紅外線,經(jīng)比較器輸出高電平。這樣,當(dāng)有人經(jīng)過時便會產(chǎn)生一個電平的跳變。單片機控制部分主要是通過外部兩個中斷判斷是否有人經(jīng)過,如果有人經(jīng)過,由于電平跳變的產(chǎn)生,進(jìn)入中斷服務(wù)程序,這里我們采用了兩對紅外傳感器接到兩個外部中斷口,中斷0作為入口,實現(xiàn)加1操作,中斷1作為出口,實現(xiàn)減1操作。另外,我們通過P0口控制室內(nèi)燈的亮暗,當(dāng)寄存器計數(shù)值為0時,熄燈,不為0時,燈亮。顯示部分,采用兩位數(shù)碼管動態(tài)顯示,如有必要,可以很方便的擴展為四位計數(shù)。精益求精!在實驗過程中,我們走了非常多的彎路,做出來的東西根本不是自己想要的,我們本想做成室內(nèi)只有一個門的進(jìn)出計數(shù),原理已清楚,即在門的兩邊放置兩對紅外對管,進(jìn)出時,擋住兩對對管的順序不同,因此,可判斷是進(jìn)入還是出去,從而實現(xiàn)加減計數(shù),編程時,可分別在兩個中斷服務(wù)程序的入口置標(biāo)志位,根據(jù)標(biāo)志位判斷進(jìn)出,詳細(xì)內(nèi)容在程序部分。理論如此,但在實際過程中,還是發(fā)現(xiàn)實現(xiàn)不了上述功能,我們初步判定認(rèn)為是程序掌握得不夠好,相信隨著自己對單片機了解的深入,應(yīng)該會做出更好的 (因為我們是臨時學(xué)的單片機),程序的具體內(nèi)容如下: $MOD52 ORG 0000H LJMP MAIN ORG 0003H LJMP 0100H ORG 0013H LJMP 0150H ORG 0050HMAIN: CLR A MOV 30H , A ;初始化緩存區(qū) MOV 31H , A MOV 32H , A MOV 33H , A MOV R6 , A MOV R7 , A SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB PX1NEXT1: ACALL HEXTOBCDD ;調(diào)用數(shù)制轉(zhuǎn)換子程序 ACALL DISPLAY ;調(diào)用顯示子程序 LJMP NEXT1 ORG 0100H ;中斷0服務(wù)程序 LCALL DELY mov 70h,#2 djnz 70h,next JBC F0,NEXT SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 MOV A , R7 ADD A , #1 MOV R7, A MOV A , R6 ADDC A , #0 MOV R6 , A CJNE R6 , #07H , NEXT CLR A MOV R6 , A MOV R7 , ANEXT: RETI ORG 0150H ;中斷1服務(wù)程序 LCALL DELY mov 70h,#2 djnz 70h,next2 JBC F0,NEXT2 SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 CLR C MOV A , R7 SUBB A , #1 MOV R7, A MOV A , R6 SUBB A , #0 MOV R6 , A CJNE R6 , #07H , NEXT2 CLR A MOV R6 , A MOV R7 , ANEXT2: RETI ORG 0200HHEXTOBCDD:MOV A , R6 ;由十六進(jìn)制轉(zhuǎn)化為十進(jìn)制 PUSH ACC MOV A , R7 PUSH ACC MOV A , R2 PUSH ACC CLR A MOV R3 , A MOV R4 , A MOV R5 , A MOV R2 , #10HHB3: MOV A , R7 ;將十六進(jìn)制中最高位移入進(jìn)位位中 RLC A MOV R7 , A MOV A , R6 RLC A MOV R6 , A MOV A , R5 ;每位數(shù)加上本身相當(dāng)于將這個數(shù)乘以2 ADDC A , R5 DA A MOV R5 , A MOV A , R4 ADDC A , R4 DA A ;十進(jìn)制調(diào)整 MOV R4 , A MOV A , R3 ADDC A , R3 DJNZ R2 , HB3 POP ACC MOV R2 , A POP ACC MOV R7 , A POP ACC MOV R6 , A RET ORG 0250HDISPLAY: MOV R0 , #30H MOV A , R5 ANL A , #0FH MOV @R0 , A MOV A , R5 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV R0 , #30H MOV R2 , #11111110BAGAIN: MOV A , R2 MOV P2 , A MOV A , @R0 MOV DPTR , #TAB MOVC A , @A+DPTR MOV P1 , A ACALL DELAY INC R0 MOV A , R2 RL A MOV R2 , A JB ACC.4 , AGAIN RETTAB: DB 03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH ;七段碼表DELY: MOV R1,#80D1: MOV R2,#100 DJNZ R2,$ DJNZ R1,D1 RET DELAY: MOV TMOD , #01H ;延時子程序 MOV TL0 , #0FEH MOV TH0 , #0FEH SETB TR0WAIT: JNB TF0 , WAIT CLR TF0 CLR TR0 RETDELY0: MOV R1, #200D3: MOV R2,#250 DJNZ R2,$ DJNZ R1,D3 RET END 該系統(tǒng)實際應(yīng)用廣泛??捎迷谏a(chǎn)線上產(chǎn)品數(shù)量統(tǒng)計、公交車智能計數(shù)問候(需添加語音芯片)、超市內(nèi)人數(shù)統(tǒng)計等公共場合。另外,添加串口通信部分便可實現(xiàn)與PC數(shù)據(jù)交換的功能。 由于,實驗簡化了,剩下不少零件和資金,所以我們又做了兩項其他的實驗。
標(biāo)簽: 單片機 紅外 控制系統(tǒng)設(shè)計 原理圖
上傳時間: 2013-12-22
上傳用戶:tangsiyun
子程序庫的使用方法如下:1.將子程序庫全部內(nèi)容鏈接在應(yīng)用程序之后,統(tǒng)一編譯即可。優(yōu)點是簡單方便,缺點是程序太長,大量無關(guān)子程序也包含在其中。 2.僅將子程序庫中的有關(guān)部分內(nèi)容鏈接在應(yīng)用程序之后,統(tǒng)一編譯即可。有些子程序需要調(diào)用一些低級子程序,這些低級子程序也應(yīng)該包含在內(nèi)。優(yōu)點是程序緊湊,缺點是需要對子程序庫進(jìn)行仔細(xì)刪節(jié)。MCS-51 浮點運算子程序庫及其使用說明本浮點子程序庫有三個不同層次的版本,以便適應(yīng)不同的應(yīng)用場合: 1.小型庫(FQ51A.ASM):只包含浮點加、減、乘、除子程序。 2.中型庫(FQ51B.ASM):在小型庫的基礎(chǔ)上再增加絕對值、倒數(shù)、比較、平方、開平方、 數(shù)制轉(zhuǎn)換等子程序。 3.大型庫(FQ51.ASM):包含本說明書中的全部子程序。 為便于讀者使用本程序庫,先將有關(guān)約定說明如下: 1.雙字節(jié)定點操作數(shù):用[R0]或[R1]來表示存放在由R0或R1指示的連續(xù)單元中的數(shù) 據(jù),地址小的單元存放高字節(jié)。如果[R0]=1234H,若(R0)=30H,則(30H)=12H,(31H)=34H。 2.二進(jìn)制浮點操作數(shù):用三個字節(jié)表示,第一個字節(jié)的最高位為數(shù)符,其余七位為 階碼(補碼形式),第二字節(jié)為尾數(shù)的高字節(jié),第三字節(jié)為尾數(shù)的低字節(jié),尾數(shù)用雙字節(jié) 純小數(shù)(原碼)來表示。
上傳時間: 2013-10-15
上傳用戶:wmwai1314
單片機基礎(chǔ)知識單片機的外部結(jié)構(gòu):1、 DIP40雙列直插;2、 P0,P1,P2,P3四個8位準(zhǔn)雙向I/O引腳;(作為I/O輸入時,要先輸出高電平)3、 電源VCC(PIN40)和地線GND(PIN20);4、 高電平復(fù)位RESET(PIN9);(10uF電容接VCC與RESET,即可實現(xiàn)上電復(fù)位)5、 內(nèi)置振蕩電路,外部只要接晶體至X1(PIN18)和X0(PIN19);(頻率為主頻的12倍)6、 程序配置EA(PIN31)接高電平VCC;(運行單片機內(nèi)部ROM中的程序)7、 P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 單片機內(nèi)部I/O部件:(所為學(xué)習(xí)單片機,實際上就是編程控制以下I/O部件,完成指定任務(wù))1、 四個8位通用I/O端口,對應(yīng)引腳P0、P1、P2和P3;2、 兩個16位定時計數(shù)器;(TMOD,TCON,TL0,TH0,TL1,TH1)3、 一個串行通信接口;(SCON,SBUF)4、 一個中斷控制器;(IE,IP)針對AT89C52單片機,頭文件AT89x52.h給出了SFR特殊功能寄存器所有端口的定義。教科書的160頁給出了針對MCS51系列單片機的C語言擴展變量類型。 C語言編程基礎(chǔ):1、 十六進(jìn)制表示字節(jié)0x5a:二進(jìn)制為01011010B;0x6E為01101110。2、 如果將一個16位二進(jìn)數(shù)賦給一個8位的字節(jié)變量,則自動截斷為低8位,而丟掉高8位。3、 ++var表示對變量var先增一;var—表示對變量后減一。4、 x |= 0x0f;表示為 x = x | 0x0f;5、 TMOD = ( TMOD & 0xf0 ) | 0x05;表示給變量TMOD的低四位賦值0x5,而不改變TMOD的高四位。6、 While( 1 ); 表示無限執(zhí)行該語句,即死循環(huán)。語句后的分號表示空循環(huán)體,也就是{;}第一章 單片機最小應(yīng)用系統(tǒng):單片機最小系統(tǒng)的硬件原理接線圖:1、 接電源:VCC(PIN40)、GND(PIN20)。加接退耦電容0.1uF2、 接晶體:X1(PIN18)、X2(PIN19)。注意標(biāo)出晶體頻率(選用12MHz),還有輔助電容30pF3、 接復(fù)位:RES(PIN9)。接上電復(fù)位電路,以及手動復(fù)位電路,分析復(fù)位工作原理4、 接配置:EA(PIN31)。說明原因。第二章 基本I/O口的應(yīng)用第三章 顯示驅(qū)動第七章 串行接口應(yīng)用
標(biāo)簽: 單片機
上傳時間: 2013-10-30
上傳用戶:athjac
單片機原理及系統(tǒng)設(shè)計8×C552是Philips公司的8位高性能增強型單片機,是在MCS-51單片機基礎(chǔ)上增加了A/D、D/A、捕捉輸入/定時輸出、I2C總線接口和監(jiān)視定時器(Watchdog Timer)等功能,是目前世界上最新型的8位單片機之一。8×C552和MCS-51有相同的指令系統(tǒng),并在其他功能上與MCS-51完全兼容。本書仍以MCS-51為主線組織教學(xué)內(nèi)容,在MCS-51的組成原理、指令系統(tǒng)、匯編語言程序設(shè)計、系統(tǒng)擴張、中斷系統(tǒng)和接口等方面保留了第1版的特點,同時也對8×C552的新增功能做了詳細(xì)敘述和分析,并伴以應(yīng)用實例。全書共分11章,每章末尾都附有一定數(shù)量習(xí)題與思考題。本書內(nèi)容自成體系、結(jié)構(gòu)緊湊、前后呼應(yīng)、語言通俗,因而具有一定的先進(jìn)性、系統(tǒng)性和實用性。第1章 微型計算機基礎(chǔ) 1.1 微型計算機數(shù)制及其轉(zhuǎn)換 1.1.1 微型計算機的數(shù)制 1.1.2 微型計算機數(shù)制間數(shù)的轉(zhuǎn)換 1.2 微型計算機的二進(jìn)制數(shù)運算 1.2.1 算術(shù)運算 1.2.2 邏輯運算 1.3 微型計算機碼制和編碼 1.3.1 微型計算機中數(shù)的表示方法 1.3.2 微型計算機的原碼、反碼和補碼 1.3.3 微型計算機的二進(jìn)制編碼 1.4 微型計算機組成原理 1.4.1 微型計算機的基本結(jié)構(gòu) 1.4.2 微型計算機的基本原理 1.4.3 微型計算機系統(tǒng)的組成 1.5 單片微型計算機概述 1.5.1 單片機的分類和發(fā)展 1.5.2 單片機的內(nèi)部結(jié)構(gòu)
標(biāo)簽: 單片機原理 系統(tǒng)設(shè)計
上傳時間: 2014-01-26
上傳用戶:xy@1314
C51單片機是我們生活中最常用的系列,MCS-51系列單片機有4個并行口(P0,P1,P2,P3口),但對一個稍微復(fù)雜的應(yīng)用系統(tǒng)來說,真正可供用戶使用的并行口,只有P1口可用,況且常常因擴展I2C和SPI的器件需占用某些P1口,迫使用戶不得不擴展并行口以滿足實際的需要。習(xí)慣上,常用的并行口接口芯片有8255、8155,這兩種芯片功能比較齊全,可以使用在相對比較復(fù)雜的系統(tǒng)中,但如是對一般的系統(tǒng)而言,這些功能往往閑置不用。那么就可以選用一些本來閑置不用的口線作為選通信號來進(jìn)行并行口的擴展,這樣就能充分利用單片機有限的I/O資源,在本設(shè)計中是將P1口擴展成一個或幾個8位并行口,在每一個八位口上接入8個發(fā)光二極管做為輸出,二極管是做開關(guān)量來使用的,在這里設(shè)計了跑馬燈和流水燈程序,做到對開關(guān)量的開斷控制;配合開關(guān)量的控制筆者設(shè)計了一個共陽LED數(shù)碼管,用來顯示當(dāng)前發(fā)光二極管發(fā)亮的序號,做到更加直觀的雙重控制效果,然后再將P0口通過D/A轉(zhuǎn)換器和一放大器輸出一個模擬信號,其結(jié)果可以通過示波器看出。這樣整個系統(tǒng)即有了數(shù)字信號輸出和模擬信號輸出,也有數(shù)碼管顯示功能,實用性能大提高了。2、 基于89C51的系統(tǒng)硬件設(shè)計2.1 并行口的擴展的電路設(shè)計 眾所周知,C51系列的單片機都有四個I/O口(P0、P1、P2、P3),那么AT89C51也不例外,但我們通常僅僅使用P1口作為并行口,而令其余口(P2、P3)處于閑置狀態(tài),所以這次設(shè)計,我們就是使用閑置不用的P3口做為選能信號線來將P1口進(jìn)行并行口擴展。 (1) 種方式的并行口擴展優(yōu)點 連線簡單; 不占用存儲器空間; (2) 編程也方便靈活。但也有很大的缺點 并行口擴展能力有限,(如使用74LS573(74LS373)且不進(jìn)行驅(qū)動處理,則最多可擴展4個同樣類型的并行輸出端口,當(dāng)然還需要與之對應(yīng)的四個選通信號。) 如擴展較多,選通信號占用并行口位數(shù)太多,例如欲擴展8個并行輸出端口,則需要8個選能信號,此時,僅選能信號就占用了一個8位并行口,這對在I/O端口線有限的單片機系統(tǒng)中,如此浪費資源的現(xiàn)象是不能容忍的。在本次的設(shè)計中,采用芯片74HC573(帶三態(tài)輸出的八進(jìn)制透明D型鎖存器)對P1口進(jìn)行了一個8位并行口的擴展,選通信號選用P3口的P3.3引腳。原理圖如圖1所示:
標(biāo)簽: C51 單片機 并行口 擴展設(shè)計
上傳時間: 2013-11-18
上傳用戶:dbs012280
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1