《32位單片機C語言編程:基于PIC32》介紹32位單片機PIC32的C語言編程技術,引導讀者循序漸進地掌握基于PIC32單片機的嵌入式控制系統的軟硬件設計技術。全書內容分為三部分,第一部分是基礎知識,第二部分是基本實踐,第三部分是高級應用。 《32位單片機C語言編程:基于PIC32》內容新穎實用,趣味性強,既可作為嵌入式系統設計人員的參考書,也可作為高年級本科生、研究生的學習參考書。任何對嵌入式控制系統設計感興趣的讀者都會從中受益。
上傳時間: 2013-11-17
上傳用戶:sardinescn
單片機c語言學習和單片機制作資料: 函數的使用和熟悉 實例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:用指針數組作為函數的參數顯示多個字符串
上傳時間: 2013-10-21
上傳用戶:llandlu
目錄 序 第一章 C語言 第一節 為何《實例淺析》選擇 C語言作為 51 單片機開發語言? 第二節 打好 C語言基礎 第三節《C總結》 第二章 中斷 第一節 中斷識別方式有哪兩種? 第二節 中斷控制寄存器 IE 第三章 定時/計數器與串行通信接口 第一節 定時/計數器工作方式 1和2 第二節 串行通信工作方式 1 第四章 實例解析 第一節 要求編寫時鐘程序,實現下圖的仿真效果 第二節 如何提高論文被雜志社錄取的概率? 第三節 設計方案 第四節 編寫代碼 附錄
標簽: 51單片機C語言
上傳時間: 2013-11-14
上傳用戶:czl10052678
基于HT45R37V的低功耗C/R-F型八位OTP單片機 HT45R37V 是一款低功耗C/R-F 型具有8 位高性能精簡指令集的單片機,專門為需要VFD 功能的產品而設計。作為一款C/R-F 型的單片機,它可以連接9 個外部電容型或電阻型傳感器,并把它們的電容值或電阻值轉換成相應的頻率進行處理。此外,單片機帶有內部A/D 轉換器,能夠直接與模擬信號相連接,且它還集成了一個雙通道的脈沖寬度調節器,用于控制外部的馬達和LED 燈等。這款單片機是專門為VFD 產品應用而設計的,它能直接驅動VFD 面板。
上傳時間: 2013-10-16
上傳用戶:packlj
基于HT45R37的低功耗C/R-F型八位OTP單片機 HT45R37 是一款低功耗C/R-F 型具有8 位高性能精簡指令集的單片機。作為一款C/R-F 型的單片機,它可以連接16 個外部電容/電阻式傳感器,并把它們的電容值或電阻值轉換成相應的頻率進行處理。此外,單片機帶有內部A/D 轉換器,能夠直接與模擬信號相連接,且它還集成了雙通道的脈沖寬度調節器,用于控制外部的馬達和LED 燈等。
上傳時間: 2013-11-23
上傳用戶:chenlong
首先, 簡要介紹四足微型爬壁機器人的機構部分, 然后詳細介紹四足微型爬壁機器人控制系統的 硬件設計, 以及實時多任務操作系統 c/os—I I在Phi¨ P s公司32位ARM處理器LPC2 1 04上的移值和控制軟件的設計。
上傳時間: 2014-12-28
上傳用戶:gmh1314
MSP430系列單片機C語言程序設計與開發MSP430系列是一個具有明顯技術特色的單片機品種。關于它的硬件特性及匯編語言程序設計已在《MSP430系列超低功耗16位單片機的原理與應用》及《MSP430系列 FLASH型超低功耗16位單片機》等書中作了全面介紹。《MSP430系列單片機C語言程序設計與開發》介紹IAR公司為MSP430系列單片機配備的C程序設計語言C430。書中敘述了C語言的基本概念、C430的擴展特性及C庫函數;對C430的集成開發環境的使用及出錯信息作了詳盡的說明;并以MSP430F149為例,對各種應用問題及外圍模塊操作提供了典型的C程序例程,供讀者在今后的C430程序設計中參考。 《MSP430系列單片機C語言程序設計與開發》可以作為高等院校計算機、自動化及電子技術類專業的教學參考書,也可作為工程技術人員設計開發時的技術資料。MSP430系列超低功耗16位單片機的原理與應用目錄MSP430系列單片機C語言程序設計與開發 目錄 第1章 C語言基本知識1.1 標識符與關鍵字11.1.1 標識符11.1.2 關鍵字11.2 數據基本類型21.2.1 整型數據21.2.2 實型數據31.2.3 字符型數據41.2.4 各種數據轉換關系61.3 C語言的運算符71.3.1 算術運算符71.3.2 關系運算符和邏輯運算符71.3.3 賦值運算符81.3.4 逗號運算符81.3.5 ? 與 :運算符81.3.6 強制轉換運算符91.3.7 各種運算符優先級列表91.4 程序設計的三種基本結構101.4.1 語句的概念101.4.2 順序結構111.4.3 選擇結構121.4.4 循環結構141.5 函數181.5.1 函數定義181.5.2 局部變量與全局變量191.5.3 形式參數與實際參數201.5.4 函數調用方式201.5.5 函數嵌套調用211.5.6 變量的存儲類別221.5.7 內部函數和外部函數231.6 數組231.6.1 一維數組241.6.2 多維數組241.6.3 字符數組261.7 指針271.7.1 指針與地址的概念271.7.2 指針變量的定義281.7.3 指針變量的引用281.7.4 數組的指針281.7.5 函數的指針301.7.6 指針數組311.8 結構和聯合321.8.1 結構定義321.8.2 結構類型變量的定義331.8.3 結構類型變量的初始化341.8.4 結構類型變量的引用341.8.5 聯合341.9 枚舉361.9.1 枚舉的定義361.9.2 枚舉元素的值371.9. 3 枚舉變量的使用371.10 類型定義381.10.1 類型定義的形式381.10.2 類型定義的使用381.11 位運算391.11.1 位運算符391.11.2 位域401.12 預處理功能411.12.1 簡單宏定義和帶參數宏定義411.12.2 文件包含431.12.3 條件編譯命令44第2章 C430--MSP430系列的C語言2.1 MSP430系列的C語言452.1.1 C430概述452.1.2 C430程序設計工作流程462.1.3 開始462.1.4 C430程序生成472.2 C430的數據表達482.2.1 數據類型482.2.2 編碼效率502.3 C430的配置512.3.1 引言512.3. 2 存儲器分配522.3.3 堆棧體積522.3.4 輸入輸出522.3.5 寄存器的訪問542.3.6 堆體積542.3.7 初始化54第3章 C430的開發調試環境3.1 引言563.1.1 Workbench特性563.1.2 Workbench的內嵌編輯器特性563.1.3 C編譯器特性573.1. 4 匯編器特性573.1.5 連接器特性583.1.6 庫管理器特性583.1.7 C?SPY調試器特性593.2 Workbench概述593.2.1 項目管理模式593.2.2 選項設置603.2.3 建立項目603.2.4 測試代碼613.2.5 樣本應用程序613.3 Workbench的操作623.3.1 開始633.3.2 編譯項目683.3.3 連接項目693.3.4 調試項目713.3.5 使用Make命令733.4 Workbench的功能匯總753.4.1 Workbench的窗口753.4.2 Workbench的菜單功能813.5 Workbench的內嵌編輯器993.5.1 內嵌編輯器操作993.5.2 編輯鍵說明993.6 C?SPY概述1013.6.1 C?SPY的C語言級和匯編語言級調試1013.6.2 程序的執行1023.7 C?SPY的操作1033.7.1 程序生成1033.7.2 編譯與連接1033.7.3 C?SPY運行1033.7.4 C語言級調試1043.7.5 匯編級調試1113.8 C?SPY的功能匯總1133.8.1 C?SPY的窗口1133.8.2 C?SPY的菜單命令功能1203.9 C?SPY的表達式與宏1323.9.1 匯編語言表達式1323.9.2 C語言表達式1333.9.3 C?SPY宏1353.9.4 C?SPY的設置宏1373.9.5 C?SPY的系統宏137 第4章 C430程序設計實例4.1 程序設計與調試環境1434.1.1 程序設計調試集成環境1434.1.2 設備連接1444.1.3 ProF149實驗系統1444.2 數值計算1454.2.1 C語言表達式1454.2.2 利用MPY實現運算1464.3 循環結構1474.4 選擇結構1484.5 SFR訪問1494.6 RAM訪問1504.7 FLASH訪問1514.8 WDT操作1534.8. 1 WDT使程序自動復位1534.8.2 程序對WATCHDOG計數溢出的控制1544.8.3 WDT的定時器功能1554.9 Timer操作1554.9.1 用Timer產生時鐘信號1554.9.2 用Timer檢測脈沖寬度1564.10 UART操作1574.10.1 點對點通信1574.10.2 點對多點通信1604.11 SPI操作1634.12 比較器操作1654.13 ADC12操作1674.13.1 單通道單次轉換1674.13.2 序列通道多次轉換1684.14 時鐘模塊操作1704.15 中斷服務程序1714.16 省電工作模式1754.17 調用匯編語言子程序1764.17.1 程序舉例1764.17.2 生成C程序調用的匯編子程序177第5章 C430的擴展特性5.1 C430的語言擴展概述1785.1.1 擴展關鍵字1785.1.2 #pragma編譯命令1785.1.3 預定義符號1795.1.4 本征函數1795.1.5 其他擴展特性1795.2 C430的關鍵字擴展1795.2.1 interrupt1805.2.2 monitor1805.2.3 no_init1815.2.4 sfrb1815.2.5 sfrw1825.3 C430的 #pragma編譯命令1825.3.1 bitfields=default1825.3.2 bitfields=reversed1825.3.3 codeseg1835.3.4 function=default1835.3.5 function=interrupt1845.3.6 function=monitor1845.3.7 language=default1845.3.8 language=extended1845.3.9 memory=constseg1855.3.10 memory=dataseg1855.3.11 memory=default1855.3.12 memory=no_init1865.3.13 warnings=default1865.3.14 warnings=off1865.3.15 warnings=on1865.4 C430的預定義符號1865.4.1 DATE1875.4.2 FILE1875.4.3 IAR_SYSTEMS_ICC1875.4.4 LINE1875.4.5 STDC1875.4.6 TID1875.4.7 TIME1885.4.8 VER1885.5 C430的本征函數1885.5.1 _args$1885.5.2 _argt$1895.5.3 _BIC_SR1895.5.4 _BIS_SR1905.5.5 _DINT1905.5.6 _EINT1905.5.7 _NOP1905.5.8 _OPC1905.6 C430的匯編語言接口1915.6.1 創建匯編子程序框架1915.6.2 調用規則1915.6.3 C程序調用匯編子程序1935.7 C430的段定義1935.7.1 存儲器分布與段定義1945.7.2 CCSTR段1945.7.3 CDATA0段1945.7.4 CODE段1955.7.5 CONST1955.7.6 CSTACK1955.7.7 CSTR1955.7.8 ECSTR1955.7.9 IDATA01965.7.10 INTVEC1965.7.11 NO_INIT1965.7.12 UDATA0196第6章 C430的庫函數6.1 引言1976.1.1 庫模塊文件1976.1.2 頭文件1976.1.3 庫定義匯總1976.2C 庫函數參考2046.2.1 C庫函數的說明格式2046.2.2 C庫函數說明204第7章 C430編譯器的診斷消息7.1 編譯診斷消息的類型2307.2 編譯出錯消息2317.3 編譯警告消息243附錄 AMSP430系列FLASH型芯片資料248附錄 BProF149實驗系統251附錄 CMSP430x14x.H文件253附錄 DIAR MSP430 C語言產品介紹275
上傳時間: 2014-05-05
上傳用戶:253189838
單片機C語言應用程序設計針對目前最通用的單片機8051和最流行的程序設計語言——C語言,以KEII。公司8051單片機開發套件講解單片機的C語言應用程序設計。該套件的編譯器有支持經典8051及8051派生產品的版本,統稱為Cx51。Windows集成開發環境μVision2把μVisionl用的模擬調試器dScope與集成環境無縫結合起來,使用更方便,支持的單片機品種更多。 本書的特點是取材于原文資料,總結實際教學和應用經驗,實例較多,實用性強。本書中C語言是針對8051特有結構描述的,這樣,即使無編程基礎的人,也可通過本書學習單片機的c編程。單片機C語言應用程序設計目錄第1章 單片機基礎知識 1.1 8051單片機的特點 1.2 8051的內部知識 1.3 8051的系統擴展 習題一第2章 C與8051 2.1 8051的編程語言 2.2 Cx51編譯器 2.3 KEIL 8051開發工具 2.4 KEIL Cx51編程實例 2.5 Cx51程序結構 習題二第3章 Cx51 數據與運算 3.1 數據與數據類型 3.2 常量與變量 3.3 Cx51數據存儲類型與8051存儲器結構 3.4 8051特殊功能寄存器(SFR)及其Cx51定義 3.5 8051并行接口及其Cx51定義 3.6 位變量(BIT)及其Cx51定義 3.7 Cx51運算符、表達式及其規則 習題三第4章 Cx51 流程控制語句 4.1 C語言程序的基本結構及其流程圖 4.2 選擇語句 4.3 循環語句 習題四第5章 Cx51 構造數據類型 5.1 數組 5.2 指針 5.3 結構 5.4 共用體 5.5 枚舉 習題五第6章 Cx51 函數第7章 模塊化程序設計第8章 8051內部資源的C編輯第9章 8051擴展資源的C編輯第10章 8051輸出控制的C編程第11章 8051數據采集的C編程第12章 8051機間通信的C編程第13章 8051人機交互的C編程附錄A μVision2集成開發環境使用附錄B KEIL Cx51 上機制南
上傳時間: 2013-10-21
上傳用戶:行者Xin
一、實驗目的1.掌握定時/計數器、輸入/輸出接口電路設計方法。 2.掌握中斷控制編程技術的方法和應用。3.掌握8086匯編語言程序設計方法。 二、實驗內容與要求 微機燈光控制系統主要用于娛樂場所的彩燈控制。系統的彩燈共有12組,在實驗時用12個發光二極管模擬。1. 基本要求:燈光控制共有8種模式,如12個燈依次點亮;12個燈同時閃爍等八種。系統可以通過鍵盤和顯示屏的人機對話,將8種模式進行任意個數、任意次序的連接組合。系統不斷重復執行輸入的模式組合,直至鍵盤有任意一個鍵按下,退出燈光控制系統,返回DOS系統。2. 提高要求:音樂彩燈控制系統,根據音樂的變化控制彩燈的變化,主要有以下幾種:第一種為音樂節奏控制彩燈,按音樂的節拍變換彩燈花樣。第二種音律的強弱(信號幅度大小)控制彩燈。強音時,燈的亮度加大,且被點亮的數目增多。第三種按音調高低(信號頻率高低)控制彩燈。低音時,某一部分燈點亮;高音時,另一部分點亮。 三、實驗報告要求 1.設計目的和內容 2.總體設計 3.硬件設計:原理圖(接線圖)及簡要說明 4.軟件設計框圖及程序清單5.設計結果和體會(包括遇到的問題及解決的方法) 四、設計原理我們以背景霓虹燈的一種顯示效果為例,介紹控制霓虹燈顯示的基本原理。設有一排 n 段水平排列的霓虹燈,某種顯示方式為從左到右每0.2 秒逐個點亮。其控制過程如下: 若以“ 1 ”代表霓虹燈點亮,以“ 0 ”代表霓虹燈熄滅,則開始時刻, n 段霓虹燈的控制信號均為“ 0 ”,隨后,控制器將一幀 n 個數據送至 n 段霓虹燈的控制端,其中,最左邊的一段霓虹燈對應的控制數據為“ 1 ”,其余的數據均為零,即 1000 … 000 。當 n 個數據送完以后,控制器停止送數,保留這種狀態(定時) 0.2 秒,此時,第 1 段霓虹燈被點亮,其余霓虹燈熄滅。隨后,控制器又在極短的時間內將數據 1100 … 000 送至霓虹燈的控制端,并定時 0.2 秒,這段時間,前兩段霓虹燈被點亮。由于送數據的過程很快,我們觀測到的效果是第一段霓虹燈被點亮 0.2 秒后,第 2 段霓虹燈接著被點亮,即每隔 0.2 秒顯示一幀圖樣。如此下去,最后控制器將數據 1111 … 111 送至 n 段霓虹燈的控制端,則 n 段霓虹燈被全部點亮。 只要改變送至每段霓虹燈的數據,即可改變霓虹燈的顯示方式,顯然,我們可以通過合理地組合數據(編程)來得到霓虹燈的不同顯示方式。 五、總體方案論證分析系統設計思路如下:1) 采集8位開關輸入信號,若輸入數據為0時,將其修改為1。確定輸入的硬件接口電路。采樣輸入開關量,并存入NUM的軟件程序段。2) 以12個燈依次點亮為例(即燈光控制模式M1),考慮與其相應的燈光顯示代碼數據。確定顯示代碼數據輸出的接口電路。輸出一個同期顯示代碼的軟件程序段(暫不考慮時隙的延時要求)。3) 應用定時中斷服務和NUM數據,實現t=N×50ms的方法。4) 實現某一種模式燈光顯示控制中12個時隙一個周期,共重復四次的控制方法。要求在初始化時采樣開關輸入數據NUM,并以此控制每一時隙的延時時間;在每一時隙結束時,檢查有無鍵按下,若是退出鍵按下,則結束燈光控制,返回DOS系統,若是其他鍵就返回主菜單,重新輸入控制模式數據。5) 通過人機對話,輸入8種燈光顯示控制模式的任意個數、任意次序連接組合的控制模式數據串(以ENTER鍵結尾)。對輸入的數據進行檢查,若數據都在1 - 8之間,則存入INBUF;若有錯誤,則通過屏幕顯示輸入錯誤,準備重新輸入燈光顯示控制模式數據。6) 依次讀取INBUF中的控制模式數據進行不同模式的燈光顯示控制,在沒有任意鍵按下的情況下,系統從第一個控制模式數據開始,順序工作到最后一個控制模式數據后,又返回到第一個控制模式數據,不斷重復循環進行燈光顯示控制。7) 本系統的軟件在總體上有兩部份,即主程序(MAIN)和實時中斷服務程序(INTT)。討論以功能明確、相互界面分割清晰的軟件程序模塊化設計方法。即確定有關功能模塊,并畫出以功能模塊表示的主程序(MAIN)流程框圖和定時中斷服務程序的流程框圖。 六、硬件電路設計 以微機實驗平臺和PC機資源為硬件設計的基礎,不需要外加電路。主要利用了以下的資源:1.8255并行口電路8255并行口電路主要負責數據的輸入與輸出,可以輸出數據控制發光二極管的亮滅和讀取乒乓開關的數據。實驗時可以將8255的A口、B口和一組發光二極管相連,C口和乒乓開關相連。2.8253定時/計數器8253定時/計數器和8259中斷控制器一起實現時隙定時。本設計的定時就是采用的t=N×50ms的方法,50ms由8253定時/計數器的計數器0控制定時,N是在中斷服務程序中軟件計時。8253的OUT0接到IRQ2,產生中斷請求信號。8253定時/計數器定時結束會發出中斷信號,進入中斷服務程序。3.PC機資源本設計除了利用PC機作為控制器之外,還利用了PC機的鍵盤和顯示器。鍵盤主要是輸入控制模式數據,顯示器就是顯示提示信息。 七、軟件設計 軟件主要分為主程序(MAIN)和中斷服務程序(INTT),主程序包含系統初始化、讀取乒乓開關、讀取控制模式數據以及按鍵處理等模塊。中斷服務程序主要是定時時間到后根據控制模式數據點亮相應的發光二極管。1.主程序主程序的程序流程圖如圖1所示。
上傳時間: 2014-04-05
上傳用戶:q986086481
基于單片機的紅外門進控制系統設計與制作:我們所做的創新實驗項目“基于單片機的紅外門控系統”已基本完成,現將其工作原理簡要說明。該系統主要分為兩大部分:一是紅外傳感器部分。二是單片機計數顯示控制部分。基本電路圖如下:其中紅外傳感器部分我們采用紅外對管實現,紅外對管平行放置,平常處于接收狀態,經比較器輸出低電平,當有人經過時,紅外線被擋住,接收管接收不到紅外線,經比較器輸出高電平。這樣,當有人經過時便會產生一個電平的跳變。單片機控制部分主要是通過外部兩個中斷判斷是否有人經過,如果有人經過,由于電平跳變的產生,進入中斷服務程序,這里我們采用了兩對紅外傳感器接到兩個外部中斷口,中斷0作為入口,實現加1操作,中斷1作為出口,實現減1操作。另外,我們通過P0口控制室內燈的亮暗,當寄存器計數值為0時,熄燈,不為0時,燈亮。顯示部分,采用兩位數碼管動態顯示,如有必要,可以很方便的擴展為四位計數。精益求精!在實驗過程中,我們走了非常多的彎路,做出來的東西根本不是自己想要的,我們本想做成室內只有一個門的進出計數,原理已清楚,即在門的兩邊放置兩對紅外對管,進出時,擋住兩對對管的順序不同,因此,可判斷是進入還是出去,從而實現加減計數,編程時,可分別在兩個中斷服務程序的入口置標志位,根據標志位判斷進出,詳細內容在程序部分。理論如此,但在實際過程中,還是發現實現不了上述功能,我們初步判定認為是程序掌握得不夠好,相信隨著自己對單片機了解的深入,應該會做出更好的 (因為我們是臨時學的單片機),程序的具體內容如下: $MOD52 ORG 0000H LJMP MAIN ORG 0003H LJMP 0100H ORG 0013H LJMP 0150H ORG 0050HMAIN: CLR A MOV 30H , A ;初始化緩存區 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 ;調用數制轉換子程序 ACALL DISPLAY ;調用顯示子程序 LJMP NEXT1 ORG 0100H ;中斷0服務程序 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服務程序 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 ;由十六進制轉化為十進制 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 ;將十六進制中最高位移入進位位中 RLC A MOV R7 , A MOV A , R6 RLC A MOV R6 , A MOV A , R5 ;每位數加上本身相當于將這個數乘以2 ADDC A , R5 DA A MOV R5 , A MOV A , R4 ADDC A , R4 DA A ;十進制調整 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 該系統實際應用廣泛。可用在生產線上產品數量統計、公交車智能計數問候(需添加語音芯片)、超市內人數統計等公共場合。另外,添加串口通信部分便可實現與PC數據交換的功能。 由于,實驗簡化了,剩下不少零件和資金,所以我們又做了兩項其他的實驗。
上傳時間: 2013-12-22
上傳用戶:tangsiyun