第一篇:單片機實習報告
單片機實習報告
單片機>實習報告
(一)這次實習我們使用控制電路的單片機是AT89S51型號的。通過它實現對八盞雙色燈發光二極管的控制P0和《單片機實習報告總結》正文開始》 這次實習我們使用控制電路的單片機是AT89S51型號的。通過它實現對八盞雙色燈發光二極管的控制P0和P2口控制四盞燈。在AT89S51的9引腳接復位電路,對電路實現復位控制。在電路中接入74S164譯碼器和共陰極數碼管,通過AT89S51的P3口數據的輸入對共陰極數碼管的控制。同時也可實現雙色發光的二極管與共陰極數碼管的共同作用。在AT89S51的P3.2口接上中斷控制電路,P3.5口接入蜂鳴器,使電路實現中斷作用,也使電路便于檢測。盡量朝“單片”方向設計硬件系統。系統器件越多,器件之間相互干擾也越強,功耗也增大,也不可避免地降低了系統的穩定性。系統中的相關器件要盡可能做到性能匹配。如選用CMOS芯片單片機構成低功耗系統時,系統中所有芯片都應盡可能選擇低功耗產品。
硬件電路設計:
1)確保硬件結構和應用軟件方案相結合。硬件結構與軟件方案會相互影響,軟件能實現的功能盡可能由軟件實現,以簡化硬件結構。必須注意,由軟件實現的硬件功能,一般響應時間比硬件實現長,且占用CPU時間;
2)可靠性及抗干擾設計是硬件設計必不可少的一部分,它包括芯片、器件選擇、去耦濾波、印刷電路板的合理布線、各元器相互隔離等;
3)盡量朝“MCS-51單片”方向設計硬件系統。系統器件越多,器件之間相互干擾也越強,所消耗功耗也增大,也不可避免地降低了系統的穩定性;
4)系統中的相關器件要盡可能做到性能匹配。如選用CMOS芯片單片機構成低功耗系統時,系統中所有芯片都應盡可能選擇低功耗產品。
1.1 單片機型號及特性
單片機型號是 AT89S51。特性是:⑴8031 CPU與MCS-51⑵兼容 4K字節可編程FLASH存儲器(壽命:1000寫/擦循環)⑶全靜態工作:0Hz-24KHz ⑷三級程序存儲器保密鎖定 ⑸128*8位內部RAM ⑹32條可編程I/O線⑺兩個16位定時器/計數器 ⑻6個中斷源⑼可編程串行通道⑽低功耗的閑置和掉電模式⑾片內振蕩器和時鐘電路
1.2 晶振電路
單片機晶振的兩個電容的作用 這兩個電容叫晶振的負載電容,分別接在晶振的兩個腳上和對地的電容,一般在幾十皮發。它會影響到晶振的諧振頻率和輸出幅度,晶振的負載電容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C式中Cd,Cg為分別接在晶振的兩個腳上和對地的電容,Cic(集成電路內部電容)+△C(PCB上電容)經驗值為3至5pf。各種邏輯芯片的晶振引腳可以等效為電容三點式振蕩器。晶振引腳的內部通常是一個反相器,或者是奇數個反相器串聯。在晶振輸出引腳 XO 和晶振輸入引腳 XI 之間用一個電阻連接,對于 CMOS 芯片通常是數 M 到數十M 歐之間。很多芯片的引腳內部已經包含了這個電阻,引腳外部就不用接了。這個電阻是為了使反相器在振蕩初始時處與線性狀態,反相器就如同一個有很大增益的放大器,以便于起振。石英晶體也連接在晶振引腳的輸入和輸出之間,等效為一個并聯諧振回路,振蕩頻率應該是石英晶體的并聯諧振頻率。晶體旁邊的兩個電容接地,實際上就是電容三點式電路的分壓電容,接地點就是分壓點。以接地點即分壓點為參考點,振蕩引腳的輸入和輸出是反相的,但從并聯諧振回路即石英晶體兩端來看,形成一個正反饋以保證電路持續振蕩。在芯片設計時,這兩個電容就已經形成了,一般是兩個的容量相等,容量大小依工藝和版圖而不同,但終歸是比較小,不一定適合很寬的頻率范圍。外接時大約是數 PF 到數十 PF, 依頻率和石英晶體的特性而定。需要注意的是: 這兩個電容串聯的值是并聯在諧振回路上的,會影響振蕩頻率。當兩個電容量相等時,反饋系數是 0.5, 一般是可以滿足振蕩條件的,但如果不易起振或振蕩不穩定可以減小輸入端對地電容量,而增加輸出端的值以提高反饋量。
電路如圖所示
1.3 復位電路
單片機在開機時或在工作中因干擾而使程序失控,或工作中程序處于某種死循環狀態等情況下都需要復位。復位作用是使CPU以及其他功能部件,如串行口,中斷都恢復到一個確定初始狀態,并從這個狀態開始工作。
復位電路有兩種:上電、按鈕復位,考慮到各部件影響,采用按鈕復位,當電阻給電容充電,電容的電壓為高電平,當按下按鈕時芯片復位腳近似低電平,于是芯片復位。
單片機實習報告
(二)一、生產實習的目的和意義:
生產實習是培養本科學生理論聯系實際,提高實際動手操作能力的重要教學環節。本專業的生產實習旨在使學生廣泛了解實際電子產品生產的全過程,熟悉電子產品的主要技術管理模式,并在實習的操作過程中學習、掌握電子產品的焊接、安裝、調試的實際操作技能。鞏固和加深理解所學的理論,開闊眼界,提高能力,為培養高素質大學本科人才打下必要的基礎。通過學習,是理論與實際相結合,可以使學生加深對所學知識的理解,并為后續專業課的學習提供必要的感性知識,同時使學生直接了解本業的生產過程和生產內容,為將來走上工作崗位提供必要的實際生產知識。
二、實習的基本內容:
集中授課,進行相關知識的學習。
學習、掌握電子產品的獨立性設計與安裝、調試的能力;進一步掌握電子測量儀器的正確使用方法,電元器件的測量與篩選技術。
初步了解電子整機產品的工藝過程。
為能使學生得到充分的鍛煉,較大的提高學生的實際動手能力,本次生產實習安排每一位學生獨立完成全部系統的設計與安裝工作。
本實習環節,學生要獨立使用電焊鐵及各種電子測試設備電路安裝與調試,要學生嚴格遵守電器設備的使用安全,遵守實驗室的各項>規章制度。
三、基本要求:
在教師的指導下練習在測試電路德核心板上焊接元件,掌握焊接要領。
熟悉元器件的性能及管腳分配。
在給定的PCB板上焊接跳線,IC插座,電阻,電容,LED器件等。
檢查焊接是否正確。
插上元器件,運行系統,并觀測系統工作是否正常。
四、總體設計電路思想和原理:
本次生產實習用到的開發板和模塊共7塊,分別為:單片機核心板,電子鐘模塊,MP3模塊,RFID模塊,無線傳輸模塊,脈搏傳感模塊,GPS模塊。
各模塊相互組合,其所能實現的基本功能如下:
單片機核心板+電子鐘模塊:實現時間的顯示,溫度的測量,且可通過遙控器調時、定鬧等。
單片機核心板+無線傳輸模塊:實現數據的近距離無線傳輸。
單片機核心板+MP3模塊(含SD卡):實現MP3播放功能。
單片機核心板+RFID模塊:實現地鐵檢票系統的模擬。
單片機核心板+脈搏傳感模塊:實現人體脈搏傳感的測量。
單片機核心板+GPS模塊:實現GPS衛星定位功能。
(一)核心板電路設計
單片機核心板電路主要包括STC12C5A60S2單片機,電子鐘模塊接口電路,MP3接口電路,無線傳輸模塊接口電路,脈搏傳感模塊接口電路,GPS模塊接口電路,串口擴展電路,電源供電電路。該系統的單片機是宏晶科技生產的單時鐘機器周期(IT)的單片機,是高速、低功耗、超強干擾的新一代8051單片機。通過使用STC-ISP軟件,該單片機可實現串口在線編程,無需編程器,無需仿真器。
核心板電路的設計思想主要是圍繞單片機芯片的工作原理和特點,為其實現合理的設計出外圍電路:包括電源電路,顯示電路部分,復位電路部分,串行口通信電路,按鍵電路等。
(二)電子鐘模塊電路設計
該模塊主要用到的芯片有:時鐘保持芯片DS1302,單總線數字溫度傳感器DS18B20,紅外遙控解碼器TL1838A。
該模塊電路設計的思想是了解這三種芯片的工作電壓,DS1302的工作時鐘頻率以及三種芯片與單片機之間的硬件連接。
(三)MP3模塊電路設計
該模塊用到的主要芯片有MP3音頻解碼芯片VS1003,3.3V電壓轉換芯片LM1117-3.3,2.5V電壓轉換芯片LM1117-2.5。
該電路的設計思想主要是了解芯片的作用和特點,尋找各芯片之間的聯系,VS1003芯片是該模塊的主要部分。單片機設有單獨解碼MP3文件的功能,而單片機可與通過VS1003的接口電路的連接,進行MP3的解碼,實現音頻的輸出。通過芯片各引腳的功能和特點,合理的設計出相應的外圍電路。
(四)RFID模塊電路的設計
該模塊的電路所用到的主要芯片為13.56MHZ的非接觸式通信讀卡芯片FM1702。該芯片是基于ISO/4443標準的非接觸卡讀卡機專用芯片,采用0.6微米CMOS、EEPROM工藝,支持13.56MHZ頻率下的type A非接觸式通信協議,支持多種加窗算法,兼容philips的MFRC530(SPI接口)讀卡機芯片。
該模塊的電路設計思想是基于FM1702各引腳的功能和特點,合理的設計芯片的外圍電路,其中的電容和電感所構成的天線是芯片與S50卡通信的工具。
五、單元電路設計:
單片機核心板電路分析
單片機核心板是本次實習中最重要的部分,它是實現各種模塊功能的基礎部分。單片機核心板的核心是STC12C5A60S2單片機芯片,圍繞該芯片設計出相應電源供電電路,蜂鳴器驅動電路,按鍵電路,串行口通信電路,復位電路,液晶屏驅動電路以及各模塊的接口電路,由以上的電路部分就構成一個核心板電路系統。
電子鐘模塊電路分析
電子鐘模塊配合單片機核心板,可在LCD1602液晶屏上顯示當前的日期(年月日)時間(時分秒),環境溫度值,和紅外遙控解碼值。用戶可通過遙控器或單片機核心板上的按鍵來進行日期和時間的設置。
通過遙控上的“EQ”鍵,可控制LED顯示界面在時間、溫度、紅外解碼之間的切換。如果想調整時間,需要首先使用遙控器的“EQ”鍵將LCD顯示調制時間界面;之后通過按“播放停止鍵”將時間停止;然后再按“左快捷鍵”向右切換;最后按“加減鍵”可以進行數值的加減操作,調整完成后,再次按“播放停止鍵”,時間開始運行。另外通過單片機核心板上的K1-K4鍵也可以完成時間的調整:其中K1鍵對應遙控器的“右快捷鍵”,即實現向右切換年月日時分;K3鍵對應遙控器的“加鍵”,即實現年月日時分的加1;K4鍵對應遙控器的“減鍵”,即實現年月日時分的減1。
MP3電路模塊分析
是一單芯片MP3/WMA/MIDI音頻解碼和ADPCM編碼芯片,其擁有一個高性能低功耗的DSP處理器核VS-DSP。5K的指令RAM,0.5K的數據RAM,串行的控制和數據輸入接口,4個通用IO口,1個UART口;同時片內帶有一個可變采樣率的DAC,一個立體聲DAC以及音頻耳機放大器;VS1003通過一個串行接口來接收輸入的比特流,它可以作為一個系統的從機。
與單片機連接的引腳主要有7個,分別為:SO、SI、SCLK、XDCS、XRESET、DREQ、MOSI,只有保證它們與單片機正確可靠的連接,才能對VS1003進行有效的操作與控制。另外,VS1003各部分的供電電壓與輸出電壓值是不同的。
芯片各部分供電電壓如下表:
供電部分最小電壓推薦電壓最大電壓
模擬)
數字)
卡是一種大容量,性價比高,體積小,訪問接口簡單的存儲卡。SDIMMC卡大量 應用于數碼相機、MP3、手機、大容量存儲設備。作為這些便攜式設備的存儲載體,它具有低功耗,非易失性,保存數據無需消耗能量的特點。
卡只使用了1-7觸點。對于1號引腳(CD/DAT3)擴展的DAT線(DAT1-DAT3)在上電后處于輸入狀態,它們在執行SET-BUS-WIDTH命令后作為DAT線操作,當不用DAT1-DAT3線時,主機應使自己的DAT1-DAT3線處于輸入模式,這樣定義是為與MMC卡保持兼容。上電后,CD/DAT3作為帶50K上拉電阻的輸入線(可用于檢測卡是否存在或選擇SPI模式)。用戶可以在正常的數據傳輸中用SET-CLR-CARD-DETECT(ACMDA口)命令斷開上拉電阻的連接。MMC卡的該引腳在SD模式下為保留引腳,在SD模式下無任何作用。對于2號引腳CMD,MMC卡在SD模式下為IO/PP/OO,MMC卡在SPI模式下為I/PP。
關于電壓匹配問題,SD卡的邏輯電平相當于3.3V TTL電平標準,而單片機的邏輯電平為5V。因此,它們之間不能直接相連,否則會有燒毀SD卡的可能。解決邏輯器件接口的電平兼容問題,原則主要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應大于接受電壓器件識別為高電平的最低電壓值;二為輸出電平器件輸出低電平的最大電壓值,應小于接受器件識別為低電平的最高電壓值??紤]到SD卡在SPI協議的工作模式下,通訊都是單向的,于是在單片機向SD卡傳輸數據時采用晶體管加上拉電阻法的方案。在SD卡向單片機傳輸數據時,可以直接連接。因為它們之間的電平剛好滿足上述的電平兼容原則,既經濟又實用。該方案可以雙電源供電(一個5V電源,一個3.3V電源供電),3.3V電源可用ASL1117穩壓管從5V電源穩壓獲取。
RFID模塊電路分析
基于FM1702SL的非接觸式IC卡讀寫器,只要稍加改動就能開發成不同的射頻識別應用系統,如考勤系統,門禁系統,公交車收費系統等。S50非接觸式卡符合MIFARE的國際標準,容量8K位,數據保存期10年,又可改寫10萬次,讀無限次。S50卡不帶電源,自帶天線,內含加密控制邏輯電路和通用邏輯電路,卡與讀卡器之間的通訊采用國際通用DES和RES保密交叉算法,具有較高的保密性能。
單片機與FMITDISL通用SPI總線通信,采用中斷工作模式,在FMITDISL復位后,必須進行一次初始化程序以便初始化SPI接口模式,而且可以同步實現單片機和FMITDISL的啟動工作。信息存儲在MIFARSE卡里,讀寫器與卡通過各自的天線建立起二者之間非接觸信息傳輸通道。當卡進入系統的工作區時,讀寫器向卡發射一組固定頻率的電磁波,卡內有一個LC串聯諧振電路,其頻率與讀寫器發射的頻率相同,在電磁波的激勵下,LC諧振電路產生共振,從而使電容內有了電荷,在這個電容的另一端接有一個單向導通的電子粟,將帶內容內的電荷送到另一個電容內存儲,當所有積累的電荷達到2V時,此電容可做到電源為其它電路提供工作電壓,將卡內數據發射出去或讀取讀寫器的數據。
根據互感原理可知,讀寫器天線半徑越大,匝數越多,讀寫器上的天線和卡上的天線的互感系數就越大。根據國際標準的要求,卡和讀寫器的通信距離為10cm,通過調整天線驅動電壓可以改變通信的最長距離。天線的傳輸帶寬和品質因數成反比關系。過高的品質因數會導致帶寬減小,從而減弱讀寫器的調制邊帶,會導致讀寫器無法與卡通信。
無線傳輸模塊分析
是一無線通信芯片,采用FSK調制,可以實現點對點或是1對6的無線通信。無線通信速度最高可達2Mbps,只需為單片機系統預留5個GPIO,1個中斷輸入引腳,就可很容易地實現天線通信的功能,非常適合用MCU系統構建無線通信功能。
具有收發模式,待機模式和掉電模式,四種工作模式,并由CE、寄存器內部PWR、VP和PRIM、RX共同控制。nRF24L01所有的配置都由配置寄存器來定義,這些配置寄存器可通過SPI口訪問。SPI接口由SCK、MOSI、MISO及CSN組成,在配置模式下單片機通過SPI接口配置nRF24L01的工作參數,在發射或接收模式下單片機SPI接口發送和接收數據。
單片機的控制指令從nRF24L01的MOSI引腳輸入,而nRF24L01的狀態信息和數據是從其MISO引腳輸出并送給單片機的。利用SPI傳輸數據時,是先傳輸低位字節,再傳輸高位字節,并且在傳輸每個字節時是從高位傳起。
六、單片機軟件系統工作流程
通過使用STC-ISP軟件,STC12C5A60S2單片機可實現串口在線編程。由于現在大的數據計算機都不存在提供單獨的串口,所以需要USB轉RS232串口線。
USB轉RS232串口設備驅動程序的安裝
STC-ISP V483串口下載軟件
七、實習過程心得:
新學期伊始,就迎來了為期四周的單片機生產實習。在這次生產實習過程中,我受益頗多。這是我們經歷的第一次廣泛了解實際電子產品生產的全過程。從最初的設計,到焊接,安裝,調試,我們都是逐一親自動手操作完成的。在這次實習中,我們遇到了不少問題,但正是因為有了這些問題,才有了我們更加深入學習的機會。為了解決這些問題,我們查資料,探討,請教老師,充分利用自己身邊的一切資源來學習。這樣的學習過程讓我們對所學內容理解的更深刻,而且大大提高了我們的團結協作能力。在實際操作焊接的過程中,我們從笨拙到熟練,動手能力不斷提高,有了很大的進步。這為我們以后步入工作崗位做了良好的鋪墊。
總之,通過這次生產實習,我受益匪淺,各方面的能力都有了提高。最后,感謝在實踐過程中悉心指導的每一位老師!
第二篇:單片機實習報告
實
習
報
告
實習名稱 :
嵌入式系統 實習
系部名稱 :
信科院
專業班級:
:
計本 08 -5
學生姓名:
:
陳鵬任
學
號:
:
3080417907
指導教師:
:
陳小琴 金紅 楊光杰
日 日
期:
2010.12.18
一. 引言
目前,嵌入式技術已成為通信和消費類產品的共同發展方向。嵌入式系統幾乎包括了生活中的所有電器設備,如掌上PDA、移動計算設備、電視機頂盒、手機上網、數字電視、多媒體、汽車、微波爐、數字相機、家庭自動化系統、電梯、空調、安全系統、自動售貨機、蜂窩式電話、消費電子設備、工業自動化儀表與醫療儀器等。
嵌入式系統是先進的計算機技術、半導體技術、電子技術和各個行業的具體應用相結合的產物,這就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統。嵌入式系統一般指非PC系統。它是以應用為中心、軟硬件可裁減的、能適應應用系統對功能、可靠性、成本、體積、功耗等綜合性要求的專用計算機系統。簡單地說,嵌入式系統是集系統的應用軟件與硬件于一體,類似于PC中BIOS的工作方式,具有軟件代碼小、高度自動化、響應速度快等特點,因此特別適合于要求實時和多任務的系統。嵌入式系統主要由嵌入式處理器、相關支撐硬件、嵌入式操作系統及應用軟件系統等組成。
通過這次實訓,老師讓我們了解最基本的嵌入式系統設計,開發的流程,結合掌握所學的知識,做出一個單片機與上位機通信的簡單嵌入式系統。
二.課題設計 1 .基本原理
MCS-51 單片機串行口發送/接收數據時,通過 2 個串行緩沖器 SBUF 進行,這 2 個緩沖器采用一個地址(98H),但在物理上是獨立的。其中接收緩沖器只能讀出不能寫入,發送緩沖器只能寫入不能讀出。
① 發送過程,由指令 MOV SBUF,A 啟動,此時待傳送的數據由 A 累加器傳入串行發送緩沖器 SBUF,由硬件自動在發送字符的始、末加上起始位(低電平)、停止位(高電子)及其它控制位(如奇偶位等),而后在移位脈沖的控制下,低位在前,高位在后,逐位從 TXD 端(方式 0 除外)發出。
② 接收過程,串行口的接收與否受制于允許接收位 REN 的狀態,當 REN 被軟件置“1”后,允許接收器接收。串口的接收器以所選波特率的 16 倍速對 RXD線進行監視。當“1”到“0”跳變時,檢測器連續采樣到 RXD 線上低電平時。便認定 RXD 端出現起始位,繼而接收控制器開始工作。在每位傳送時間的第 7、8、9 三個脈沖狀態采樣 RXD 線,決定所接收的值為“0”或“1”。當接收完停止位后,控制電路使中斷標志 R1 置為“1”,此時程序可通過 MOV
A,SBUF指令將接收到的字符從 SBUF 送入累加器 A,從而完成一幀數據的接收工作。
2.原理框架
3.硬件電路原理 圖,對各模塊進行分別介紹
單
片
機 LCD 顯示電路 復位電路 時鐘電路 電源電路 串行口通信電路
3.1 液晶顯示模塊
1602LCD 采用標準的 14 腳(無背光)或 16 腳(帶背光)接口,各引腳接口如下所示
接口信號說明 編號 符號 引腳說明 編號 符號 引腳說明 1 VSS 電源地 9 D2 Data I/O 2 VDD 電源正極 10 D3 Data I/O 3 VL 液晶顯示偏壓信號 11 D4 Data I/O 4 RS 數據/命令選擇端(H/L)D5 Data I/O 5 R/W 讀/寫選擇端(H/L)D6 Data I/O 6 E 使能信號 14 D7 Data I/O 7 D0 Data I/O 15 BLA 背光源正極 8 D1 Data I/O 16 BLK 背光源負極 用 LCD1602 液晶顯示模塊顯示字符或字符串之前必須對其進行初始化,LCD1602 液晶顯示模塊的初始化流程如下:
? 5.0 初始化過程(復位過程)
? 5.1 延時 15ms ? 5.2 寫指令 38H(不檢測忙信號)
? 5.3 延時 5ms ? 5.4 寫指令 38H(不檢測忙信號)
? 5.5 延時 5ms ? 5.6 寫指令 38H(不檢測忙信號)
? 5.7(以后每次寫指令、讀/寫數據之前均需檢測忙信號)
? 5.8 寫指令 38H:顯示模式設置 ? 5.9 寫指令 38H:顯示關閉 ? 5.10 寫指令 01H:顯示清屏 ? 5.11 寫指令 06H:顯示光標移動設置 ? 5.12 寫指令 0CH:顯示開關及光標位置
表 8 LCD1602 液晶模塊內部的控制器控制指令 指令 指令碼
說明
RS
R/W D0
D1
D2
D3
D4
D5
D6
D7
清屏
0 0 0 0 0 0 0 0 0 1 清顯示,光標回位
光標返回
0 0 0 0 0 0 0 0 1 * ADD=0 時,回原位
輸入方式
0 0 0 0 0 0 0 1 I/D S 決定是否移動以及移動方向
顯示開關
0 0 0 0 0 0 1 D C B D-顯示,C-光標,B-光標閃爍
移位
0 0 0 0 0 1 S/C R/L * * 移動光標及整體顯示
功能設置
0 0 0 0 1 DL N F * * DL-數據位數,L-行數,F-字體
CGRAM 地址設置
0 0 0 1 A5 A4 A3 A2 A1 A0 設置 CGRAM 的地址 DDRAM 地址設置
0 0 1 A6 A5 A4 A3 A2 A1 A0 設置 DDRAM 的地址 忙標志/讀地址計數器
0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 讀出忙標志位(BF)及 AC 值 CGRAM/DDRAM 數據寫0 寫數據 將內容寫入 RAM 中 CGRAM/DDRAM 數據讀1 讀數據 將內容從 RAM 中讀出
LCD1602 液晶顯示模塊可以和單片機 AT89C51 直接接口,電路如下圖所示。
RP110KGND1VDD2VO3RS4RW5E6DB07DB18DB29DB310DB411DB512DB613DB714BL115BL216U2LCD1620X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10GND20VCC40EA/VP31nPSENRXDTXDALEU1AT89S51P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7+5VP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7RWRSE+5VnWRVCCnWRnRD
AT89S52 和 LCD1602 液晶模塊連接電路 液晶顯示模塊是一個慢顯示器件,所以在執行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表 9 是 LCD1602 的內部顯示地址。即第 1 行的顯示地址應為 80H+顯示位置,第 2 行的顯示地址應為 40H+顯示位置。
表 9
LCD1602 的內部顯示地址
3.2 串口通信模塊 RS-232C 標準(協議)的全稱是 EIA-RS-232C 標準,其中 EIA(Electronic Industry Association)代表美國電子工業協會,RS(recommended standard)代表推薦標準,232 是標識號,C 代表 RS232 的最新一次修改,在這之前,有 RS232B、RS232A,它規定連接電纜和機械、電氣特性、信號功能及傳送過程。RS-232C 適合于數據傳輸速率在 0~20000b/s 范圍內的通信。
PC 機常用 DB-9 連接器作為提供多功能 I/O 卡或主板上 COM1 和 COM2 兩個串行接口的連接器,它只提供異步通信的 9 個信號,9 針串口功能見表 10,并且對電纜長度也有要求:
RS-232C 標準規定,若不使用 MODEM,在碼元畸變小于 4%的情況下,DTE 和 DCE 之間最大傳輸距離為 15m(50 英尺)??梢娺@個最大的距離是在碼元畸變小于 4%的前提下給出的,為了保證碼元畸變小于 4%的要求,接口標準在電氣特性中規定,驅動器的負載電容應小于 2500pF。
表 10針串口功能一覽表 針腳 功能 針腳 功能 1 載波檢測 6 數據準備完成 2 接收數據 7 發送請求 3 發送數據 8 發送清除 4 數據終端準備完成 9 振鈴指示 5 信號地線
本方案對 RS-232-C 接口采用 3 線制(RXD、TXD、GND)軟握手的零 MODEM 方式進行單片機和 PC 之間的數據通信,即 PC 機和單片機的發送數據線(TXD)與接收數據(RXD)交叉連接,二者的地線(GND)直接相連,其它信號線如握手信號線均不用,而采用軟件握手。但由于 RS-232-C 的邏輯電對地是對稱的,與 TTL、MOS 邏輯電平完全不同,邏輯 0 電平規定為+5~ +15V 之間,邏輯 1 是電平為-5~-15V 之間,因此利用 MAX232芯片進行電平轉換,電路連接如圖 11。
C1-3V+2C2+4C2-5V-6R209D2110VCC16GND15D1014R1113R1012D1111R218D207C1+1IC2MAX232C13C12C11C10VCC162738495J232DB9 圖 RS-232-C 通信連接電路
3.3 電源模塊 +220PFC5C60.1uFS12Vin+5VGNDU37805R81.5KD0LED123POWCON3SPD2
充電電路
4.軟件設計 ((1)流程圖
((2)代碼附錄 //示 接收電腦送過來的數據,并且顯示 16 進制數,并將數據回傳到電腦 腦 #include
InitLcd();//初始化 LCD
myflag=0x00;//標志痊
SendCommandByte(0x80);//調用發送命令
Delay(2);
SendDataByte(“c”);//初始化顯示 CPR:
SendDataByte(“p”);
SendDataByte(“r”);
SendDataByte(“:”);
TMOD=0x20;//定時器的設置
TH1=0xf3;//計時器
TL1=0xf3;
SCON=0x50;//設定串行工作方式
TR1=1;
REN=1;//允許中斷
IE=0x90;//中斷允許標志
while(1)
{
if(recokbit==1)//接收數據
{
recokbit=0;
disprec();
}
} }
//以下為串口中斷程序 void rs232(void)interrupt 4//中斷串行口
{
if(RI==1)//控制電路使中斷標志 R1 置為“1 此時程序可通過 MOV
A,SBUF 指令將接收到的字符從 SBUF 送入累加器 A,從而完成一幀數據的接收工作
{
RI=0;
recdata[recv_p]=SBUF;
SBUF=recdata[recv_p];
recv_p++;if(recv_p>27)recv_p=0;//
recokbit=1;//接受完成}
} void Delay(unsigned int t)
// delay 40us {
for(;t!=0;t--);} //============================================= void SendCommandByte(unsigned char ch){
RS=0;
RW=0;
P0=ch;
E=1;//使能端口為 1,接收命令
Delay(1);
E=0;
Delay(100);
//delay 40us }
//=============================================
//-------------------------------------------------------void SendDataByte(unsigned char ch){
TI=0;//開始發送數據
SBUF=ch;
while(!TI);
RS=1;//輸入數據
RW=0;//為 0 時寫,1 時讀
P0=ch;
E=1;
Delay(1);
E=0;//使能信號為 0 時,不能輸入
Delay(100);//delay 40us } //-------------------------------------------------void InitLcd(void){ unsigned char i;for(i=0;i<28;i++)recdata[i]=0x30;//初始化數組 0 recv_p=0;
SendCommandByte(0x30);
SendCommandByte(0x30);
SendCommandByte(0x30);
SendCommandByte(0x38);//設置工作方式
SendCommandByte(0x0c);//顯示狀態設置
SendCommandByte(0x01);//清屏
SendCommandByte(0x06);//輸入方式設置 } void disprec(void){
unsigned char i;
for(i=0;i<12;i++)
{
SendCommandByte(0x84+i);
SendDataByte(recdata[i]);
}
for(i=0;i<16;i++)
{
SendCommandByte(0xc0+i);
SendDataByte(recdata[i+12]);
}
}
5.調試過程((1)測試數據
采用 RS232 把 PC 機與單片機連接起來,運行上位機程序如下圖所示:
向單片機發送信息時,PC 機顯示信息重復了。
((2))
數據分析
PC 機發送的數據給單片機能正常顯示,但單片機返回給 PC 機的信息重復了,經過反復檢查,原來是 recdata[recv_p]=SBUF;SBUF=recdata[recv_p];這語句重寫了,刪了,就恢復正常通信顯示了。
三. 結論 經過這次嵌入式系統實訓,熟悉了單片機設計,開發的流程,在楊琴老師,金紅老師,楊光杰老師的辛勤指導下,在和組員龐卡努力下,從最初的元件領取,電路焊接,利用 PROTEL99 畫電路原理圖,到代碼的編寫,我負責下位機程序,龐卡負責上位機的程序,經過我們的共同努力,加上各位老師的指導,終于在老師規定的時間內完成了單片機與上位機的通信。
這次嵌入式系統實訓,學習了嵌入式系統簡單開發流程,加深所學知識的理解。
第三篇:單片機實習報告
重慶城市管理職業學院
信息工程學院
單片機實習報告
專業班級電子A0801
學號0401080112
姓名呂爽
組號第一組
實 驗 室 單片機實訓室
成績評定
老師簽名
2009年 12月 25日
實訓課題:99數字跑表
實訓目的:通過實驗掌握顯示的接口電路及程序設計,熟悉各種操作指令,子程序的調用以及中斷知識和計數器的計數
實訓原理:通過把設計好的程序利用軟件將編譯得到HEX格式文件加載到單片機芯片中,實現仿真電路,得到仿真電路結果。
實驗儀器:電腦,Keil軟件,Proteus軟件
實訓要求:(1)四位LED數碼管動態顯示,顯示最小時間為0.01秒,最多顯示時間99秒;
(2)由按鍵控制,第一次按下鍵,開始計時,第二次按下鍵,停止計時,第三次按下鍵,清零。
在Keil軟件中,新建一個項目,命名為跑表,然后根據程序流程圖和仿真電路圖編寫程序。調試程序,檢查程序是否有誤,保存。得程序如下:
編寫程序
ORG0000H
LJMPMAIN
ORG0003H
LJMPL1
ORG0030H
/*開始程序*/
MAIN:SETBIT0
SETBP1.0;至高電頻
SETBEA;開中斷控制位
SETBEX0;開外部中斷0
MOVDPTR,#TAB;將TAB所代表的地址送入DPTR
MOV30H,#0
MOV40H,#0
MOVR1,#0
/*判斷R1,然后進行判斷*/
L4:JBP1.0,L14;P1.0的值為1,則轉移至L14
INCR1;R1加1
SETBP1.0
L14:MOVR3,#2
/*使時間達到0.01秒*/
L9:ACALLL3;絕對調用L3程序
ACALLL2
DECR3;寄存器減1
CJNER3,#0,L9
/*當按一次開關時進行跑秒*/
CJNER1,#1,L5;寄存器R1中的值不為1,則轉移到L5
MOVA,30H
ADDA,#1
DAA
CJNEA,#99H,L6
ACALLL7
CLRA
L6:MOV30H,A
/*當再一次按鍵時,暫停*/
L5:CJNER1,#2,L10
SJMPL4;轉移到L4
/*當繼續按鍵時,清零*/
L10: CJNER1,#3,L11
MOV30H,#0
MOV40H,#0
MOVR1,#0
L11: SJMPL4
/*跑秒顯示后兩位*/
L2:
CLRP2.3
MOVA,30H
ANLA,#0FH
MOVCA,@A+DPTR
MOVP0,A
LCALLL3
SETBP2.3
CLRP2.2
MOVA,30H
SWAPA
ANLA,#0FH
MOVC A,@A+DPTR
MOVP0,A
LCALLL3
SETBP2.2/*跑秒顯示前兩位*/
CLRP2.1
MOVA,40H
ANLA,#0FH
MOVCA,@A+DPTR
MOVP0,A
LCALL L3
SETB P2.1
CLRP2.0
MOVA,20H
SWAP A
ANLA,#0FH
MOVCA,@A+DPTR
MOVP0,A
LCALLL3
SETBP2.0
RET
/*顯示用的時間*/
l3: MOVR7,#250
J0: NOP;延遲一個機器周期的時間
NOP
DJNZR6,J0;寄存器減1不為0,轉移到J0
RET
/*終端打開*/
L1: CLR EA
CLR P1.0
SETBEA
RETI
/*秒位顯示*/
L7: MOVA,40H
ADDA,#1
DAA
CJNEA,#99H,L8
CLR A
L8: MOV40H,A
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
四:檢查程序是否有誤,然后修改,并將無誤的程序保存編譯為HEX格式文件,然后加載到單片機芯片中,查看電路,觀看仿真電路結果.得到課題要求的結果。
五、實訓小結
1)通過實訓,我們自己動手分析設計程序加深了對知識的理解和對指令的運用。
2)通過對程序的編譯和電路的仿真,使我們能夠更直觀得看到程序運行的結果。
3)通過實訓與所學知識的結合,提高我們動手的能力和對技能的熟悉。強化了我們得專業技能,能更好的運用所學知識。
第四篇:單片機實習報告
1602液晶顯示設計
一、實驗簡介:
通過學習本門課程,能夠掌握利用51單片機完成簡單項目的應用系統設計和調試,掌握單片機應用程序的編寫和調試過程。本次實習,我的題目是用51單片機控制1602液晶顯示指定字符的設計,需要分別設計系統的硬件電路及調試軟件程序,并能夠正確演示調試結果。
二、實驗要求:
1、查找資料學習單片機的LCD點陣顯示原理;
2、理解KST-51的LCD點陣顯示電路圖;
3、編制程序在點陣LCD上實現字母:我愛單片機繪制原理圖;
4、完成實驗報告的撰寫。
三、硬件電路:
(一)89C52系列單片機
89C52是INTEL公司MCS-51系列單片機中基本的產品,它內置8位中央處理單元、512字節內部數據存儲器RAM、8k片內程序存儲器(ROM)32個雙向輸入/輸出(I/O)口、3個16位定時/計數器和5個兩級中斷結構,一個全雙工串行通信口,片內時鐘振蕩電路。此外,89C52還可工作于低功耗模式,可通過兩種軟件選擇空閑和掉電模式。在空閑模式下凍結CPU而RAM定時器、串行口和中斷系統維持其功能。掉電模式下,保存RAM數據,時鐘振蕩停止,同時停止芯片內其它功能。89C52有PDIP(40pin)和PLCC(44pin)兩種封裝形式。
1、單片機最小系統
KST-51單片機開發板
最小系統是指單片機正常工作的最基本的外圍配置,主要包括時鐘電路、復位電路等。
51單片機最小系統是利用XTAL1和XTAL2兩個引腳外接晶體振蕩器的內部時鐘方式,C1和C2的作用是穩定頻率和快速起振,典型值為30pf,晶體振蕩器的振蕩頻率典型值為6 MHZ、12 MHZ或者11.0592 MHZ,系統與PC通信時常采用11.0592MHZ。
復位電路設計形式包括:上電復位、按鍵復位、和利用專業的復位芯片進行管理,本次設計采用按鍵復位方式。
51單片機最小系統
2、單片機引腳功能
51系列單片機有40個引腳,包括2個 電源引腳,2個外界晶振引腳,4個控制或 其他電源復用引腳,32個I/O引腳。1)主電源引腳(2根)VCC(Pin40):電源輸入,接+5V電源 GND(Pin20):接地線 2)外接晶振引腳(2根)
XTAL1(Pin19)、XTAL2(Pin18)主要用來構成單片機的時鐘電路。時鐘電路用來產生單片機工作所需的時鐘信號。時鐘信號分為內部時鐘方式和外部時鐘方式。3)控制引腳(4根)
RST/VPP(Pin9):復位引腳,引腳上出現2個機器周期的高電平將使單片機復位。
ALE/PROG(Pin30):地址鎖存允許信號 PSEN(Pin29):外部存儲器讀選通信號
EA/VPP(Pin31):程序存儲器的內外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內部程序存儲器讀指令。4)輸入/輸出引腳(32根)
P0口是一個雙功能的8位并行口,可以用做地址/數據總線,另外P0口還可以作為通用I/O口使用,此時為準雙向口,且內部無上拉電阻。
P1口是單功能的I/O口,只能作為通用的I/O口使用,為準雙向口,但內部有上拉電阻。
P2口是一個雙功能口,為準雙向口,但內部有上拉電阻,P2口功能主要有一下兩個方面:一是作為高8位地址輸出線使用時,P2口可以輸出外部存儲器的高8位地址,與P0口輸出的低8位地址一起構成16位地址,可以尋址64位的地址空間;二是作為通用I/O口使用時,與P1口使用方法一樣。
P3口作為通用I/O口時使用方法與P1一樣。另外,P3口主要作為第二功能使用。
(二)1602字符液晶
P3口第二功能表
字符型液晶顯示模塊是一種專門用于顯示字母、數字、符號等點陣式LCD,1602是指顯示的內容為16*2,即可以顯示兩行,每行16個字符。字符液晶絕大多數是基于HD44780液晶芯片的。
1602實物圖 1、1602LCD的特性
? +5V電壓,對比度可調 ? 內含復位電路
? 提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能
? 有80字節顯示數據存儲器DDRAM ? 內建有160個5X7點陣的字型的字符發生器CGROM ? 8個可由用戶自定義的5X7的字符發生器CGRAM
2、字符型LCD1602接口 引腳2、1為1602的電源和地,引腳15、16 為背光電源,引腳4、5、6為控制端口,引腳7-14為 數據端口,以下為各個端口的詳細介紹。3、1602存儲器
HD44780內置了DDRAM(顯示數據存儲RAM)、CGROM(字符存儲ROM)和CGRAM(用戶自定義RAM)。
DDRAM就是顯示數據RAM,用來寄存待顯示的字符代碼。共80個字節,其地址和屏幕的對應關系如下表:
在DDRAM的00H地址處顯示數據,則必須將00H加上80H,即0X80+0x00,若要在DDRAM的01H處顯示數據,則必須將01H加上80H即 0X80+0x01。以此類推。
字符發生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,如下表所示,這些字符有:阿拉伯數字、英文字母的大小寫、常 用的符號、和日文假名等,每一個字符都有一個固定的代碼。4、1602指令表
對DDRAM的內容和地址操作,HD44780的指令集及其設置說明,共有11條指令: 1)清屏指令
功能:<1> 清除液晶顯示器,即將DDRAM的內容全部填入“空白”的字符碼20H;<2> 光標歸位,即將光標撤回液晶顯示屏的左上方;<3> 將地址計數器(AC)的值設為0。
2)光標歸位指令
功能:<1> 把光標撤回到顯示器的左上方;<2> 把地址計數器(AC)的值設置為0;<3> 保持DDRAM的內容不變 3)輸入模式設置指令
功能:設定每次寫入1位數據后光標的移位方向,并且設定每次寫入的一個字符是否移動。參數設定的情況如下所示: 位名 設置
I/D 0=寫入新數據后光標左移 1=寫入新數據后光標右移
S 0=寫入新數據后顯示屏不移動 1=寫入新數據后顯示屏整體右移1個字 4)顯示開關控制指令
功能:控制顯示器開/關、光標顯示/關閉以及光標是否閃爍。參數設定的情況如下:
位名 設置 D 0=顯示功能關 1=顯示功能開 C 0=無光標 1=有光標 B 0=光標不閃爍 1=光標閃爍 5)設定顯示屏或光標移動方向指令
功能:使光標移位或使整個顯示屏幕移位。參數設定的情況如下: S/C R/L 設定情況
0 0 光標左移1格,且AC值減1 0 1 光標右移1格,且AC值加1 1 0 顯示器上字符全部左移一格,但光標不動 1 1 顯示器上字符全部右移一格,但光標不動 6)功能設定指令
功能:設定數據總線位數、顯示的行數及字型。參數設定的情況如下: 位名 設置
DL 0=數據總線為4位 1=數據總線為8位 N 0=顯示1行 1=顯示2行 F 0=5×7點陣/每字符 1=5×10點陣/每字符 7)設定CGRAM地址指令
功能:設定下一個要存入數據的CGRAM的地址。8)設定DDRAM地址指令
功能:設定下一個要存入數據的CGRAM的地址。9)讀取忙信號或AC地址指令
功能:<1> 讀取忙碌信號BF的內容,BF=1表示液晶顯示器忙,暫時無法接收單片機送來的數據或指令;當BF=0時,液晶顯示器可以接收單片機送來的數據或指令;<2> 讀取地址計數器(AC)的內容。10)數據寫入DDRAM或CGRAM指令
功能:<1> 將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對應的字符;<2> 將用戶自己設計的圖形存入CGRAM。11)從CGRAM或DDRAM讀出數據的指令
功能:讀取DDRAM或CGRAM中的內容。
5、時序圖
(1)讀狀態 輸入:RS=0,RW=1,E=1 讀數據 輸入:RS=1,RW=1,E=1(2)寫指令 輸入:RS=0,RW=0,E=下降沿脈沖,DB0~DB7=指令碼 寫數據 輸入:RS=1,RW=0,E=下降沿脈沖,DB0~DB7=數據
四、實習結果與討論:
通過程序的編輯在1602型LCD上實現了顯示英文字符,通過本次實驗的學習進一步熟悉了1602型LCD,對其操作有了更多的心得體會,在本次實驗中獲益匪淺。
五、實驗程序: #include
sbit LCD_RS = P2^0;sbit LCD_RW = P2^1;sbit LCD_EN = P2^2;
uchar code dis1[] = {“woai danpianji”};uchar code dis2[] = {“huizhi yuanlitu”};uchar code dis3[] = {“chen jian”};uchar code dis4[] = {“ dianzihua 1101 ”};
void delay(int ms){ int i;while(ms--){ for(i = 0;i< 250;i++){ _nop_();_nop_();_nop_();_nop_();} } }
bit lcd_busy(){ bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();result =(bit)(P0&0x80);LCD_EN = 0;return result;} void lcd_wcmd(uchar cmd){ while(lcd_busy());LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;}
void lcd_wdat(uchar dat){ while(lcd_busy());LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;}
void lcd_pos(uchar pos){ lcd_wcmd(pos|0x80);//數據指針=80+地址變量 }
void lcd_init(){ lcd_wcmd(0x38);//16*2顯示,5*7點陣,8位數據 delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x0c);//顯示開,關光標 delay(5);lcd_wcmd(0x06);//移動光標 delay(5);lcd_wcmd(0x01);//清除LCD的顯示內容 delay(5);}
void flash(){ delay(600);//控制停留時間 lcd_wcmd(0x08);//關閉顯示 delay(200);//延時 lcd_wcmd(0x0c);//開顯示 delay(200);//延時 lcd_wcmd(0x08);//關閉顯示 delay(200);//延時 lcd_wcmd(0x0c);//開顯示 delay(200);} main(){ uchar i;delay(10);lcd_init();// 初始化LCD
while(1){ lcd_wcmd(0x06);//向右移動光標
lcd_pos(0);//設置顯示位置為第一行的第1個字符 i = 0;while(dis1[i]!= ' 主站蜘蛛池模板: 久久综合九色欧美婷婷| 永久不封国产av毛片| 亚洲av区无码字幕中文色| 日本护士╳╳╳hd少妇| 欧美熟妇xxxxx欧美老妇不卡| 国产又黄又硬又湿又黄的| 国产午夜福利久久精品| 日本边添边摸边做边爱边| 国产av在线www污污污十八禁| 国产韩国精品一区二区三区久久| 东京无码熟妇人妻av在线网址| 精品人妻无码| 久久无码人妻一区二区三区午夜| 挺进邻居丰满少妇的身体| 免费观看四虎精品国产地址| 另类老妇奶性BBWBBw| 特级欧美插插插插插bbbbb| 国产高清视频在线观看三区| 精品免费国偷自产在线视频| 国产精品人妻99一区二区三区| 国产av久久人人澡人人爱| 人妻系列无码专区免费视频| 国产精品99久久免费| 亚洲日本高清成人aⅴ片| 国产在线精品一区二区在线观看| h动漫无遮挡成本人h视频| 久久亚洲国产五月综合网| 96国产xxxx免费视频| 边添小泬边狠狠躁视频| 欧美天天综合色影久久精品| 99精品国产再热久久无毒不卡| 国产香蕉一区二区三区在线视频| 久久久亚洲欧洲日产国码αv| 久久亚洲精品无码观看不| 国产av午夜精品一区二区三| 亚洲精品国产av现线| 亚洲日韩在线观看免费视频| 午夜片无码区在线观看视频| 国产精品白浆无码流出视频| 成人乱人乱一区二区三区| 五月丁香六月狠狠爱综合|