串行編程器源程序(Keil C語(yǔ)言)//FID=01:AT89C2051系列編程器//實(shí)現(xiàn)編程的讀,寫(xiě),擦等細(xì)節(jié)//AT89C2051的特殊處:給XTAL一個(gè)脈沖,地址計(jì)數(shù)加1;P1的引腳排列與AT89C51相反,需要用函數(shù)轉(zhuǎn)換#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引腳排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//編程前的準(zhǔn)備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//編程結(jié)束后的工作,設(shè)置合適的引腳電平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//從P0口獲得數(shù)據(jù){ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//轉(zhuǎn)換并設(shè)置P0口的數(shù)據(jù){ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//讀特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//寫(xiě)器件{//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //寫(xiě)一個(gè)單元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效驗(yàn):循環(huán)讀,直到讀出與寫(xiě)入的數(shù)相同 { nTimeOut++; if(nTimeOut>1000)//超時(shí)了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //讀一個(gè)單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return Data;} void Lock01()//寫(xiě)鎖定位{ InitPro01();//先設(shè)置成編程狀態(tài)//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) if(ComBuf[2]>=1)//ComBuf[2]為鎖定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//設(shè)置pw中的函數(shù)指針,讓主程序可以調(diào)用上面的函數(shù){ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上傳時(shí)間: 2013-11-12
上傳用戶:gut1234567
單片機(jī)應(yīng)用技術(shù)選編(1) 第一章 單片機(jī)系統(tǒng)綜合應(yīng)用技術(shù) 11.1 且使用 8098單片機(jī)的幾點(diǎn)體會(huì) 2 1.2 單片機(jī)的冷啟動(dòng)與熱啟動(dòng) 31.3 大容量動(dòng)態(tài)存儲(chǔ)器在單片機(jī)系統(tǒng)中的應(yīng)用111.4 MCS-51單片機(jī)系統(tǒng)中動(dòng)態(tài) RAM的刷新技巧141.5 MCS-51單片機(jī)系統(tǒng)中外RAM空間超64KB的擴(kuò)展方法161.6 8031單片機(jī)P0口和P2口的應(yīng)用開(kāi)發(fā) 181.7 74LS164在 8031單片機(jī)中的兩種用法261.8 用于 8031單片機(jī)的快速I/O接口281.9 MCS-51定時(shí)器定時(shí)常數(shù)初值的精確設(shè)定法301.10 8253的翻轉(zhuǎn)問(wèn)題及 MC6840的替代方法321.11 MCS-51單片機(jī)外部中斷源的擴(kuò)展設(shè)計(jì)351.12 MCS-51單片機(jī)多外中斷擴(kuò)展方法401.13 用優(yōu)先權(quán)編碼器74LS348擴(kuò)展51系列單片機(jī)的外中斷源421.14 用優(yōu)先權(quán)編碼器74LS148擴(kuò)展51系列單片機(jī)的外中斷源471.15 8031單片機(jī)與 BG5119A漢字庫(kù)的接口方法521.16 可背插 SRAM的日歷時(shí)鐘 DS1216及其應(yīng)用551.17 實(shí)時(shí)日歷時(shí)鐘集成電路MSM5832及其時(shí)序601.18 實(shí)時(shí)日歷時(shí)鐘集成電路MSM5832的接口技術(shù)631.19 實(shí)時(shí)時(shí)鐘/日歷芯片MC146818及其應(yīng)用671.20 與 SICE仿真器通訊的IBM-PC機(jī)通訊程序的改進(jìn)741.21 代碼形式參數(shù)匯編子程序的應(yīng)用821.22 單片機(jī)應(yīng)用系統(tǒng)中的查表程序設(shè)計(jì)861.23 用狀態(tài)綜合法設(shè)計(jì)鍵盤(pán)監(jiān)控程序901.24 單片機(jī)系統(tǒng)程序的加密技術(shù)961.25 MCS-96單片機(jī)程序保密的幾種方法1001.26 GAL輸出宏單元原理及使用105 1.27 通用陣列邏輯 GAL應(yīng)用于步進(jìn)電機(jī)控制實(shí)例110 第二章 傳感器與前向通道接口技術(shù)1172.1 集成溫度傳感器 LM134及其應(yīng)用1182.2 AD590集成溫度一電流傳感器原理及應(yīng)用1242.3 集成溫度傳感器 AD590的應(yīng)用1292.4 GS-800和 GS-130可燃?xì)怏w傳感器1332.5 集成化霍爾開(kāi)關(guān)傳感器1352.6 一種新穎實(shí)用的氧氣/頻率轉(zhuǎn)換電路1392.7 MCS-51單片機(jī)與數(shù)字式溫度傳感器的接口設(shè)計(jì)1422.8 數(shù)字式溫度傳感器 SWC與 8031的接口及應(yīng)用1452.9 低成本高精度壓力傳感器微機(jī)接口設(shè)計(jì)1472.10 峰值檢測(cè)電路原理及應(yīng)用1512.11 用 LF398制作的實(shí)用峰值和谷值保持電路1532.12 AD637集成真有效值轉(zhuǎn)換器1562.13 傳感器信號(hào)調(diào)理模塊 ZB311622.14 2B31模塊在稱重智能儀表中的應(yīng)用1662.15 傳感器信號(hào)調(diào)理模塊 2B30/2B31及其應(yīng)用1692.16 高精度光纖位移測(cè)量系統(tǒng)的電路設(shè)計(jì)1752.17 集成電壓一電流轉(zhuǎn)換器 XTR100的工作原理及應(yīng)用1792.18 傳感器信號(hào)變送器 F693及其應(yīng)用1852.19 一種用兩片 VFC32構(gòu)成的隔離放大器電路1912.20 實(shí)用線性隔離放大器1922.21 電橋放大電路中 7650的一些應(yīng)用問(wèn)題1942.22 A/D轉(zhuǎn)換器 ICL7109的應(yīng)用研究1962.23 5G14433模數(shù)轉(zhuǎn)換器的啟停控制2002.24 ADC1130模數(shù)轉(zhuǎn)換器及其使用2042.25 16位 A/D轉(zhuǎn)換器 ADC1143及其與 80C31單片機(jī)的接口2082.26 串行 I/O D/A A/D轉(zhuǎn)換器與單片機(jī)的接口2132.27 單片機(jī)應(yīng)用系統(tǒng)中的數(shù)字化傳感器接口技術(shù)2162.28 ADVFC32 A/D轉(zhuǎn)換接口技術(shù)2202.29 V/F和 F/V轉(zhuǎn)換器 TD650原理與應(yīng)用2242.30 AD650與 MC-51單片機(jī)的接口技術(shù)2302.31 利用VCO電路與單片機(jī)接口實(shí)現(xiàn)A/D轉(zhuǎn)換2352.32 LM2907/2917系列F/V變換器在汽車檢測(cè)中的應(yīng)用2382.33 單信號(hào)多通道輸入法改善 A/D轉(zhuǎn)換器性能2412.34 用多片 A們轉(zhuǎn)換芯片提高 A/D轉(zhuǎn)換速度2452.35 實(shí)時(shí)數(shù)控增益調(diào)整與浮點(diǎn) ADC電路2492.36 電荷耦合器件的單片機(jī)驅(qū)動(dòng)2532.37 電荷耦合器件的結(jié)構(gòu)原理與單片機(jī)的軟件定時(shí)驅(qū)動(dòng)2582.38 利用模數(shù)轉(zhuǎn)換器提高轉(zhuǎn)換信號(hào)的線性度2622.39 利用微型機(jī)解決轉(zhuǎn)換中的非線性問(wèn)題2682.40 利用非線性曲線存儲(chǔ)實(shí)現(xiàn)線性化的方法2702.41 輸出無(wú)非線性誤差的可變電壓源單臂電橋274 第三章 控制系統(tǒng)與后向通道接口技術(shù)2793.1 DAC1231與單片機(jī) 8031的接口技術(shù)2803.2 單路及多路 D八的光電隔離接口技術(shù)2843.3 光電隔離高壓驅(qū)動(dòng)器2903.4 TRAIC型光耦在 8031后向通道接口的應(yīng)用分析2913.5 GD-L型光控晶閘管輸出光耦合器2963.6 用于晶閘管過(guò)零觸發(fā)的幾種方式3003.7 固態(tài)繼電器3043.8 固態(tài)繼電器在交流電子開(kāi)關(guān)中的應(yīng)用3083.9 JCG型參數(shù)固態(tài)繼電器3123.10 JCG型參數(shù)固態(tài)繼電器的應(yīng)用315 3.11 介紹幾種適用于印刷電路板的超小型電磁繼電器3193.12 用TWH8751集成電路構(gòu)成微機(jī)控制的三步進(jìn)電機(jī)驅(qū)動(dòng)電源3223.13 3-4相步進(jìn)電機(jī)控制器 5G87133253.14 5G0602報(bào)警電路及應(yīng)用3283.15 兩種新型溫控光控兀的應(yīng)用330 第四章 人機(jī)對(duì)話通道接口技術(shù)3334.1 單片機(jī)鍵盤(pán)接口設(shè)計(jì)3344.2 由電話機(jī)集成電路構(gòu)成的單片機(jī)鍵盤(pán)接口電路3364.3 用 GAL設(shè)計(jì)的一種編碼鍵盤(pán)接口3384.4 用 CMOS電路構(gòu)成的非編碼觸摸鍵盤(pán)3424.5 設(shè)計(jì)薄膜開(kāi)關(guān)應(yīng)注意的一些問(wèn)題3454.6 觸摸式電子開(kāi)關(guān)集成電路 5G673及其應(yīng)用3504.7 8279用于撥碼盤(pán)及顯示器的接口設(shè)計(jì)3544.8 LED數(shù)碼管的構(gòu)造與特點(diǎn)3584.9 LED數(shù)碼管的集成驅(qū)動(dòng)器及配套器件3624.10 8279芯片的顯示接口分析及32位數(shù)碼管顯示驅(qū)動(dòng)電路設(shè)計(jì)366 4.11 用三端可調(diào)穩(wěn)壓塊代替LED顯示器的限流電阻3704.12 液晶顯示器件的構(gòu)造與特點(diǎn)3714.13 LCD七段顯示器與單片機(jī)的接口3744.14 液晶顯示器與單片機(jī)的接口技術(shù)3764.15 可編程LCD控制驅(qū)動(dòng)器PPD72253814.16 微機(jī)總線兼容的四位 LCD驅(qū)動(dòng)電路 TSC7211AM3874.17 使用8255的雙極性歸零脈沖驅(qū)動(dòng)液晶顯示器接口3914.18 DMC16230型 LCD顯示模塊的接口技術(shù)3954.19 點(diǎn)陣式液晶顯示器原理及應(yīng)用4034.20 實(shí)用液晶顯示電路4094.21 8031控制的 CRT顯示控制接口4144.22 用 8031控制多臺(tái)彩色顯示器的實(shí)現(xiàn)方法4194.23 高級(jí)語(yǔ)言處理器--T6668的結(jié)構(gòu)與典型電路4234.24 延長(zhǎng) T6668語(yǔ)言電路錄放時(shí)間的方法4294.25 T6668高級(jí)語(yǔ)音開(kāi)發(fā)站4324.26 語(yǔ)言處理器 T6668在電話報(bào)警系統(tǒng)中的應(yīng)用4354.27 新型語(yǔ)音處理器YYH16439 第五章 網(wǎng)絡(luò)、通訊控制與多機(jī)系統(tǒng)4415.1 IBM-PC/XT和單片機(jī)通訊系統(tǒng)的設(shè)計(jì)4425.2 IBM-PC/XT微機(jī)與單片機(jī)的兩種通訊接口4485.3 MCS-51單片機(jī)與 IBMPC微機(jī)的串行通訊4525.4 中央控制端與 MCS-51單片機(jī)間的數(shù)據(jù)通訊4595.5 IBMPC機(jī)與 MCS-51單片機(jī)的快速數(shù)據(jù)通訊4665.6 8031單片機(jī)與 PC-1500計(jì)算機(jī)的通訊4735.7 多片 MCS-51系統(tǒng)的一種串行通訊方式4775.8 多單片機(jī)處理系統(tǒng)并行通訊的實(shí)現(xiàn)4815.9 半雙工遠(yuǎn)距離電流環(huán)多機(jī)通訊接口電路4855.10 多微機(jī)系統(tǒng)共享 RAM電路4905.11 串行通訊中的波特率設(shè)置4925.12 在MCS-51單片機(jī)的串行通訊中實(shí)現(xiàn)波特率的自動(dòng)整定4965.13 J274和 J275在微機(jī)分布式測(cè)控系統(tǒng)中的應(yīng)用5005.14 單電纜傳送雙向數(shù)據(jù)5045.15 新穎的多路遙控兀編譯碼器5055.16 DTMF在單片機(jī)無(wú)線數(shù)據(jù)通訊中的應(yīng)用5085.17 MCS-8031單片機(jī)在紅外遙控裝置中的應(yīng)用5155.18 一種實(shí)用光纖數(shù)字遙測(cè)系統(tǒng)5185.19 智能儀表通訊系統(tǒng)中一種冗余通道的設(shè)計(jì)5245.20 EIARS-232-C接口使用中的幾個(gè)問(wèn)題528 第六章 電源、電源變換與電源監(jiān)視5316.1 電源擴(kuò)展電路5326.2 一種簡(jiǎn)單的直流三倍壓電路533 6.3 直流電源變換集成電路5356.4 直流電壓變換器ICL7660的應(yīng)用5376.5 一種廉價(jià)高精密基準(zhǔn)電壓源5406.6 精密可調(diào)基準(zhǔn)電壓源及其應(yīng)用5416.7 引腳可編程精密基準(zhǔn)電壓源AD584及其應(yīng)用5496.8 幾種新型恒流源集成電路5536.9 CW334三端可調(diào)恒流源及應(yīng)用5576.10 電源電壓監(jiān)視用芯片TL7705CP簡(jiǎn)介5606.11 電源電壓監(jiān)視用芯片TL7700簡(jiǎn)介5646.12 WMS7705B電源監(jiān)視用芯片簡(jiǎn)介5676.13 具有HMOS結(jié)構(gòu)的MCS-51系列單片機(jī)提供后備電源的方法570 第七章 系統(tǒng)抗于擾技術(shù)5757.1 微型計(jì)算機(jī)系統(tǒng)的抗干擾措施5767.2 計(jì)算機(jī)應(yīng)用系統(tǒng)抗干擾問(wèn)題5797.3 微機(jī)在工業(yè)應(yīng)用中的抗干擾措施5867.4 利用電源監(jiān)視TL7705芯片的抗電源于擾新方法5917.5 利用電源監(jiān)視芯片WMS7705的抗電源干擾新方法5947.6 具有浪涌抑制能力的 TVP 6017.7 瞬變電壓抑制M極管TVP的特性及應(yīng)用6047.8 單片機(jī)實(shí)時(shí)控制軟件抗干擾編程方法的探討6077.9 一種簡(jiǎn)單實(shí)用的微機(jī)死機(jī)自復(fù)位抗干擾技術(shù)6107.10 單片機(jī)程序的監(jiān)視保護(hù)6127.11 軟件 WATCHDOG系統(tǒng)615 7.12 一種實(shí)用的"看門狗"電路6187.13 高電壓下測(cè)量系統(tǒng)的抗干擾措施619 第八章 應(yīng)用實(shí)例6218.1 單片機(jī)在多功能函數(shù)發(fā)生器中的應(yīng)用6228.2 單片機(jī)波形發(fā)生器6298.3 單片機(jī)控制的調(diào)幅波發(fā)生器6338.4 用 8031單片機(jī)解調(diào)時(shí)統(tǒng)信號(hào)6368.5 具有 114DB動(dòng)態(tài)范圍的浮點(diǎn)數(shù)據(jù)采集系統(tǒng)6418.6 電熱恒溫箱單片微機(jī)控制系統(tǒng)6468.7 智能 I一、C丑測(cè)試儀的原理及設(shè)計(jì)6528.8 采用 LMS算法的單片機(jī)數(shù)字交流電橋6568.9 單片微機(jī)的數(shù)字相位測(cè)試儀6598.10 單片機(jī)的氣體流量測(cè)量6628.11 單片機(jī)的相關(guān)流量?jī)x6688.12 723型可見(jiàn)分光光度計(jì)6758.13 多功能微電腦電子秤6798.14 智能路面回彈檢測(cè)儀6838.15 使用 CCD的單片機(jī)動(dòng)態(tài)布面檢測(cè)系統(tǒng)6878.16 使用 CCD的單片機(jī)激光衍射測(cè)徑系統(tǒng)6908.17 使用 CCD的單片機(jī)動(dòng)態(tài)線徑測(cè)量?jī)x6958.18 使用CCD的單片機(jī)中型熱軋圓鋼直徑檢測(cè)儀7018.19 用 MCS-51單片微機(jī)實(shí)現(xiàn)織布機(jī)的監(jiān)測(cè)7058.20 單片機(jī)在工頻參量測(cè)試中的應(yīng)用7098.21 單片機(jī) 8098在直線電機(jī)控制中的應(yīng)用715?
標(biāo)簽: 單片機(jī) 應(yīng)用技術(shù)
上傳時(shí)間: 2014-12-28
上傳用戶:liufei
Keil uVision2是目前使用廣泛的單片機(jī)開(kāi)發(fā)軟件,它集成了源程序編輯和程序調(diào)試于一體,支持匯編、C、PL/M語(yǔ)言。 這里我們僅僅介紹 Keil uVision2 的簡(jiǎn)單使用,更詳細(xì)的使用方法見(jiàn)本光盤(pán)\單片機(jī)軟件\Keil c51\Keil書(shū)籍與資料目錄中的內(nèi)容。 keil C51 v6.12 的安裝: 先運(yùn)行光盤(pán)中 單片機(jī)軟件\setup\setup.exe 安裝程序,選擇安裝“Eval Version”版進(jìn)行安裝。一直點(diǎn)擊“Yes”或“Next”,直到“Finish”完成。 之后運(yùn)行同目錄中的 Keil uv2 漢化安裝.exe 安裝漢化程序。 keil C51 v6.12 的使用: 點(diǎn)擊桌面快捷圖標(biāo),可以直接進(jìn)入主畫(huà)面:現(xiàn)在,我們來(lái)做個(gè)實(shí)際程序,請(qǐng)跟著我一步一步學(xué)著做,實(shí)際體驗(yàn)一下從編輯源程序到程序調(diào)試的全過(guò)程。 這里讓我們做一個(gè) 讓單片機(jī) P0 口所驅(qū)動(dòng)的 LED 燈隔一個(gè)亮隔一個(gè)滅 的程序。 在Keil系統(tǒng)中,每做個(gè)獨(dú)立的程序,都視為工程(或者叫項(xiàng)目)。首先從菜但的“工程”中“新建工程...”,建立我們將要做的工程項(xiàng)目:新建的工程要起個(gè)與工程項(xiàng)目意義一致的名字,可以是中文名;我們這里的程序是實(shí)驗(yàn)測(cè)試程序,所以起的名字為 Test ,并將 Test 工程“保存”到 C:\Keil 下:接下來(lái),Keil環(huán)境要求我們?yōu)?Test 工程選擇一個(gè)單片機(jī)型號(hào);我們選擇 Atmel 公司的 89C51(雖然我們使用的是89S51,但由于89S51與89C51內(nèi)、外部結(jié)構(gòu)完全一樣,所以這里依然選擇“89C51”)。“確定”后工程項(xiàng)目就算建立了。
上傳時(shí)間: 2013-10-12
上傳用戶:zzzzzz
51匯編程序?qū)嵗号e一例說(shuō)明:流水燈加數(shù)碼管 LOOP: ; 標(biāo)號(hào)CLR P2.6 ;選中p2.6 數(shù)碼管左邊的8字使能SETB P2.7 ;p2.7不使能。 右邊的數(shù)碼管消隱MOV P0,#28H ;把28h送P0口;數(shù)碼管顯示 0LCALL DELAY ;延時(shí)MOV P0,#0FFH ;0ffh 送P0口,數(shù)碼管清除CLR P1.0 ;點(diǎn)亮p1.0發(fā)光管MOV P0,#7EH ;把7eh送P0口;數(shù)碼管顯示 1LCALL DELAYMOV P0,#0FFHCLR P1.1 ;點(diǎn)亮p1.0發(fā)光管CLR P1.0 ;點(diǎn)亮p1.0發(fā)光管MOV P0,#0A2H ;數(shù)碼管顯示 2LCALL DELAYMOV P0,#0FFHCLR P1.2CLR P1.1CLR P1.0MOV P0,#62H ;數(shù)碼管顯示 3LCALL DELAYMOV P0,#0FFHCLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#74H ;數(shù)碼管顯示 4LCALL DELAYMOV P0,#0FFHCLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#61H ;數(shù)碼管顯示 5;LCALL DELAYMOV P0,#0FFHCLR P1.5CLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#21H ; 數(shù)碼管顯示 6LCALL DELAYMOV P0,#0FFHCLR P1.6CLR P1.5CLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#7AH ; 數(shù)碼管顯示 7LCALL DELAYMOV P0,#0FFHCLR P1.7CLR P1.6CLR P1.5CLR P1.4CLR P1.3CLR P1.2CLR P1.1CLR P1.0MOV P0,#20H ; 數(shù)碼管顯示 8LCALL DELAYMOV P0,#0FFHLCALL DELAYMOV P0,#0FFHMOV P1,#0FFH;程序到此結(jié)果為左邊的數(shù)碼管顯示0,1,2,3,4,5,6,7,8;p1.0------------p1.7指示燈依次點(diǎn)亮SETB P2.6 ; 左邊的8消隱CLR P2.7 ;選中p2.7 數(shù)碼管右邊的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;這一段和上一段基本相同, 不同的是右邊的數(shù)碼管依次顯示012345678,左邊的不亮;;同時(shí)p1口的燈流動(dòng)顯示:AJMP LOOP; 注意: 程序運(yùn)行到此跳轉(zhuǎn)到開(kāi)始標(biāo)號(hào),重復(fù)執(zhí)行:DELAY: ;延時(shí)子程序;參考前面的教程:CLR P3.3 ;注意小喇叭在3.3口, 這里可以使小喇叭發(fā)出嗒,嗒聲MOV R7,#255NOPNOPD1:MOV R6,#255setb p3.3D2: DJNZ R6,D2clr p3.3DJNZ R7,D1SETB P3.3RETENDLOOP: ; 標(biāo)號(hào)CLR P2.6 ;選中p2.6 數(shù)碼管左邊的8字使能SETB P2.7 ;p2.7不使能。 右邊的數(shù)碼管消隱MOV P0,#28H ;把28h送P0口;數(shù)碼管顯示 0 ;28為1010000LCALL DELAY ; 延時(shí)程序MOV P0,#0FFH ;0ffh 送P0口,數(shù)碼管清除;P0口為11111111CLR P1.0 ;點(diǎn)亮p1.0發(fā)光管; P1。0為電平,P0口為11111110MOV P0,#7EH ;把7eh送P0口;數(shù)碼管顯示 1; P1。0為低電平,P0口為11111110LCALL DELAY ; 延時(shí)程序MOV P0,#0FFHMOV P0,#0FFH ;0ffh 送P0口,數(shù)碼管清除;P0口為11111111 清一次顯示這條是清顯示的
標(biāo)簽: 匯編 上傳時(shí)間: 2013-10-31
上傳用戶:gundamwzc
實(shí)現(xiàn)動(dòng)態(tài)顯示效果的方法和以上幾種基本類似,這里以滾動(dòng)顯示為例作一說(shuō)明。對(duì)于需要滾動(dòng)的文字,可以將其設(shè)置為位圖格式,暫存于內(nèi)存中,然后利用VC 提供的位圖拷貝函數(shù)BitBlt將位圖復(fù)制到顯示位置。對(duì)于特殊字符或圖形,則可以直接利用BitBlt函數(shù)調(diào)用到顯示位置。然后在類CLEDDlg的 OnTimer函數(shù)中調(diào)用該函數(shù),以實(shí)現(xiàn)文字的滾動(dòng)顯示。另外,也可以通過(guò)設(shè)定不同的響應(yīng)時(shí)間間隔來(lái)改變文字的滾動(dòng)速度。 程序清單: ORG 00H LOOP: MOV A,#0FFH ;開(kāi)機(jī)初始化,清除畫(huà)面 MOV P0,A ;清除P0口 ANL P2,#00 ;清除P2口 MOV R2,#200 D100MS: MOV R3,#250 ;延時(shí)100毫秒 DJNZ R3,$ DJNZ R2,D100MS MOV 20H,#00H ;取碼指針的初值 l100: MOV R1,#100 ;每個(gè)字的停留時(shí)間 L16: MOV R6,#16 ;每個(gè)字16個(gè)碼
標(biāo)簽: LED 顯示屏 動(dòng)態(tài)顯示 程序
上傳時(shí)間: 2013-11-06
上傳用戶:zl520l
本章主要介紹51系列單片機(jī)系統(tǒng)擴(kuò)展問(wèn)題,在本章中要研究較多的硬件方面及硬軟結(jié)合方面的問(wèn)題,本章與第一章關(guān)系密切,在學(xué)習(xí)本章內(nèi)容之前,要先明確51系列單片機(jī)本身的系統(tǒng)資源,可先復(fù)習(xí)一下前面幾章的有關(guān)單片機(jī)硬件組成方面的內(nèi)容。 本章將介紹以下具體內(nèi)容: 系統(tǒng)擴(kuò)展的含義、單片機(jī)的地址總線和數(shù)據(jù)總線、常見(jiàn)系統(tǒng)擴(kuò)展電路舉例。§7.0 前言 1.系統(tǒng)擴(kuò)展的含義 單片機(jī)中雖然已經(jīng)集成了CPU、I/O口、定時(shí)器、中斷系統(tǒng)、存儲(chǔ)器等計(jì)算機(jī)的基本部件(即系統(tǒng)資源),但是對(duì)一些較復(fù)雜應(yīng)用系統(tǒng)來(lái)說(shuō)有時(shí)感到以上資源中的一種或幾種不夠用,這就需要在單片機(jī)芯片外加相應(yīng)的芯片、電路,使得有關(guān)功能得以擴(kuò)充,我們稱為系統(tǒng)擴(kuò)展(即系統(tǒng)資源的擴(kuò)充)。 2.系統(tǒng)擴(kuò)展分類----單一功能的擴(kuò)展 綜合功能的擴(kuò)展3.系統(tǒng)擴(kuò)展需要解決的問(wèn)題---- 單片機(jī)與相應(yīng)芯片的接口電路連接(即地址總線、數(shù)據(jù)總線、控制總線的連接)與編程。4.單片機(jī)的地址總線和數(shù)據(jù)總線 51系列單片機(jī)沒(méi)有專用的對(duì)外地址總線和數(shù)據(jù)總線,其P0口和P2口既是通用I/O口,同時(shí)P0口還是分時(shí)復(fù)用的雙向數(shù)據(jù)總線和低8位地址總線(一般需要加一級(jí)鎖存器),而P2口則是高8位地址總線5.常見(jiàn)系統(tǒng)擴(kuò)展電路(1)單一功能的系統(tǒng)擴(kuò)展 存儲(chǔ)器的擴(kuò)展(程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、E2PROM ) 外部中斷源的擴(kuò)展(簡(jiǎn)單門電路) 并行口的擴(kuò)展(8155)(2)綜合功能的擴(kuò)展 外部RAM、定時(shí)器、并行口擴(kuò)展(8155) 存儲(chǔ)器、并行口、定時(shí)器擴(kuò)展(多芯片)7.1.1 程序存儲(chǔ)器的擴(kuò)展.程序存儲(chǔ)器的作用----存放程序代碼或常數(shù)表格 .擴(kuò)展時(shí)所用芯片----一般用只讀型存儲(chǔ)器芯片(可以是EPROM、E2PROM、 FLASH芯片等)。 .擴(kuò)展電路連接 ---- 用EPROM 2764擴(kuò)展程序存儲(chǔ)器。 .存儲(chǔ)器地址分析----究竟單片機(jī)輸出什么地址值時(shí),可以指向存儲(chǔ)器中的某一單元。
標(biāo)簽: MCS 51 單片機(jī) 系統(tǒng)擴(kuò)展
上傳時(shí)間: 2013-10-19
上傳用戶:zhaoq123
自制89C51單片機(jī)實(shí)驗(yàn)電路板 學(xué)習(xí)單片機(jī)離不開(kāi)實(shí)驗(yàn),以往單片機(jī)的實(shí)驗(yàn)往往依賴于仿真機(jī)和單片機(jī)學(xué)習(xí)系統(tǒng),價(jià)格昂貴,初學(xué)者很難配備。近年來(lái),隨著FLASH型單片機(jī)的廣泛應(yīng)用,采用軟件模擬加寫(xiě)片驗(yàn)證成為一種經(jīng)濟(jì)實(shí)用的實(shí)驗(yàn)方法,以AT89C51單片機(jī)為例,其價(jià)格不足¥10RMB,而擦、寫(xiě)次數(shù)可以有1000次,一塊芯片即可做上千次的實(shí)驗(yàn)。目前,流行的單片機(jī)開(kāi)發(fā)軟件Keil可以免費(fèi)獲得用于學(xué)習(xí)的EVAL版;編程器價(jià)格并不昂貴,專門用于寫(xiě)89C51類芯片的編程器價(jià)格更低廉(不足百元),而且編程器也是以后開(kāi)發(fā)單片機(jī)所必備的工具;相比之下,用于實(shí)驗(yàn)的電路板制作比較麻煩,用萬(wàn)用板搭接,只能做些很簡(jiǎn)單的電路,稍復(fù)雜的電路一般要用到雙面板,而業(yè)余條件下是很難自制雙面板的,而且實(shí)驗(yàn)電路板主要是用于學(xué)習(xí),學(xué)完了,也就沒(méi)有什么使用價(jià)值了,所以很多人希望能夠廉價(jià)地獲得。作者在多年單片機(jī)教學(xué)(包括從事網(wǎng)絡(luò)教學(xué))的基礎(chǔ)上,開(kāi)發(fā)了一塊有較多功能但使用單面板的單片機(jī)實(shí)驗(yàn)板,適于業(yè)余愛(ài)好者自制。這塊實(shí)驗(yàn)板采用89C51為主芯片,板上安裝了5位數(shù)碼管,8個(gè)發(fā)光二極管,四個(gè)按鈕開(kāi)關(guān),一個(gè)簡(jiǎn)單的音響電路,一個(gè)用于計(jì)數(shù)實(shí)驗(yàn)的振蕩器,At24CXXX類芯片插座,X5045芯片插座,RS232串行接口等。使用這塊實(shí)驗(yàn)板可以進(jìn)行流水燈、人機(jī)界面程序設(shè)計(jì)、音響、中斷、計(jì)數(shù)器等基本編程練習(xí),還可以學(xué)習(xí)I2C接口芯片使用、SPI接口芯片使用、與PC機(jī)進(jìn)行串行通訊等目前較為流行的技術(shù)。圖1是該實(shí)驗(yàn)板的電路原理圖,從圖中可以看出,該實(shí)驗(yàn)板由若干塊集成電路和一些阻容元件等組成,下面我們就分別介紹。1、發(fā)光二極管接口主芯片(U1)的P1端口接了8個(gè)發(fā)光二極管,這些發(fā)光二極管的負(fù)極接到P1端口各引腳,而正極則通過(guò)一個(gè)排電阻(標(biāo)號(hào)為JP4,阻值為470毆)接到正電源端,這樣,這些發(fā)光二極管亮的條件就U1的P1口相引的引腳為低電平,即如果P1口某引腳輸出為0,相應(yīng)的燈亮,如果輸出為1,相應(yīng)的燈滅。例:MOV P1,#0FH該行程序?qū)⑹拱l(fā)光二極管L1-L4熄滅,而L5-L8點(diǎn)亮。2、數(shù)碼管接口U1的P0口和P2口的部份引腳構(gòu)成了5位LED數(shù)碼管驅(qū)動(dòng)電路,這里L(fēng)ED數(shù)碼管采用了共陽(yáng)型,共陽(yáng)型數(shù)碼管的筆段(即對(duì)應(yīng)abcdefgh)引腳是二極管的負(fù)極,所有二極管的正極連在一起,構(gòu)成公共端,即片選端,對(duì)于這種數(shù)碼管的驅(qū)動(dòng),要求在片選端提供電流,為此,使用了PNP型三極管作為片選端的驅(qū)動(dòng),共使用5只三極管,所有三極管的發(fā)射極連在一起,接到正電源端,它們的基極則分別連到P2.0⋯P2.4,這樣,當(dāng)P2.0⋯P2.4中某引腳輸出是高電平時(shí),三極管不導(dǎo)通,不能給相應(yīng)位的數(shù)碼管供電,該位數(shù)碼管的所有筆段都不亮,反之,如果某引腳是低電平時(shí),三極管導(dǎo)通,可以給相應(yīng)的數(shù)碼管供電,該位數(shù)碼管是否點(diǎn)亮,點(diǎn)亮哪些筆段,取決于這些筆段引腳是高或低電平。從圖圖1 共陽(yáng)型數(shù)LED顯示器.....
標(biāo)簽: 89C51 單片機(jī)實(shí)驗(yàn)板
上傳時(shí)間: 2013-11-14
上傳用戶:dingdingcandy
程序名:在MCS51多功能實(shí)驗(yàn)板制作電子鐘 電路介紹:由于實(shí)驗(yàn)板只有4位數(shù)碼顯示器,因此規(guī)定個(gè)位、十位顯示秒信號(hào);百位、千位顯示分信號(hào);P0口 的前四位和后四位LED顯示時(shí)信號(hào)。
標(biāo)簽: MCS 實(shí)驗(yàn)板 51 程序
上傳時(shí)間: 2015-09-05
上傳用戶:王楚楚
八路電壓表程序(使用AT89C52單片機(jī),12MHZ晶振,P0口讀入AD值,P2口作AD控制,用共陽(yáng)LED數(shù)碼管)
上傳時(shí)間: 2013-12-22
上傳用戶:CHENKAI
0~99按鍵計(jì)數(shù)器 ,P0口為段選,P1口為位選
標(biāo)簽: 99 按鍵 計(jì)數(shù)器
上傳時(shí)間: 2013-12-23
上傳用戶:dbs012280
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1