單片機應用技術選編(1) 第一章 單片機系統綜合應用技術 11.1 且使用 8098單片機的幾點體會 2 1.2 單片機的冷啟動與熱啟動 31.3 大容量動態存儲器在單片機系統中的應用111.4 MCS-51單片機系統中動態 RAM的刷新技巧141.5 MCS-51單片機系統中外RAM空間超64KB的擴展方法161.6 8031單片機P0口和P2口的應用開發 181.7 74LS164在 8031單片機中的兩種用法261.8 用于 8031單片機的快速I/O接口281.9 MCS-51定時器定時常數初值的精確設定法301.10 8253的翻轉問題及 MC6840的替代方法321.11 MCS-51單片機外部中斷源的擴展設計351.12 MCS-51單片機多外中斷擴展方法401.13 用優先權編碼器74LS348擴展51系列單片機的外中斷源421.14 用優先權編碼器74LS148擴展51系列單片機的外中斷源471.15 8031單片機與 BG5119A漢字庫的接口方法521.16 可背插 SRAM的日歷時鐘 DS1216及其應用551.17 實時日歷時鐘集成電路MSM5832及其時序601.18 實時日歷時鐘集成電路MSM5832的接口技術631.19 實時時鐘/日歷芯片MC146818及其應用671.20 與 SICE仿真器通訊的IBM-PC機通訊程序的改進741.21 代碼形式參數匯編子程序的應用821.22 單片機應用系統中的查表程序設計861.23 用狀態綜合法設計鍵盤監控程序901.24 單片機系統程序的加密技術961.25 MCS-96單片機程序保密的幾種方法1001.26 GAL輸出宏單元原理及使用105 1.27 通用陣列邏輯 GAL應用于步進電機控制實例110 第二章 傳感器與前向通道接口技術1172.1 集成溫度傳感器 LM134及其應用1182.2 AD590集成溫度一電流傳感器原理及應用1242.3 集成溫度傳感器 AD590的應用1292.4 GS-800和 GS-130可燃氣體傳感器1332.5 集成化霍爾開關傳感器1352.6 一種新穎實用的氧氣/頻率轉換電路1392.7 MCS-51單片機與數字式溫度傳感器的接口設計1422.8 數字式溫度傳感器 SWC與 8031的接口及應用1452.9 低成本高精度壓力傳感器微機接口設計1472.10 峰值檢測電路原理及應用1512.11 用 LF398制作的實用峰值和谷值保持電路1532.12 AD637集成真有效值轉換器1562.13 傳感器信號調理模塊 ZB311622.14 2B31模塊在稱重智能儀表中的應用1662.15 傳感器信號調理模塊 2B30/2B31及其應用1692.16 高精度光纖位移測量系統的電路設計1752.17 集成電壓一電流轉換器 XTR100的工作原理及應用1792.18 傳感器信號變送器 F693及其應用1852.19 一種用兩片 VFC32構成的隔離放大器電路1912.20 實用線性隔離放大器1922.21 電橋放大電路中 7650的一些應用問題1942.22 A/D轉換器 ICL7109的應用研究1962.23 5G14433模數轉換器的啟停控制2002.24 ADC1130模數轉換器及其使用2042.25 16位 A/D轉換器 ADC1143及其與 80C31單片機的接口2082.26 串行 I/O D/A A/D轉換器與單片機的接口2132.27 單片機應用系統中的數字化傳感器接口技術2162.28 ADVFC32 A/D轉換接口技術2202.29 V/F和 F/V轉換器 TD650原理與應用2242.30 AD650與 MC-51單片機的接口技術2302.31 利用VCO電路與單片機接口實現A/D轉換2352.32 LM2907/2917系列F/V變換器在汽車檢測中的應用2382.33 單信號多通道輸入法改善 A/D轉換器性能2412.34 用多片 A們轉換芯片提高 A/D轉換速度2452.35 實時數控增益調整與浮點 ADC電路2492.36 電荷耦合器件的單片機驅動2532.37 電荷耦合器件的結構原理與單片機的軟件定時驅動2582.38 利用模數轉換器提高轉換信號的線性度2622.39 利用微型機解決轉換中的非線性問題2682.40 利用非線性曲線存儲實現線性化的方法2702.41 輸出無非線性誤差的可變電壓源單臂電橋274 第三章 控制系統與后向通道接口技術2793.1 DAC1231與單片機 8031的接口技術2803.2 單路及多路 D八的光電隔離接口技術2843.3 光電隔離高壓驅動器2903.4 TRAIC型光耦在 8031后向通道接口的應用分析2913.5 GD-L型光控晶閘管輸出光耦合器2963.6 用于晶閘管過零觸發的幾種方式3003.7 固態繼電器3043.8 固態繼電器在交流電子開關中的應用3083.9 JCG型參數固態繼電器3123.10 JCG型參數固態繼電器的應用315 3.11 介紹幾種適用于印刷電路板的超小型電磁繼電器3193.12 用TWH8751集成電路構成微機控制的三步進電機驅動電源3223.13 3-4相步進電機控制器 5G87133253.14 5G0602報警電路及應用3283.15 兩種新型溫控光控兀的應用330 第四章 人機對話通道接口技術3334.1 單片機鍵盤接口設計3344.2 由電話機集成電路構成的單片機鍵盤接口電路3364.3 用 GAL設計的一種編碼鍵盤接口3384.4 用 CMOS電路構成的非編碼觸摸鍵盤3424.5 設計薄膜開關應注意的一些問題3454.6 觸摸式電子開關集成電路 5G673及其應用3504.7 8279用于撥碼盤及顯示器的接口設計3544.8 LED數碼管的構造與特點3584.9 LED數碼管的集成驅動器及配套器件3624.10 8279芯片的顯示接口分析及32位數碼管顯示驅動電路設計366 4.11 用三端可調穩壓塊代替LED顯示器的限流電阻3704.12 液晶顯示器件的構造與特點3714.13 LCD七段顯示器與單片機的接口3744.14 液晶顯示器與單片機的接口技術3764.15 可編程LCD控制驅動器PPD72253814.16 微機總線兼容的四位 LCD驅動電路 TSC7211AM3874.17 使用8255的雙極性歸零脈沖驅動液晶顯示器接口3914.18 DMC16230型 LCD顯示模塊的接口技術3954.19 點陣式液晶顯示器原理及應用4034.20 實用液晶顯示電路4094.21 8031控制的 CRT顯示控制接口4144.22 用 8031控制多臺彩色顯示器的實現方法4194.23 高級語言處理器--T6668的結構與典型電路4234.24 延長 T6668語言電路錄放時間的方法4294.25 T6668高級語音開發站4324.26 語言處理器 T6668在電話報警系統中的應用4354.27 新型語音處理器YYH16439 第五章 網絡、通訊控制與多機系統4415.1 IBM-PC/XT和單片機通訊系統的設計4425.2 IBM-PC/XT微機與單片機的兩種通訊接口4485.3 MCS-51單片機與 IBMPC微機的串行通訊4525.4 中央控制端與 MCS-51單片機間的數據通訊4595.5 IBMPC機與 MCS-51單片機的快速數據通訊4665.6 8031單片機與 PC-1500計算機的通訊4735.7 多片 MCS-51系統的一種串行通訊方式4775.8 多單片機處理系統并行通訊的實現4815.9 半雙工遠距離電流環多機通訊接口電路4855.10 多微機系統共享 RAM電路4905.11 串行通訊中的波特率設置4925.12 在MCS-51單片機的串行通訊中實現波特率的自動整定4965.13 J274和 J275在微機分布式測控系統中的應用5005.14 單電纜傳送雙向數據5045.15 新穎的多路遙控兀編譯碼器5055.16 DTMF在單片機無線數據通訊中的應用5085.17 MCS-8031單片機在紅外遙控裝置中的應用5155.18 一種實用光纖數字遙測系統5185.19 智能儀表通訊系統中一種冗余通道的設計5245.20 EIARS-232-C接口使用中的幾個問題528 第六章 電源、電源變換與電源監視5316.1 電源擴展電路5326.2 一種簡單的直流三倍壓電路533 6.3 直流電源變換集成電路5356.4 直流電壓變換器ICL7660的應用5376.5 一種廉價高精密基準電壓源5406.6 精密可調基準電壓源及其應用5416.7 引腳可編程精密基準電壓源AD584及其應用5496.8 幾種新型恒流源集成電路5536.9 CW334三端可調恒流源及應用5576.10 電源電壓監視用芯片TL7705CP簡介5606.11 電源電壓監視用芯片TL7700簡介5646.12 WMS7705B電源監視用芯片簡介5676.13 具有HMOS結構的MCS-51系列單片機提供后備電源的方法570 第七章 系統抗于擾技術5757.1 微型計算機系統的抗干擾措施5767.2 計算機應用系統抗干擾問題5797.3 微機在工業應用中的抗干擾措施5867.4 利用電源監視TL7705芯片的抗電源于擾新方法5917.5 利用電源監視芯片WMS7705的抗電源干擾新方法5947.6 具有浪涌抑制能力的 TVP 6017.7 瞬變電壓抑制M極管TVP的特性及應用6047.8 單片機實時控制軟件抗干擾編程方法的探討6077.9 一種簡單實用的微機死機自復位抗干擾技術6107.10 單片機程序的監視保護6127.11 軟件 WATCHDOG系統615 7.12 一種實用的"看門狗"電路6187.13 高電壓下測量系統的抗干擾措施619 第八章 應用實例6218.1 單片機在多功能函數發生器中的應用6228.2 單片機波形發生器6298.3 單片機控制的調幅波發生器6338.4 用 8031單片機解調時統信號6368.5 具有 114DB動態范圍的浮點數據采集系統6418.6 電熱恒溫箱單片微機控制系統6468.7 智能 I一、C丑測試儀的原理及設計6528.8 采用 LMS算法的單片機數字交流電橋6568.9 單片微機的數字相位測試儀6598.10 單片機的氣體流量測量6628.11 單片機的相關流量儀6688.12 723型可見分光光度計6758.13 多功能微電腦電子秤6798.14 智能路面回彈檢測儀6838.15 使用 CCD的單片機動態布面檢測系統6878.16 使用 CCD的單片機激光衍射測徑系統6908.17 使用 CCD的單片機動態線徑測量儀6958.18 使用CCD的單片機中型熱軋圓鋼直徑檢測儀7018.19 用 MCS-51單片微機實現織布機的監測7058.20 單片機在工頻參量測試中的應用7098.21 單片機 8098在直線電機控制中的應用715?
上傳時間: 2014-12-28
上傳用戶:liufei
4位八段數碼管的十進制加計數仿真實驗,程序采用匯編語言編寫。此程序在仿真軟件上與EDN-51實驗板上均通過。仿真圖中的數碼管位驅動采用74HC04,如按EDN-51板上用想同的PNP三極管驅動在仿真軟件上則無法正常顯示。程序共分5塊,STAR0為數據初始化,STAR2為計數子程序,STAR3為4位數碼管動態顯示子程序,STAR4為按鍵掃描子程序,STS00是延時子程序。由于EDN-51實驗板上沒裝BCD譯碼器,所以編寫程序比較煩瑣。 程序如下: ORG 0000H LJMP STAR0 ;轉程序 SRAR0ORG 0200H ;程序地址 0200HSTAR0: CLR 00 ;位 00 清 0 MOV P1,#0FFH ;#0FFH-->P1 MOV P2,#0FH ;#0FH-->P2 MOV P0,#0FFH ;#0FFH-->P0 MOV 30H,#00H ;#00H-->30H MOV 31H,#00H ;#00H-->30H MOV 32H,#00H ;#00H-->30H MOV 33H,#00H ;#00H-->30H LJMP STAR3 ;轉程序 SRAR3STAR2: MOV A,#0AH ;#0AH-->A INC 30H ;30H+1 CJNE A,30H,STJE ;30H 與 A 比較,不等轉移 STJE MOV 30H,#00H ;#00H-->30H INC 31H ;31H+1 CJNE A,31H,STJE ;31H 與 A 比較,不等轉移 STJE MOV 31H,#00H ;#00H-->31H INC 32H ;32H+1 CJNE A,32H,STJE ;32H 與 A 比較,不等轉移 STJE MOV 32H,#00H ;#00H-->32H INC 33H ;33H+1 CJNE A,33H,STJE ;33H 與 A 比較,不等轉移 STJE MOV 33H,#00H ;#00H-->33H MOV 32H,#00H ;#00H-->32H MOV 31H,#00H ;#00H-->31H MOV 30H,#00H ;#00H-->30HSTJE: RET ;子程序調用返回STAR3: MOV R0,#30H ;#30H-->R0 MOV R6,#0F7H ;#0F7H-->R6SMG0: MOV P1,#0FFH ;#0FFH-->P1 MOV A,R6 ;R6-->A MOV P1,A ;A-->P1 RR A ;A向右移一位 MOV R6,A ;A-->R6 MOV A,@R0 ;@R0-->A ADD A,#04H ;#04H-->A MOVC A,@A+PC ;A+PC--> MOV P0,A ;A-->P0 AJMP SMG1 ;轉程序 SMG1SDATA: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H SMG1: LCALL STAR4 ;轉子程序 SRAR4 LCALL STS00 ;轉子程序 STS00 INC R0 ;R0+1 CJNE R6,#07FH,SMG0 ;#07FH 與 R6 比較,不等轉移 SMG0 AJMP STAR3 ;轉程序 SRAR3STAR4: JNB P2.0,ST1 ;P2.0=0 轉 ST1 CLR 00 ;位 00 清 0 SJMP ST3 ;轉ST3ST1: JNB 00,ST2 ;位 00=0 轉 ST2 SJMP ST3 ;轉 ST3ST2: LCALL STAR2 ;調子程序 STAR2 SETB 00 ;位 00 置 1ST3: RET ;子程序調用返回ORG 0100H ;地址 0100HSTS00: MOV 60H,#003H ;#003H-->60H (211)DE001: MOV 61H,#0FFH ;#0FFH-->61H (255)DE002: DJNZ 61H,DE002 ;61H 減 1 不等于 0 轉 DE002 DJNZ 60H,DE001 ;60H 減 1 不等于 0 轉 DE001 RET ;子程序調用返回 END ;結束 上次的程序共有293句,經小組成員建議,本人經幾天的研究寫了下面的這個程序,現在的程序用了63句,精簡了230句。功能沒有減。如誰有更簡練的程序,請發上來,大家一起學習。 4位八段數碼管的十進制加計數仿真實驗(含電路圖和仿真文件)
上傳時間: 2013-10-11
上傳用戶:sssl
6位LED顯示接口說明:P0.0---P0.7 通過7406 驅動LED的8個段;P2.0---P2.5 通過UN2003驅動6個LED 的公共端
上傳時間: 2013-10-26
上傳用戶:VRMMO
Keil uVision2是目前使用廣泛的單片機開發軟件,它集成了源程序編輯和程序調試于一體,支持匯編、C、PL/M語言。 這里我們僅僅介紹 Keil uVision2 的簡單使用,更詳細的使用方法見本光盤\單片機軟件\Keil c51\Keil書籍與資料目錄中的內容。 keil C51 v6.12 的安裝: 先運行光盤中 單片機軟件\setup\setup.exe 安裝程序,選擇安裝“Eval Version”版進行安裝。一直點擊“Yes”或“Next”,直到“Finish”完成。 之后運行同目錄中的 Keil uv2 漢化安裝.exe 安裝漢化程序。 keil C51 v6.12 的使用: 點擊桌面快捷圖標,可以直接進入主畫面:現在,我們來做個實際程序,請跟著我一步一步學著做,實際體驗一下從編輯源程序到程序調試的全過程。 這里讓我們做一個 讓單片機 P0 口所驅動的 LED 燈隔一個亮隔一個滅 的程序。 在Keil系統中,每做個獨立的程序,都視為工程(或者叫項目)。首先從菜但的“工程”中“新建工程...”,建立我們將要做的工程項目:新建的工程要起個與工程項目意義一致的名字,可以是中文名;我們這里的程序是實驗測試程序,所以起的名字為 Test ,并將 Test 工程“保存”到 C:\Keil 下:接下來,Keil環境要求我們為 Test 工程選擇一個單片機型號;我們選擇 Atmel 公司的 89C51(雖然我們使用的是89S51,但由于89S51與89C51內、外部結構完全一樣,所以這里依然選擇“89C51”)。“確定”后工程項目就算建立了。
上傳時間: 2013-10-12
上傳用戶:zzzzzz
附件有51單片機加上sl811讀寫U盤的源程序和原理圖 /*--------------------------------------------------------------------------AT89X52.H Header file for the low voltage Flash Atmel AT89C52 and AT89LV52.Copyright (c) 1995-1996 Keil Software, Inc. All rights reserved.--------------------------------------------------------------------------*/ #ifndef AT89X52_HEADER_FILE#define AT89X52_HEADER_FILE 1 /*------------------------------------------------Byte Registers------------------------------------------------*/sfr P0 = 0x80;sfr SP = 0x81;sfr DPL = 0x82;sfr DPH = 0x83;sfr PCON = 0x87;sfr TCON = 0x88;sfr TMOD = 0x89;sfr TL0 = 0x8A;sfr TL1 = 0x8B;sfr TH0 = 0x8C;sfr TH1 = 0x8D;sfr P1 = 0x90;sfr SCON = 0x98;sfr SBUF = 0x99;sfr P2 = 0xA0;sfr IE = 0xA8;sfr P3 = 0xB0;sfr IP = 0xB8;sfr T2CON = 0xC8;sfr T2MOD = 0xC9;sfr RCAP2L = 0xCA;sfr RCAP2H = 0xCB;sfr TL2 = 0xCC;sfr TH2 = 0xCD;sfr PSW = 0xD0;sfr ACC = 0xE0;sfr B = 0xF0;
上傳時間: 2014-01-05
上傳用戶:lnnn30
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) )
上傳時間: 2013-11-02
上傳用戶:zengduo
51匯編程序實例:舉一例說明:流水燈加數碼管 LOOP: ; 標號CLR P2.6 ;選中p2.6 數碼管左邊的8字使能SETB P2.7 ;p2.7不使能。 右邊的數碼管消隱MOV P0,#28H ;把28h送P0口;數碼管顯示 0LCALL DELAY ;延時MOV P0,#0FFH ;0ffh 送P0口,數碼管清除CLR P1.0 ;點亮p1.0發光管MOV P0,#7EH ;把7eh送P0口;數碼管顯示 1LCALL DELAYMOV P0,#0FFHCLR P1.1 ;點亮p1.0發光管CLR P1.0 ;點亮p1.0發光管MOV P0,#0A2H ;數碼管顯示 2LCALL DELAYMOV P0,#0FFHCLR P1.2CLR P1.1CLR P1.0MOV P0,#62H ;數碼管顯示 3LCALL DELAYMOV P0,#0FFHCLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#74H ;數碼管顯示 4LCALL DELAYMOV P0,#0FFHCLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#61H ;數碼管顯示 5;LCALL DELAYMOV P0,#0FFHCLR P1.5CLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#21H ; 數碼管顯示 6LCALL DELAYMOV P0,#0FFHCLR P1.6CLR P1.5CLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#7AH ; 數碼管顯示 7LCALL DELAYMOV P0,#0FFHCLR P1.7CLR P1.6CLR P1.5CLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#20H ; 數碼管顯示 8LCALL DELAYMOV P0,#0FFHLCALL DELAYMOV P0,#0FFHMOV P1,#0FFH;程序到此結果為左邊的數碼管顯示0,1,2,3,4,5,6,7,8;p1.0------------p1.7指示燈依次點亮SETB P2.6 ; 左邊的8消隱CLR P2.7 ;選中p2.7 數碼管右邊的8字使能 ,;MOV P0,#28HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.0MOV P0,#7EHLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.1MOV P0,#0A2HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.2MOV P0,#62HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.3MOV P0,#74HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.4MOV P0,#61HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.5MOV P0,#21HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.6MOV P0,#7AHLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHCLR P1.7MOV P0,#20HLCALL DELAYMOV P0,#0FFHMOV P1,#0FFHMOV P0,#0FFHMOV P1,#0FFH;這一段和上一段基本相同, 不同的是右邊的數碼管依次顯示012345678,左邊的不亮;;同時p1口的燈流動顯示:AJMP LOOP; 注意: 程序運行到此跳轉到開始標號,重復執行:DELAY: ;延時子程序;參考前面的教程:CLR P3.3 ;注意小喇叭在3.3口, 這里可以使小喇叭發出嗒,嗒聲MOV R7,#255NOPNOPD1:MOV R6,#255setb p3.3D2: DJNZ R6,D2clr p3.3DJNZ R7,D1SETB P3.3RETENDLOOP: ; 標號CLR P2.6 ;選中p2.6 數碼管左邊的8字使能SETB P2.7 ;p2.7不使能。 右邊的數碼管消隱MOV P0,#28H ;把28h送P0口;數碼管顯示 0 ;28為1010000LCALL DELAY ; 延時程序MOV P0,#0FFH ;0ffh 送P0口,數碼管清除;P0口為11111111CLR P1.0 ;點亮p1.0發光管; P1。0為電平,P0口為11111110MOV P0,#7EH ;把7eh送P0口;數碼管顯示 1; P1。0為低電平,P0口為11111110LCALL DELAY ; 延時程序MOV P0,#0FFHMOV P0,#0FFH ;0ffh 送P0口,數碼管清除;P0口為11111111 清一次顯示這條是清顯示的
上傳時間: 2013-10-31
上傳用戶:gundamwzc
實現動態顯示效果的方法和以上幾種基本類似,這里以滾動顯示為例作一說明。對于需要滾動的文字,可以將其設置為位圖格式,暫存于內存中,然后利用VC 提供的位圖拷貝函數BitBlt將位圖復制到顯示位置。對于特殊字符或圖形,則可以直接利用BitBlt函數調用到顯示位置。然后在類CLEDDlg的 OnTimer函數中調用該函數,以實現文字的滾動顯示。另外,也可以通過設定不同的響應時間間隔來改變文字的滾動速度。 程序清單: ORG 00H LOOP: MOV A,#0FFH ;開機初始化,清除畫面 MOV P0,A ;清除P0口 ANL P2,#00 ;清除P2口 MOV R2,#200 D100MS: MOV R3,#250 ;延時100毫秒 DJNZ R3,$ DJNZ R2,D100MS MOV 20H,#00H ;取碼指針的初值 l100: MOV R1,#100 ;每個字的停留時間 L16: MOV R6,#16 ;每個字16個碼
上傳時間: 2013-11-06
上傳用戶:zl520l
本章主要介紹51系列單片機系統擴展問題,在本章中要研究較多的硬件方面及硬軟結合方面的問題,本章與第一章關系密切,在學習本章內容之前,要先明確51系列單片機本身的系統資源,可先復習一下前面幾章的有關單片機硬件組成方面的內容。 本章將介紹以下具體內容: 系統擴展的含義、單片機的地址總線和數據總線、常見系統擴展電路舉例。§7.0 前言 1.系統擴展的含義 單片機中雖然已經集成了CPU、I/O口、定時器、中斷系統、存儲器等計算機的基本部件(即系統資源),但是對一些較復雜應用系統來說有時感到以上資源中的一種或幾種不夠用,這就需要在單片機芯片外加相應的芯片、電路,使得有關功能得以擴充,我們稱為系統擴展(即系統資源的擴充)。 2.系統擴展分類----單一功能的擴展 綜合功能的擴展3.系統擴展需要解決的問題---- 單片機與相應芯片的接口電路連接(即地址總線、數據總線、控制總線的連接)與編程。4.單片機的地址總線和數據總線 51系列單片機沒有專用的對外地址總線和數據總線,其P0口和P2口既是通用I/O口,同時P0口還是分時復用的雙向數據總線和低8位地址總線(一般需要加一級鎖存器),而P2口則是高8位地址總線5.常見系統擴展電路(1)單一功能的系統擴展 存儲器的擴展(程序存儲器、數據存儲器、E2PROM ) 外部中斷源的擴展(簡單門電路) 并行口的擴展(8155)(2)綜合功能的擴展 外部RAM、定時器、并行口擴展(8155) 存儲器、并行口、定時器擴展(多芯片)7.1.1 程序存儲器的擴展.程序存儲器的作用----存放程序代碼或常數表格 .擴展時所用芯片----一般用只讀型存儲器芯片(可以是EPROM、E2PROM、 FLASH芯片等)。 .擴展電路連接 ---- 用EPROM 2764擴展程序存儲器。 .存儲器地址分析----究竟單片機輸出什么地址值時,可以指向存儲器中的某一單元。
上傳時間: 2013-10-19
上傳用戶:zhaoq123
自制89C51單片機實驗電路板 學習單片機離不開實驗,以往單片機的實驗往往依賴于仿真機和單片機學習系統,價格昂貴,初學者很難配備。近年來,隨著FLASH型單片機的廣泛應用,采用軟件模擬加寫片驗證成為一種經濟實用的實驗方法,以AT89C51單片機為例,其價格不足¥10RMB,而擦、寫次數可以有1000次,一塊芯片即可做上千次的實驗。目前,流行的單片機開發軟件Keil可以免費獲得用于學習的EVAL版;編程器價格并不昂貴,專門用于寫89C51類芯片的編程器價格更低廉(不足百元),而且編程器也是以后開發單片機所必備的工具;相比之下,用于實驗的電路板制作比較麻煩,用萬用板搭接,只能做些很簡單的電路,稍復雜的電路一般要用到雙面板,而業余條件下是很難自制雙面板的,而且實驗電路板主要是用于學習,學完了,也就沒有什么使用價值了,所以很多人希望能夠廉價地獲得。作者在多年單片機教學(包括從事網絡教學)的基礎上,開發了一塊有較多功能但使用單面板的單片機實驗板,適于業余愛好者自制。這塊實驗板采用89C51為主芯片,板上安裝了5位數碼管,8個發光二極管,四個按鈕開關,一個簡單的音響電路,一個用于計數實驗的振蕩器,At24CXXX類芯片插座,X5045芯片插座,RS232串行接口等。使用這塊實驗板可以進行流水燈、人機界面程序設計、音響、中斷、計數器等基本編程練習,還可以學習I2C接口芯片使用、SPI接口芯片使用、與PC機進行串行通訊等目前較為流行的技術。圖1是該實驗板的電路原理圖,從圖中可以看出,該實驗板由若干塊集成電路和一些阻容元件等組成,下面我們就分別介紹。1、發光二極管接口主芯片(U1)的P1端口接了8個發光二極管,這些發光二極管的負極接到P1端口各引腳,而正極則通過一個排電阻(標號為JP4,阻值為470毆)接到正電源端,這樣,這些發光二極管亮的條件就U1的P1口相引的引腳為低電平,即如果P1口某引腳輸出為0,相應的燈亮,如果輸出為1,相應的燈滅。例:MOV P1,#0FH該行程序將使發光二極管L1-L4熄滅,而L5-L8點亮。2、數碼管接口U1的P0口和P2口的部份引腳構成了5位LED數碼管驅動電路,這里LED數碼管采用了共陽型,共陽型數碼管的筆段(即對應abcdefgh)引腳是二極管的負極,所有二極管的正極連在一起,構成公共端,即片選端,對于這種數碼管的驅動,要求在片選端提供電流,為此,使用了PNP型三極管作為片選端的驅動,共使用5只三極管,所有三極管的發射極連在一起,接到正電源端,它們的基極則分別連到P2.0⋯P2.4,這樣,當P2.0⋯P2.4中某引腳輸出是高電平時,三極管不導通,不能給相應位的數碼管供電,該位數碼管的所有筆段都不亮,反之,如果某引腳是低電平時,三極管導通,可以給相應的數碼管供電,該位數碼管是否點亮,點亮哪些筆段,取決于這些筆段引腳是高或低電平。從圖圖1 共陽型數LED顯示器.....
上傳時間: 2013-11-14
上傳用戶:dingdingcandy