PIC16F877 單片機的鍵盤和LED 數碼顯示接口 1 PIC16F877單片機與鍵盤和LED數碼顯示的硬件接口電路單片機的許多應用都需要進行人機對話,最簡單的人機對話需要LED 數碼管顯示數字和少量字符;鍵盤是解決計算機輸入的簡單手段;借此可以向計算機輸入程序、置數、送操作命令、控制程序的執行等等,所以使用非常廣泛。圖1 鍵盤、LED數碼顯示與PIC16F877 單片機的接口電路本例中采用8 個按鍵組成的小鍵盤,4 只共陰極的LED 數碼管,采用4 片74LS373 驅動數碼管,采用的驅動方法是靜態方式。使用1 片74LS245 作為鍵盤的接口;這些外圍器件與PIC16F877 單片機的接口電路如圖1 所示,這種連接方法與51 系列的單片機連接方法一樣,其他的連接方法還有好幾種,PIC16F877 單片機的鍵盤輸入接法還有其他特殊而十分方便好用的方式。8 鍵鍵盤通過74LS245 與單片機相連,鍵盤按鍵狀態的數據輸入由RC3 輸出腳控制;當RC3=“0”時,鍵盤狀態從74LS245 的A 端輸出到單片機的PORTB口,此時讀PORTB口的數據即為鍵盤狀態。為了及時地響應鍵盤操作,需要經常對鍵盤進行掃描;掃描的方式有許多種,我們將鍵盤的掃描程序安排在主程序的循環執行過程中的方式,并采用20ms延遲來消除按鍵的抖動問題,此外,為了實現每按鍵一次只響應一次的功能,在執行相應的按鍵程序之前,必須確保按鍵已經松開;在本例中這一措施有效的防止了數據抖動過快的問題。LED 數碼顯示有動態掃描和靜態顯示兩種方式(圖1 采取的方式為靜態方式),在動態掃描方式中,各數碼顯示是輪流點亮的,即控制數碼顯示的位選信號和相應的要顯示的數碼的字形代碼同時逐一送出,反復不已,由于視覺的暫留現象,卻好象全都點亮著,這種電路的接法以后再介紹。在靜態方式中,只要將數據送出鎖存以后,各數碼顯示的數據不需要刷新,只要數據不需改變,就可以不去管他,所以稱為靜態顯示。在圖1 電路中,輸出顯示的操作簡化為對74LS373 的并口操作而已。由于靜態方式的工作原理比較簡單,編程也比較直觀簡單,程序間的相互關聯很少。因此編程容易,但要增加硬件,成本較高;與之相比,動態掃描的編程雖然要復雜一些,但因其所用硬件少,成本低。由數碼轉化為字形代碼可采用軟件譯碼、硬件譯碼等兩種方式。軟件譯碼是將各數碼的字形代碼構成一個表格存儲于內存之中,在顯示數碼時,通過執行查表程序而得到相應的字形代碼,再將之送入數碼顯示輸出電路進行顯示,本例即采用這種方式,這種方式的編程與單片機有關,在程序中給出了PIC16F877 的編程例程,對需要熟悉PIC16F877 單片機的人員有一定的參考價值。硬件譯碼則采用CD4511、74LS46、74LS47、74LS48、74LS49等BCD 碼—7段鎖存、譯碼、驅動芯片直接譯出字形代碼,點亮LED。74LS373 由LE 端對要顯示的數據進行鎖存控制,實現LED 的靜態顯示。采用了PIC16F877 的端口輸出操作,模擬74LS373 的數據鎖存時序,即由軟件實現數據鎖存,這種方法可以十分容易的改變時序和延遲長短,使高速設備可以與低速設備聯系配合好,設計簡單方便,不好的地方是編程較長和稍微復雜一點。這種編程方法在下面的程序中有很好的體現。
上傳時間: 2013-10-29
上傳用戶:cuiyashuo
S51編程器制作包:自制AT89S51編程器教程AT89S51芯片的日漸流行,對我們單片機初學者來說是一個大好消息。因為做個AT89S51編程器非常容易,而且串行編程模式更便于做成在線編程器,給頻繁燒片,調試帶來了巨大的方便。 電路: 只要焊13根線就可以搞定這個電路?;驹恚篟ST置高電平,然后向單片機串行發送 編程命令。P1.7(SCK)輸入移位脈沖,P1.6(MISO)串行輸出,P1.5(MOSI)串行輸入(要了解詳細編程原理可以去看AT89S51的數據手冊)。使用并口發出控制信號,74373只是用于信號轉換,因為并口直接輸出高電平的電壓有點沒到位,使用其他芯片也可以,還有人提出直接接電阻。并口引腳1控制P1.7,引腳14控制P1.5,引腳15讀P1.6,引腳16控制RST,引腳17接74373 LE(鎖存允許),18-25這些引腳都可以接地。建議在你的單片機系統板上做個6芯的接口。注意:被燒寫的單片機一定是最小系統(單片機已經接好電源,晶振,可以運行),VCC,GND是給74373提供電源的。 還有一個方案:使用串口+單片機,這個方案已經用了半年了。電路稍微麻煩一點,速度比較快,而且可以燒AT89C51等等。其實許多器件編程原理差不多,由于我沒太多時間研究器件手冊,更沒有MONEY買一堆芯片來測試,所以只實現了幾個最常用單片機編程功能(AT89C51,C52,C55,AT89S51,S52,S53)。如果要燒寫其他單片機,你可以直接編寫底層控制子程序(例如,寫一個單元,讀一個單元,擦除ROM的子程序)。如果有需要,我可以在器件選擇欄提供一個“X-CHIP”的選擇,“X-CHIP”的編程細節將由用戶自己去實現。當你仔細閱讀器件手冊后,會發現實現這些子程序其實好容易,這也是初學者學單片機編程的好課題。如果成功了會極大的提高你學單片機的積極性。 軟件: 這個軟件的通信,控制部分早在半年前就完成了,這回只是換了個界面和加入并口下載線的功能,希望你看到這個軟件不會想吐。使用很簡當,有一點特別,當你用鼠標右鍵點擊按鈕后,可以把相關操作設置為自動模式(只有打開文件,擦除芯片,寫FLASH ROM,讀FLASH ROM,效驗數據 可以設置),點擊‘自動完成’后會依次完成這些操作,并在開始時檢測芯片。當“打開文件”設為自動后,第2次燒寫同一個文件時不必再去打開文件,軟件會自動刷新緩沖。軟件在WIN XP,WIN 2000可以使用(管理員登陸的),在WIN 98 ,WIN ME使用并口模式時會更快些。這個軟件同時支持串口編程器和并口下載線。操作正常結束后會有聲音提示。如果沒有聲卡或聲卡爛了,則聲音會從機箱揚聲器中發出。注意:記得在CMOS設置中把并口設為ECP模式。就這些東西,應該夠詳細吧,還有什么問題或遇到什么困難可以聯系我,軟件出現什么問題一定要通知我修正。祝你一次就搞定。
上傳時間: 2014-01-24
上傳用戶:13162218709
單片機語言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暫?,F行程序,轉而處理隨機到來的事件,待處理完后再回到被暫停的程序繼續執行,這個過程就是中斷。中斷過程:中斷處理的隱操作:程序狀態及程序斷點地址的進棧及出棧。 中斷系統其他功能: 支持多中斷源和多種中斷源。 支持中斷屏蔽處理。 支持中斷嵌套處理。 支持中斷優先級修改。 支持中斷結束方式選擇。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