單片機語言C51應用實戰集錦使用C語言開發速度快,代碼可重復使用,程序結構清晰、易懂、易維護,易開發一些比較大型的項目。目前,許多編譯器都已經支持了C51,而且是Windows視窗界面。Kelic51是目前單片機開發最為流行的軟件。本書收集并整理了許多實用的采用C51單片機開發的程序,這些程序既可以給讀者以開拓思路,參考的用途又是實際的開發程序,可以直接作為程序應用在相同的開發系統上。通過本書的學習,讀者可以進一步了解和掌握C51編程的思路和方法。單片機語言C51應用實戰集錦目錄:程序一 實時時鐘芯片DS1302的C51程序例子程序二 C430與CSI的一點區別程序三 一個菜單的例子程序四 DS1820單芯片溫度測量程序五 keilc 6.20c版直接嵌入匯編的方法程序六 用計算機并口模擬SPI通信的C源程序程序七 CRC 16-SIANDARD的快速算法程序八 在PC上用并行口模擬I(平方)C總線的C源代碼程序九 一種在C51中寫二進制的方法程序十 CRC算法原理及C語言實現程序十一 軟件陷階程序十二 一個簡單的VB串口發送程序程序十三 12864漢字液晶顯示驅動程序程序十四 12232點陣液晶基本驅動程序程序十五 串口中斷服務函數集程序十六 93C46讀寫程序程序十七 20045讀寫程序程序十八 一組小程序集錦程序十九 AVR asm源程序程序二十 AVR單片機一個簡單的通信程序程序二十一 TG19264A接口程序程序二十二 TG19264A接口程序(AVR模擬方式)程序二十三 常用的幾種碼制轉換BCD,HEX,BIN程序二十四 16x2字符液晶屏驅動演示程序一程序二十五 16x2字符液晶屏驅動演示程序二程序二十六 PS7219代碼程序二十七 2051的AD代碼程序二十八 ARV19264型液晶顯示字庫程序二十九 液晶CKW19264A型接口程序(模擬方式)程序三十 I(平方)C總線驅動程序程序三十一 240128型液晶代碼程序三十二 飛機游戲程序三十三 PC鍵代碼程序三十四 拼音輸入法模塊程序三十五 串行口代碼程序三十六 蛇游戲代碼程序三十七 與液晶模塊T6963C連接代碼程序三十八 鍵盤輸入法設計草案程序三十九 16*4液晶漢字代碼程序四十 智能化家電控制附錄C 單片機C51編程幾個有用的模塊附錄D 頭文件W77E58.h附錄A MCS-51單片機定點運算子程序庫附錄B MCS-51單片機浮點運算子程序庫
上傳時間: 2013-11-02
上傳用戶:kbnswdifs
Lattice 下載電纜導致單板無法上電案例一則及解決方案:Lattice下載電纜連接單板時JTAG 連接器VCC 管腳會呈現一個計算機并口竄過來的電壓,該電壓對VCC 電源來說是一個干擾電壓。若電源對該電壓敏感,則有可能造成VCC 無法正常上電。在JTAG 連接器VCC 管腳上串接一個肖特基二極管可解決此問題。
上傳時間: 2013-10-19
上傳用戶:sdlqbbla
含原理圖+電路圖+程序的波形發生器:在工作中,我們常常會用到波形發生器,它是使用頻度很高的電子儀器?,F在的波形發生器都采用單片機來構成。單片機波形發生器是以單片機核心,配相應的外圍電路和功能軟件,能實現各種波形發生的應用系統,它由硬件部分和軟件部分組成,硬件是系統的基礎,軟件則是在硬件的基礎上,對其合理的調配和使用,從而完成波形發生的任務。 波形發生器的技術指標:(1) 波形類型:方型、正弦波、三角波、鋸齒波;(2) 幅值電壓:1V、2V、3V、4V、5V;(3) 頻率值:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4) 輸出極性:雙極性操作設計1、 機器通電后,系統進行初始化,LED在面板上顯示6個0,表示系統處于初始狀態,等待用戶輸入設置命令,此時,無任何波形信號輸出。2、 用戶按下“F”、“V”、“W”,可以分別進入頻率,幅值波形設置,使系統進入設置狀態,相應的數碼管顯示“一”,此時,按其它鍵,無效;3、 在進入某一設置狀態后,輸入0~9等數字鍵,(數字鍵僅在設置狀態時,有效)為欲輸出的波形設置相應參數,LED將參數顯示在面板上;4、 如果在設置中,要改變已設定的參數,可按下“CL”鍵,清除所有已設定參數,系統恢復初始狀態,LED顯示6個0,等待重新輸入命令;5、 當必要的參數設定完畢后,所有參數顯示于LED上,用戶按下“EN”鍵,系統會將各波形參數傳遞到波形產生模塊中,以便控制波形發生,實現不同頻率,不同電壓幅值,不同類型波形的輸出;6、 用戶按下“EN”鍵后,波形發生器開始輸出滿足參數的波形信號,面板上相應類型的運行指示燈閃爍,表示波形正在輸出,LED顯示波形類型編號,頻率值、電壓幅值等波形參數;7、 波形發生器在輸出信號時,按下任意一個鍵,就停止波形信號輸出,等待重新設置參數,設置過程如上所述,如果不改變參數,可按下“EN”鍵,繼續輸出原波形信號;8、 要停止波形發生器的使用,可按下復位按鈕,將系統復位,然后關閉電源。硬件組成部分通過綜合比較,決定選用獲得廣泛應用,性能價格高的常用芯片來構成硬件電路。單片機采用MCS-51系列的89C51(一塊),74LS244和74LS373(各一塊),反相驅動器 ULN2803A(一塊),運算放大器 LM324(一塊) 波形發生器的硬件電路由單片機、鍵盤顯示器接口電路、波形轉換(D/ A)電路和電源線路等四部分構成。1.單片機電路功能:形成掃描碼,鍵值識別,鍵功能處理,完成參數設置;形成顯示段碼,向LED顯示接口電路輸出;產生定時中斷;形成波形的數字編碼,并輸出到D/A接口電路;如電路原理圖所示: 89C51的P0口和P2口作為擴展I/O口,與8255、0832、74LS373相連接,可尋址片外的寄存器。單片機尋址外設,采用存儲器映像方式,外部接口芯片與內部存儲器統一編址,89C51提供16根地址線P0(分時復用)和P2,P2口提供高8位地址線,P0口提供低8位地址線。P0口同時還要負責與8255,0832的數據傳遞。P2.7是8255的片選信號,P2.6是0832(1)的片選,P2.5是0832(2)的片選,低電平有效,P0.0、P0.1經過74LS373鎖存后,送到8255的A1、A2作,片內A口,B口,C口,控制口等寄存器的字選。89C51的P1口的低4位連接4只發光三極管,作為波形類型指示燈,表示正在輸出的波形是什么類型。單片機89C51內部有兩個定時器/計數器,在波形發生器中使用T0作為中斷源。不同的頻率值對應不同的定時初值,定時器的溢出信號作為中斷請求??刂贫〞r器中斷的特殊功能寄存器設置如下:定時控制寄存器TCON=(00010000)工作方式選擇寄存器(TMOD)=(00000000)中斷允許控制寄存器(IE)=(10000010)2、鍵盤顯示器接口電路功能:驅動6位數碼管動態顯示; 提供響應界面; 掃面鍵盤; 提供輸入按鍵。由并口芯片8255,鎖存器74LS273,74LS244,反向驅動器ULN2803A,6位共陰極數碼管(LED)和4×4行列式鍵盤組成。8255的C口作為鍵盤的I/O接口,C口的低4位輸出到掃描碼,高4位作為輸入行狀態,按鍵的分布如圖所示。8255的A口作為LED段碼輸出口,與74LS244相連接,B口作為LED的位選信號輸出口,與ULN2803A相連接。8255內部的4個寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH , C口:7FFEH 3、D/A電路功能:將波形樣值的數字編碼轉換成模擬值;完成單極性向雙極性的波形輸出;構成由兩片0832和一塊LM324運放組成。0832(1)是參考電壓提供者,單片機向0832(1)內的鎖存器送數字編碼,不同的編碼會產生不同的輸出值,在本發生器中,可輸出1V、2V、3V、4V、5V等五個模擬值,這些值作為0832(2)的參考電壓,使0832(2)輸出波形信號時,其幅度是可調的。0832(2)用于產生各種波形信號,單片機在波形產生程序的控制下,生成波形樣值編碼,并送到0832(2)中的鎖存器,經過D/A轉換,得到波形的模擬樣值點,假如N個點就構成波形的一個周期,那么0832(2)輸出N個樣值點后,樣值點形成運動軌跡,就是波形信號的一個周期。重復輸出N個點后,由此成第二個周期,第三個周期……。這樣0832(2)就能連續的輸出周期變化的波形信號。運放A1是直流放大器,運放A2是單極性電壓放大器,運放A3是雙極性驅動放大器,使波形信號能帶得起負載。地址分配:0832(1):DFFFH ,0832(2):BFFFH4、電源電路:功能:為波形發生器提供直流能量;構成由變壓器、整流硅堆,穩壓塊7805組成。220V的交流電,經過開關,保險管(1.5A/250V),到變壓器降壓,由220V降為10V,通過硅堆將交流電變成直流電,對于諧波,用4700μF的電解電容給予濾除。為保證直流電壓穩定,使用7805進行穩壓。最后,+5V電源配送到各用電負載。
上傳時間: 2013-11-08
上傳用戶:685
這里介紹的一款多功能編程器,功能強大,支持大多數常用的EPROM, EEPROM, FLASH, I2C,PIC, MCS-51,AVR, 93Cxx等系列芯片(超過400種)。硬件成本較低,性價比很高。既適合于電子和電腦愛好者使用,也適合家電維修人員維修家電和單片機開發人員使用。圖1為多功能編程器的主機,中間是32腳ZIF(零插力)鎖緊插座, 用于27系列、28系列、29系列、39/49系列等BIOS芯片。左邊是25芯并口插座,通過并口電纜連接計算機并口。左下方是電源插座。32腳ZIF插座下方是12位的DIP開關,對EPROM芯片進行讀寫等操作前,需將此開關撥至相應位置。具體開關位置可以參照軟件提示。鎖緊插座右側依次排列3個DIP8插座和一個DIP18插座,分別用于25系列、24系列、93系列存儲器和PIC系列單片機等;綠色電源指示燈(Power)用于指示編程器電源狀態;紅色指示燈(Vpp)用于指示芯片Vpp電源狀態;黃色指示燈(Vcc)用于指示芯片編程狀態?!?一、 主要功能: ★ 可用此編程器升級、維修電腦主板,顯卡等BIOS芯片??芍С?.3V低電壓BIOS芯片。 ★ 用來寫網卡啟動芯片:用于組建無盤站寫網卡啟動芯片或制作硬盤還原卡等。 ★ 可用于復印機、傳真機、打印機主板維護和維修?!?可用于讀寫用來寫汽車儀表、安全氣囊、里程表數據。★ 可用于維修顯示器、彩電、VCD、DVD 上面的存儲芯片。可修改開機畫面。 ★ 用來開發單片機: 通過添加不同適配器,可以支持 MCS-51 系列, AVR 系列和 PIC 系列的MCU。 ★ 用來寫大容量存儲芯片:大容量的存儲芯片,一般在衛星接收機上使用較多,可以用編程器直接來升級或改寫。 二、電路簡介圖2是這臺編程器的完整電路圖,可以看到編程器電路由完全分離的兩部分組成:串行部分和并行EPROM部分電路。限于篇幅,原理部分不再詳述。對原理感興趣的讀者可以參考本文配套文件包中的“電路原理參考.PDF”文件。圖2三、電路板設計與制作 圖3是編程器參考元件布局圖,雙面PCB尺寸為160X100毫米,厚度1.6毫米。具體的PCB設計可以參考配套文件中的“PCB參考設計.PDF”。這個文件中包括電路板的頂層和低層布線和頂層絲印層。如果業余自制電路板,建議使用雙面感光電路板制作,以確保精度。
標簽: 多功能編程器
上傳時間: 2013-10-14
上傳用戶:問題問題
5.1 中斷基本概念5.1.1 中斷基本概念定義:CPU暫停現行程序,轉而處理隨機到來的事件,待處理完后再回到被暫停的程序繼續執行,這個過程就是中斷。中斷過程:中斷處理的隱操作:程序狀態及程序斷點地址的進棧及出棧。 中斷系統其他功能: 支持多中斷源和多種中斷源。 支持中斷屏蔽處理。 支持中斷嵌套處理。 支持中斷優先級修改。 支持中斷結束方式選擇。5.1.2 中斷類型1.外部硬件(如鍵盤、鼠標,串口,并口打印機等)中斷屬性:硬件、可屏蔽、向量。 中斷請求:多個中斷請求的排隊和判優由中斷控制器完成,產生的有無中斷請求的信號送到CPU的INTR引腳。 中斷類型號:通過數據總線送到CPU中。EFLAGS寄存器的IF位影響CPU對中斷請求的響應。處理器在當前指令執行結束的時候啟動中斷識別INTA總線周期。
標簽: 中斷技術
上傳時間: 2013-11-09
上傳用戶:黃婷婷思密達
7-1. 設計范例——數碼管顯示7-2. 51單片機的并行I/O接口的使用方法7-3. 數碼管的知識和使用方法7-4. 傳送類指令的功能7-5. 匯編語言程序設計的一般步驟要求在最左側的數碼管上顯示數字1。范例分析:硬件分析 電路中用到了單片機的并行I/O口和數碼管軟件設計 由于硬件電路中數碼管接在單片機的P0口上,故將顯示內容送至單片機的P0口就可以在數碼管上看到顯示內容。8051單片機的并口是幾位的?在四個并口中,真正的雙向口是哪一個?它的用法有多少種?四個并口中功能相對較為簡單的是哪一個?在作為輸入、輸出口使用時有何不同?在實際應用中,并口的使用要考慮其負載能力,在四個并口中負載力相對較強的是哪一個?
上傳時間: 2013-10-13
上傳用戶:Maple
自制一臺ATMEL 89系列FLASH單片機編程器學習單片機最有用的恐怕是編程器和仿真機,一臺商品化的編程器至少要幾百元,仿真機價格更高,往往讓初學者難以選擇。這里介紹的一款國外電子網站推出的廉價51編程器,能夠讀寫最常用的12種51單片機,自己動手裝配一臺,既能鍛煉自己的動手能力,又能廉價地裝備一臺多用編程器,無論是學習單片機或業余時間搞開發,都是一個非常好的選擇。筆者按照資料自制了一臺,十分好用,不敢獨享。特編譯了全部制作資料介紹給大家。這個編程器硬件使用標準的TTL系列器件而沒有使用特殊元件。它連接在計算機的并行端口,對PC的并口沒有特殊要求,所以配置很低的計算機也能用這個編程器。Atmel Flash 系列單片機是當前最流行的單片機,易于擦寫,不象OTP芯片容易造成浪費。特別是89系列單片機與大家熟悉的INTEL51系列單片機完全兼容,這個編程器支持的單片機主要是Atmel flash系列。支持的器件: 這個編程器支持以下ATMEL單片機AT89C51,AT89C52,AT89C55,AT89S51,AT89S52,AT89S53,AT89C51RC,AT89C55WD,AT89S8252,AT89C1051U,AT89C2051,AT89C4051注意:20腳的單片機需要一個簡單的適配器。(圖 2 ) 硬件: 圖1顯示了這個FLASH 編程器的電路圖,編程器和標準的計算機并口連接。電路圖中的U2是用于控制計算機和控制器之間的數據流,U4 鎖存低位地址字節 ,U5 鎖存高位地址字節 ,U3用于產生控制信號給被編程的單片機。IC U1用于產生編程脈沖給單片機.當U7提供編程電壓給控制器時,電源部分用U8產生邏輯5v供給。IC U6用于產生5V或6.5V VDD 電源電壓給單片機。
上傳時間: 2013-10-18
上傳用戶:bakdesec
學習單片機最有用的恐怕是編程器和仿真機,一臺商品化的編程器至少要幾百元,仿真機價格更高,往往讓初學者難以選擇。這里介紹的一款國外電子網站推出的廉價51編程器,能夠讀寫最常用的12種51單片機,自己動手裝配一臺,既能鍛煉自己的動手能力,又能廉價地裝備一臺多用編程器,無論是學習單片機或業余時間搞開發,都是一個非常好的選擇。筆者按照資料自制了一臺,十分好用,不敢獨享。特編譯了全部制作資料介紹給大家。這個編程器硬件使用標準的TTL系列器件而沒有使用特殊元件。它連接在計算機的并行端口,對PC的并口沒有特殊要求,所以配置很低的計算機也能用這個編程器。Atmel Flash 系列單片機是當前最流行的單片機,易于擦寫,不象OTP芯片容易造成浪費。特別是89系列單片機與大家熟悉的INTEL51系列單片機完全兼容,這個編程器支持的單片機主要是Atmel flash系列。
上傳時間: 2013-12-18
上傳用戶:xyipie
C51控制并口打印機實例:/* 沈陽新榮達電子 *//* 2004-12-7 */#include <reg52.h>#define uchar unsigned char#define uint unsigned int#define data_8 P0sbit BUSY = P1^2; //打印機 BUSY 接P1.2sbit STB = P1^0; //打印機 STB 接P1.0void print(uchar j) //打印子程序{ uchar i;while(BUSY){}; //BUSY=1,打印機忙,等待BUSY 為0 再發數data_8=j;STB=0;i++;i--;STB=1; //給出數據鎖存時鐘BUSY=1;}void main(void){BUSY = 1; //忙信號置高STB = 1; //選通信號置高print(0x1b); //打印機初始化命令print(0x38);print(0x04);for(;;){print(0xd0); //發送漢字內碼“新榮達”print(0xc2);print(0xc8);print(0xd9);print(0xb4);print(0xef);print(0x0d); //換行}}
上傳時間: 2013-11-13
上傳用戶:lwq11
摘 要:單片機多機通訊一般采用串行總線方式,但在通訊距離短,通訊數據量大,通訊速率高的場合也會用到多機并行通訊。本文介紹一種采用簡單邏輯電路實現單片機多機并行通訊的方法。關鍵詞:并行通訊,三態緩沖寄存器,雙端口存儲器,總線隔離1、 簡介本文介紹的單片機多機并行通訊系統,使用89C51作為主機,多片89C2051作為從機。(89C2051為20腳300MIL封裝,帶有2K FLASH E2PROM的單片機,除了少了兩個并口外,具備MCS-51系列單片機所有功能。因為其體積小,功能強,必將在單片機應用領域內廣泛使用)。這種并行通訊方法適用于在多站點,多層次的檢測和控制系統中充當通信控制器的角色;也適合于用作單片機串行口擴充電路。
上傳時間: 2013-10-31
上傳用戶:hxy200501