洛陽理工單片機(jī)與接口技術(shù)課程設(shè)計(jì)報(bào)告_第1頁
洛陽理工單片機(jī)與接口技術(shù)課程設(shè)計(jì)報(bào)告_第2頁
洛陽理工單片機(jī)與接口技術(shù)課程設(shè)計(jì)報(bào)告_第3頁
洛陽理工單片機(jī)與接口技術(shù)課程設(shè)計(jì)報(bào)告_第4頁
洛陽理工單片機(jī)與接口技術(shù)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、洛 陽 理 工 學(xué) 院課 程 設(shè) 計(jì) 報(bào) 告 課程名稱 單片機(jī)原理與接口技術(shù) 設(shè)計(jì)題目 基于STC89C52單片機(jī)的實(shí)驗(yàn)系統(tǒng)開發(fā)與設(shè)計(jì) 專 業(yè) 通信工程 班 級 B120509 學(xué) 號 B12050923 姓 名 徐 國 旗 完成日期 2015年1月10日 課 程 設(shè) 計(jì) 任 務(wù) 書設(shè)計(jì)題目: 基于STC89C52單片機(jī)的實(shí)驗(yàn)系統(tǒng)開發(fā)與設(shè)計(jì) 設(shè)計(jì)內(nèi)容與要求:一、設(shè)計(jì)內(nèi)容利用STC系列單片機(jī)作為微控制器開發(fā)一套軟、硬件相結(jié)合的單片機(jī)實(shí)驗(yàn)平臺,主要包括以下內(nèi)容:1. 電路原理圖設(shè)計(jì),主要包括集LCD顯示模塊、串口通信模塊、數(shù)碼管顯示模塊、LED發(fā)光二極管、鍵盤等接口電路的設(shè)計(jì);2. 學(xué)習(xí)集成電路等

2、芯片的焊接方法與技巧,進(jìn)行實(shí)際元器件的識別,進(jìn)行電路板焊接;3. 在Keil C環(huán)境下,進(jìn)行軟件設(shè)計(jì)。主要包括流水燈、計(jì)數(shù)器、LCD字符顯示、鍵盤的控制等功能程序設(shè)計(jì);4. 針對所開發(fā)的實(shí)驗(yàn)板,結(jié)合器件選擇、原理圖設(shè)計(jì)、硬件焊接、軟件編程調(diào)試、軟硬件聯(lián)調(diào)等方面寫出課程設(shè)計(jì)報(bào)告。二、設(shè)計(jì)要求1. 完成綜合實(shí)驗(yàn)系統(tǒng)的電路結(jié)構(gòu)分析,進(jìn)行模塊分解,掌握各部分電路的工作原理;2. 獨(dú)立完成電路板的焊接,掌握故障排除方法,完成實(shí)驗(yàn)平臺的硬件設(shè)計(jì)及開發(fā);3. 結(jié)合Keil C軟件在焊接無誤的單片機(jī)實(shí)驗(yàn)平臺上開發(fā)出流水燈、LCD顯示模塊,數(shù)碼管顯示模塊等程序設(shè)計(jì);4. 按照要求撰寫課程設(shè)計(jì)論文。 指導(dǎo)教師:

3、李傳鋒 2014年 12 月1日課 程 設(shè) 計(jì) 評 語 成績: 指導(dǎo)教師:_ 年 月 日目 錄摘 要1ABSTRACT2第1章 概述31.1 設(shè)計(jì)題目31.2 設(shè)計(jì)步驟31.3 Proteus與Keil C51軟件介紹3第2章 硬件電路設(shè)計(jì)42.1 電路各元器件介紹42.1.1 LCD1602液晶42.1.2 兩位一體共陰數(shù)碼管52.1.3 其它元器件介紹62.2 仿真電路連接與實(shí)物焊接72.2.1 protues仿真電路72.2.2電路板焊接8第3章 軟件設(shè)計(jì)93.1 程序整體思路93.2 程序編程實(shí)現(xiàn)103.3 程序的優(yōu)缺點(diǎn)分析12第4章 仿真及實(shí)物效果展示124.1 關(guān)閉菜單與主菜單12

4、4.2流水燈模塊134.3 計(jì)數(shù)器模塊144.4 LCD液晶顯示模塊14心得體會(huì)15參考文獻(xiàn)15附錄1621基于STC89C52單片機(jī)的實(shí)驗(yàn)系統(tǒng)開發(fā)與設(shè)計(jì)摘 要單片機(jī),全稱單片微型計(jì)算機(jī)(英語:Single-Chip Microcomputer),又稱微控制器(Microcontroller),是把中央處理器、存儲(chǔ)器、定時(shí)/計(jì)數(shù)(Timer/Counter)、各種輸入輸出接口等都集成在一塊集成電路芯片上的微型計(jì)算機(jī)。與應(yīng)用在個(gè)人電腦中的通用型微處理器相比,它更強(qiáng)調(diào)自供應(yīng)(不用外接硬件)和節(jié)約成本。它的最大優(yōu)點(diǎn)是體積小,可放在儀表內(nèi)部,但存儲(chǔ)量小,輸入輸出接口簡單,功能較低。由于其發(fā)展非常迅速,

5、舊的單片機(jī)的定義已不能滿足,所以在很多應(yīng)用場合被稱為范圍更廣的微控制器;由于單芯片微電腦常用于當(dāng)控制器故又名single chip microcontroller,但是目前在中國大陸仍多沿用“單片機(jī)”的稱呼。主要特點(diǎn):1、主流單片機(jī)包括CPU、4KB容量的ROM、128 B容量的RAM、 2個(gè)16位定時(shí)/計(jì)數(shù)器、4個(gè)8位并行口、全雙工串口行口、ADC/DAC、SPI、I2C、ISP、IAP。2、系統(tǒng)結(jié)構(gòu)簡單,使用方便,實(shí)現(xiàn)模塊化;3、單片機(jī)可靠性高,可工作到106 107小時(shí)無故障;4、處理功能強(qiáng),速度快。5、低電壓,低功耗,便于生產(chǎn)便攜式產(chǎn)品6、控制功能強(qiáng)7、環(huán)境適應(yīng)能力強(qiáng)。本次課程設(shè)計(jì)就是

6、利用STC系列單片機(jī)作為微控制器開發(fā)一套軟、硬件相結(jié)合的單片機(jī)實(shí)驗(yàn)平臺,主要通過電路原理圖,進(jìn)行電路的焊接。原理圖主要包括集LCD顯示模塊、串口通信模塊、數(shù)碼管顯示模塊、LED發(fā)光二極管、鍵盤等接口電路的設(shè)計(jì)。關(guān)鍵詞: STC單片機(jī),數(shù)碼管,流水燈,LCD液晶顯示Development and design of experimental system based on STC89C52 single chip microcomputerABSTRACTSingle chip microcomputer, the single chip microcomputer

7、 (English Name:Single-Chip Microcomputer), also known as micro controller (Microcontroller),is the central processor, memory, timer / counter (Timer/Counter), a variety ofinput and output interface are integrated with micro computer

8、60;on a single integrated circuit chip. Compared with the general-purpose microprocessorsused in personal computer, it is more emphasis on self supply (no externalhardware) and cost savings. Its biggest advantage is small size, can be put i

9、nthe instrument, but small storage capacity, input and output interface simple,function is relatively low. Because of its development is very rapid, the old definitions of SCM has been unable to meet, so known in many applications 

10、;fora wider range of micro controller; single chip microcomputer as controller isoften used when is also known as the single chip microcontroller, but at present, in the China mostly uses the "chip" call. The m

11、ain features:1, the mainstream chip including CPU, ROM, 4KB capacity of 128 B capacityRAM, 2 16 bit timer / counter 4, a 8 bit parallel port, full duplex serial port forexport, ADC/DAC, SPI, I2C, ISP, 

12、;IAP.2, the system has the advantages of simple structure, convenient use, realize modularization;The 3 single chip microcomputer, high reliability, can work to 106 107 hours without fault;4, strong processing ability, speed.5, lo

13、w voltage, low power consumption, easy production of portable products6, strong control function7, strong ability to adapt to the environment.SCM experiment platform for the curriculum design is the combination of microcontroller is developed as

14、 a set of soft, hardware using STC series microcontroller, mainly through the circuit principle diagram, welding circuit.Schematic including set LCD display module, serial communication module,digital tube display module design,&#

15、160;LED light-emitting diode, keyboardinterface circuit. The MCU Course set up it is modular hardware structure andsimple human-computer interaction function, hardware module and part of the demo program. KEYWORDS: STC microcontroller, 

16、;digital tube, water lights, LCD liquid crystal display第1章 概述1.1 設(shè)計(jì)題目基于51系列單片機(jī)的實(shí)驗(yàn)平臺開發(fā)設(shè)計(jì)1.2 設(shè)計(jì)步驟 1學(xué)習(xí)各元器件,弄清楚其工作原理;2Proteus軟件仿真電路圖的繪制;3根據(jù)電路圖在開發(fā)板上進(jìn)行焊接;4編寫、調(diào)試開發(fā)板程序 5下載到單片機(jī)中,查看實(shí)際運(yùn)行效果。1.3 Proteus與Keil C51軟件介紹Proteus軟件是英國Lab Center Electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功

17、能,還能仿真單片機(jī)及外圍器件。它是目前比較好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列

18、處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MATLAB等多種編譯器。Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(Vision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編

19、程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍第2章 硬件電路設(shè)計(jì)2.1 電路各元器件介紹2.1.1 LCD1602液晶液晶顯示器,或稱LCD(Liquid Crystal Display),為平面超薄的顯示設(shè)備,它由一定數(shù)量的彩色或黑白像素組成,放置于光源或者反射面前方。液晶顯示器功耗很低,因此倍受工程師青睞,適用于使用電池的電子設(shè)備。它的主要原理是以電流刺激液晶分子產(chǎn)生點(diǎn)、線、面配合背部燈管構(gòu)成畫面。1、LCD1602實(shí)物圖圖 1 LCD 外觀及引腳顯示容量:16 個(gè)×2 排字符;工作電流 2.0mA(5.0V);字符尺寸:2.95× 4.35mm。【

20、能夠看到的是 2 排,各 16 個(gè)字符,不是漢字】2、LCD1602的讀寫LCD1602 的第 5 腳: R / W ,讀寫操作選擇(1讀,0寫)。表1 LCD1602的讀寫RSR / W寄存器及操作00指令寄存器寫入01忙信號和地址計(jì)數(shù)器讀出10數(shù)據(jù)寄存器寫入11數(shù)據(jù)寄存器讀出LCD1602 的第 6 腳:E 端為使能端,當(dāng) E 端由高電平跳變成低電平時(shí)(負(fù)跳變),液晶模塊執(zhí)行命令?!绢愃朴?74LS373,需要負(fù)跳變】執(zhí)行一條命令或?qū)?入一個(gè)數(shù)據(jù),都要使 E 有一個(gè)負(fù)跳變。2.1.2 兩位一體共陰數(shù)碼管122.1數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。共陰數(shù)碼管是指將所有發(fā)光二

21、極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管,共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。同時(shí)數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字1、實(shí)物圖圖2 兩位一體LED數(shù)碼管2、共陰極LED數(shù)碼管的內(nèi)部結(jié)構(gòu)原理圖:圖3共陰極LED數(shù)碼管的內(nèi)部結(jié)構(gòu)原理圖表2 共陰數(shù)碼管字模表顯示0123456789字模0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f此次設(shè)計(jì)中兩位一體數(shù)碼管采用74LS374鎖存器鎖存,電路詳見附錄。 2.

22、1.3 其它元器件介紹1、LED流水燈流水燈中用8只LED發(fā)光二極管練成一排,作為流水燈。二極管長引腳為正極短引腳為負(fù)極,也可用萬用表測量。發(fā)光二極管如圖所示。圖4 LED發(fā)光二極管2、74LS138 、74LS373芯片圖5 74LS138引腳及真值表 注:1 表示高電平,0 表示低電平,×表示任意【C 為高位,A 為低位】OELEDQ0111010000×不變1××高阻態(tài)圖6 74LS373引腳及 功能表74LS373 的三種工作方式:跟隨(OE =0,LE=1,輸出跟隨輸入)鎖存(OE =0,LE 從高變?yōu)榈拓?fù)跳變時(shí),鎖存 D0D7)高阻(OE =

23、1,Q0Q7 輸出為高阻,相當(dāng)于斷開)另外,此次設(shè)計(jì)中還用的排阻、色環(huán)電阻、電容、三極管等元件,在此不再做詳細(xì)介紹。2.2 仿真電路連接與實(shí)物焊接2.2.1 protues仿真電路在protues中連接各模塊電路,注意各元器件的接法,各模塊連接電路圖如下:圖7 液晶顯示及流水燈模塊圖8 數(shù)碼管及按鍵模塊其它模塊的連接在此不再展示,詳見附錄。2.2.2電路板焊接1、焊接準(zhǔn)備根據(jù)電路原理圖,焊接元器件。先讀出色環(huán)電阻的阻值,判斷電容引腳的正負(fù)極,或用萬用表測試。檢測各器件是否正常。準(zhǔn)備好電烙鐵、焊錫、松香等必備物品。2、焊接給電烙鐵加熱,達(dá)到溫度后按電路板上元件從低到高的順序進(jìn)行焊接,在焊接時(shí)要細(xì)

24、心、仔細(xì),在正確的位置焊上正確的元件,防止出現(xiàn)錯(cuò)誤。3、檢測焊接電路完成后檢查是否有漏焊、連錫等問題。在我們組用了一上午焊接電路,檢查時(shí)發(fā)現(xiàn)LCD液晶顯示不能顯示、一個(gè)發(fā)光二極管不亮,經(jīng)檢測是器件損壞,經(jīng)更換后故障解除。焊接實(shí)物圖如下:圖9 焊接電路圖第3章 軟件設(shè)計(jì)3.1 程序整體思路按1按3按2按2按1按2按1按2主菜單關(guān)閉計(jì)數(shù)器流水燈LCD模塊左移右移移暫停加計(jì)數(shù)減計(jì)數(shù)歸零姓名學(xué)號日期按4按4按1按3按3按3按4 由各模塊返回主菜單從電路著手編寫程序,希望一個(gè)程序能把各模塊連接起來,而不是用多個(gè)程序進(jìn)行加載。并且打開電源后能夠根據(jù)菜單提示通過按鍵重復(fù)進(jìn)入各模塊,而不是每次都需要復(fù)位。所以

25、可以先分開寫各模塊程序,然后連接起來??捎脀hile語句查詢各標(biāo)志位實(shí)現(xiàn)開電源后能夠重復(fù)進(jìn)入各模塊。程序的流程及各標(biāo)志位含義如下:圖10 程序流程圖要實(shí)現(xiàn)流程圖所示內(nèi)容,需要解決下面幾個(gè)問題:(1)如何在各個(gè)模塊之間靈活轉(zhuǎn)換,并且在轉(zhuǎn)換時(shí)盡可能少的影響其它模塊;(2)如何在一個(gè)模塊中用多個(gè)按鍵實(shí)現(xiàn)多種功能;(3)如何用LCD顯示操作提示信息;(4)如何解決在仿真電路中不會(huì)出現(xiàn)但在實(shí)際電路板中出現(xiàn)的按鍵抖動(dòng)問題。表3 各標(biāo)志位含義s總標(biāo)志位,1開,0關(guān)b11寫時(shí)計(jì)數(shù)器菜單s1每次進(jìn)入主菜單時(shí)寫主菜單b2更新計(jì)數(shù)值時(shí)重新顯示s2剛通電或關(guān)閉時(shí)寫關(guān)閉菜單cLCD模塊總標(biāo)志位a流水燈總標(biāo)志位,1進(jìn)入0

26、退出c01時(shí)寫LCD菜單a1流水燈左循環(huán)標(biāo)志位c1LCD顯示姓名a2流水燈右循環(huán)標(biāo)志位c2LCD顯示學(xué)號a3流水燈暫停標(biāo)志位c3LCD顯示日期b計(jì)數(shù)器總標(biāo)志位,1進(jìn)入0退出3.2 程序編程實(shí)現(xiàn)(1)流水燈函數(shù)程序(執(zhí)行該模塊的同時(shí),LCD上顯示流水燈菜單,詳見附錄):void ledmod()writemenu(LEDmenu);/寫菜單for(i=0;i<3;i+) /先閃爍幾下后全亮 P2=0x55; delay(150); P2=0xaa; delay(150); P2=0;while(1)if(a1=1) for(i=0;i<8;i+)/往左流 if(a=0)break;/

27、a=0,跳出LED模塊,下同 if(a2=1)a1=0;break; P2=ledi; delay(200); while(a3=1) if(a=0)break;/a3=1,執(zhí)行while循環(huán),相當(dāng)于暫停 if(a2=1) for(i=0;i<8;i+) /往右流 if(a=0)break; if(a1=1)a2=0;break; P2=led7-i; delay(200); while(a3=1) if(a=0)break; if(a=0)break;(2)計(jì)數(shù)器函數(shù)程序(執(zhí)行該模塊的同時(shí),LCD上顯示計(jì)數(shù)器菜單,詳見附錄):void coutermod() if(b1=1)b1=0;

28、/進(jìn)入計(jì)數(shù)器后,寫菜單并讓數(shù)碼管顯示0,流水燈熄滅 writemenu(counter);P0=0x3f;P2=0xff;if(b2=1)b2=0; /按下按鍵數(shù)據(jù)改變時(shí),數(shù)碼管重新顯示p25=1;p26=0;p27=0; P0=tablecount/10; p25=p26=p27=0;P0=tablecount%10;(3)LCD液晶顯示模塊程序(執(zhí)行該模塊的同時(shí),LCD上顯示其菜單,詳見附錄):void LCDmod()if(c0=1)c0=0;writemenu(lcdmenu);/寫LCD菜單if(c1=1)c1=0; / wcmd(0x80+0x40);for(j=0;j<16

29、;j+)wdat(namej);if(c2=1)c2=0; wcmd(0x80+0x40);for(j=0;j<16;j+)wdat(numj);if(c3=1)c3=0; wcmd(0x80+0x40);for(j=0;j<16;j+)wdat(datej);(4)寫各菜單函數(shù)(用于寫各個(gè)模塊的菜單):void writemenu(unsigned char p)wcmd(0x01);for(j=0;j<16;j+)wdat(pj);wcmd(0x80+0x40);for(;j<32;j+)wdat(pj);(5)主函數(shù)void main()TCON=0x55;/01

30、010101,TR1=TR0=IT1=IT0=1TMOD=0x66;/01100110, 兩個(gè)都為計(jì)數(shù)方式2TH0=TL0=0xff; TH1=TL1=0xff;IE=0x8f;LCD_init(); writemenu(OFF);P0=0;while(1)if(s) /s=1,開始;s=0,關(guān)閉。while(1)if(s1)s1=0;writemenu(mainmenu);if(a=1)ledmod();if(b=1)coutermod();if(c=1)LCDmod(); if(s=0) writemenu(OFF);break;(6)四個(gè)中斷函數(shù):key0() interrupt 1 d

31、elay(30);if(p34)return; /防按鍵抖動(dòng) if(a=0&&b=0&&c=0&&s)a=1;return;/&&b=0&&c=0&&s,判斷是否在主菜單中,下同 if(a=1)if(a1=0&&a3=0)a1=1; /&&a3=0,暫停時(shí)不能通過中斷改變循環(huán)方向 if(b=1)count+;if(count=100)count=0;b2=1; if(c=1)if(c1=0)c1=1; key1() interrupt 3 delay(30);if(p

32、35)return; /防按鍵抖動(dòng) if(b=0&&a=0&&c=0&&s)b=b1=1;return; /b1=1,第一次進(jìn)入計(jì)數(shù)器 if(a=1)if(a2=0&&a3=0)a2=1; if(b=1)count-;if(count<0)count=0;b2=1; if(c=1)if(c2=0)c2=1; key2() interrupt 0 delay(30);if(p32)return; /防按鍵抖動(dòng) if(c=0&&b=0&&a=0&&s)c=1;c0=1;return

33、; if(a=1&&(a1|a2)a3=!a3;/&&(a1|a2),防止剛進(jìn)入流水燈時(shí),按下暫停鍵暫停 if(b=1)count=0;b2=1; if(c=1)if(c3=0)c3=1; key3() interrupt 2 delay(30);if(p33)return; /防按鍵抖動(dòng)if(a=0&&b=0&&c=0)s=!s; /在關(guān)閉或主菜單中按下key3開始或進(jìn)入主菜單if(a=1)a=0;a1=a2=a3=0;if(b=1)b=count=b2=0; if(c=1)c=c1=c2=c3=0; if(s) s1=1;/s

34、=1,在每次由各模塊返回到主菜單或由關(guān)閉到主菜單時(shí)寫主菜單 else s2=1;/s=0,在剛通電或由主菜單關(guān)閉時(shí)寫關(guān)閉菜單此次編程和優(yōu)化總共花費(fèi)了十多個(gè)小時(shí),最終達(dá)到自己預(yù)想的效果,其它如LCD驅(qū)動(dòng)函數(shù)、定義變量等函數(shù)命令在此不再列出,詳見附錄中的源程序。3.3 程序的優(yōu)缺點(diǎn)分析優(yōu)點(diǎn):(1) 一個(gè)程序能把各模塊連接起來,而不是用多個(gè)程序進(jìn)行加載。(2) 打開電源后能夠重復(fù)進(jìn)入各模塊,無需每次復(fù)位。(3) 每個(gè)模塊都可以通過按鍵實(shí)現(xiàn)多種功能,功能豐富。(4) 可根據(jù)LCD提示操作,更加人性化。(5) 各模塊單獨(dú)為一個(gè)函數(shù),使程序結(jié)構(gòu)明朗。缺點(diǎn):主要是標(biāo)志位過于繁多,閱讀困難,給程序的修改和優(yōu)化

35、帶來麻煩。所以程序還有待優(yōu)化。 第4章 仿真及實(shí)物效果展示4.1 關(guān)閉菜單與主菜單關(guān)閉菜單與主菜單效果如下圖所示: 圖11 仿真與實(shí)物的關(guān)閉菜單與主菜單4.2 流水燈模塊功能有左流、右流、清零、返回,部分功能展示如下:圖12 流水燈模塊仿真及實(shí)物部分效果4.3 計(jì)數(shù)器模塊功能有加計(jì)數(shù)、減計(jì)數(shù)、清零、返回,部分功能展示如下:圖13 計(jì)數(shù)器模塊部分效果4.4 LCD液晶顯示模塊功能有顯示姓名、學(xué)號、日期、返回,部分功能展示如下:圖14 LCD模塊部分效果心得體會(huì)參考文獻(xiàn)【1】林立,張俊亮編.單片機(jī)原理及應(yīng)用基于Proteus和Keil cM. 北京:電子工業(yè)出版社,2013.1【2】譚浩強(qiáng). C程

36、序設(shè)計(jì)(第四版). 北京:清華大學(xué)出版社,2010.6【3】周潤景等.PROTEUS入門實(shí)用教程.北京:機(jī)械工業(yè)出版社,2007.【4】賈好來.MCS-51單片機(jī)原理及應(yīng)用.北京:機(jī)械工業(yè)出版社,2007.【5】李蒙 毛建東編.單片機(jī)原理及應(yīng)用M. 北京:中國輕工業(yè)出版社, 2010附錄 1、源程序#include<reg51.h>#define uchar unsigned charsbit RS=P16;sbit RW=P17;sbit p25=P25;sbit p26=P26;sbit p27=P27;sbit p32=P32;sbit p33=P33;sbit p34=P3

37、4;sbit p35=P35;bit s,s1,s2,a,a1,a2,a3,b,b1,b2,c,c0,c1,c2,c3;char count;uchar LCD_Status,i,j;uchar code mainmenu=" Main menu: 1LED 2C 3LCD4OFF"uchar code LEDmenu=' ',' ',' ','N','o','w',' ','i','s',' ','L

38、9;,'E','D',':',' ',' ',' ','1',':',0x7f,'2',':',0x7e,'3',':','p','/','s',' ','4',':','R'uchar code counter="Now is counter: 1:+ 2:- 3:'0

39、9;4:R"uchar code lcdmenu=" Now is LCD: 1name2num3date4R"uchar code name=" XuGuoQi "uchar code num=" B12050923 "uchar code date=" 2014/12/18 "uchar code OFF=" OFF Press key4 Start"uchar code led=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7e,0

40、x3c,0x18,0x00;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; void delay(unsigned int count) unsigned char i;while(count-) for(i=0; i<120; i+);/*LCD相關(guān)驅(qū)動(dòng)函數(shù)*/ unsigned char Busy_Check() /檢查忙函數(shù) RS=0; RW=1; /RS=0,控制寄存器,RW=1,讀p25=0;p26=1;p27=0;delay(1);LCD_Status = P0; delay(1);p25

41、=1;p26=1;p27=0;return LCD_Status;void wcmd(unsigned char cmd) /寫命令函數(shù), RS=0;RW=0while(Busy_Check()&0x80)=0x80); RS=0;RW=0; p25=0;p26=1;p27=0;P0=cmd; delay(1);p25=1;p26=1;p27=0;void wdat(unsigned char dat) /寫數(shù)據(jù)函數(shù), RS=1;RW=0while(Busy_Check() & 0x80)=0x80); RS=1;RW=0;p25=0;p26=1;p27=0;P0=dat; d

42、elay(1);p25=1;p26=1;p27=1;P0=0; /每次寫數(shù)據(jù)后熄滅LED數(shù)碼管P2=0xff; /每次寫數(shù)據(jù)后熄滅LED流水燈void LCD_init() / 初始化函數(shù) wcmd(0x38); /38H=0011 1000,使用8 位,用5×7 的字型,2 行delay(1); /改為0x3C=0011 1100,就用5×10 字型wcmd(0x01); /01H=0000 0001,清屏【命令1】delay(1); wcmd(0x06); /06H=0000 0110,字符不動(dòng),光標(biāo)自動(dòng)右移一格【命令3】delay(1);wcmd(0x0c); /0e

43、H=0000 1110,開顯示,無光標(biāo),字符不閃爍【命令4】delay(1);/*寫各菜單函數(shù)*/void writemenu(unsigned char p)wcmd(0x01);for(j=0;j<16;j+)wdat(pj);wcmd(0x80+0x40);for(;j<32;j+)wdat(pj);/*LED流水燈模塊函數(shù)*/void ledmod()writemenu(LEDmenu);/寫菜單for(i=0;i<3;i+) /先閃爍幾下后全亮 P2=0x55; delay(150); P2=0xaa; delay(150); P2=0;while(1)if(a1=

44、1) for(i=0;i<8;i+)/往左流 if(a=0)break;/a=0,跳出LED模塊,下同 if(a2=1)a1=0;break; P2=ledi; delay(200); while(a3=1) if(a=0)break;/a3=1,執(zhí)行while循環(huán),相當(dāng)于暫停 if(a2=1) for(i=0;i<8;i+) /往右流 if(a=0)break; if(a1=1)a2=0;break; P2=led7-i; delay(200); while(a3=1) if(a=0)break; if(a=0)break;/*計(jì)數(shù)器模塊函數(shù)*/void coutermod() if(b1=1)b1=0;/進(jìn)入計(jì)數(shù)器后,寫菜單并讓數(shù)碼管顯示0,流水燈熄滅 writemenu(counter);P0=0x3f;P2=0xff;if(b2=1)b2=0; /按下按鍵數(shù)據(jù)改變時(shí),數(shù)碼管重新顯示p25=1;p26=0;p27=0; P0=tablecount/10; p25=p26=p27=0;P0=tablecount%10;/*LCD模塊函數(shù)*/void LCDmod()if(c0=1)c0=0;writemenu(lcdmenu);/寫LCD菜單if(c1=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論