欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      單片機實踐報告五篇

      時間:2020-11-05 12:23:42下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《單片機實踐報告》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《單片機實踐報告》。

      第一篇:單片機實踐報告

      黑龍江科技大學(xué)? ?

      綜合設(shè)計性實驗報告

      實驗項目名稱

      生產(chǎn)車間流水線自動控制模擬 所屬課程名稱

      單片機 實

      2015-4-13—2015-4-17

      班 班

      級 級

      自動化 13-5 班 學(xué) 學(xué)

      號 號

      2013022332 姓 姓

      名 名

      于思淼 成 成績

      電氣與控制工程學(xué)院實驗室

      實驗概述:

      【實驗?zāi)康募耙蟆?/p>

      目的:基本掌握單片機的指令系統(tǒng),尤其是 MCS-51 單片機指令系統(tǒng),應(yīng)根據(jù)所選課題的任務(wù)、要求和條件進行總體方案的設(shè)計,通過方案比較,確定總體方案。然后對方案中以單片機為核心的電路進行設(shè)計計算。

      實踐教學(xué)環(huán)節(jié)是對學(xué)生學(xué)習(xí)的綜合性的訓(xùn)練,單片機工程實踐是以工程項目和工程應(yīng)用為課題,著重培養(yǎng)學(xué)生工程實踐能力、獨立工作能力及創(chuàng)新能力。

      單片機工程實踐應(yīng)達到的基本要求:

      1、綜合運用單片機技術(shù)課程中所學(xué)到的理論知識

      學(xué)生根據(jù)所選課題的任務(wù)、要求和條件進行總體方案的設(shè)計,通過方案比較,決定總體方案。然后對方案中以單片機為核心的電路進行設(shè)計計算,包括元器件的選擇和電路參考的計算,并畫出總體電路圖。

      2、硬件電路制作

      設(shè)計方案指導(dǎo)教師審查通過后,學(xué)生可向指導(dǎo)教師領(lǐng)取所需元器件等材料,并制作電路。

      3、軟件的編制與仿真

      根據(jù)已設(shè)計出的軟件系統(tǒng)框圖,用 MCX-51 匯編語言編制出各功能模塊的子程序及整機軟件系統(tǒng)的主程序,程序設(shè)計時,要充分考慮與所設(shè)計硬件電路的連接及有關(guān)定量的要求。

      4、撰寫實踐總結(jié)報告.5、本實驗要求:(1)模擬生產(chǎn)車間流水線自動控制及產(chǎn)生故障后自動報警停止流水線工作,只要按下任一按鈕就產(chǎn)生報警信號,排除后繼續(xù)工作。(2)P1.0~P1.7 分別控制從準(zhǔn)備到入庫的 8 道工序,P3.3 為報警的輸入端(使用外部中斷 INT1,觸發(fā)方式為下降沿觸發(fā))。只要按下任一按鈕(每道工序一個按鈕)就產(chǎn)生報警信號,排除后繼續(xù)工作。中斷入口地址為 0013H。

      【實驗原理】

      P1.0~P1.7 分別控制從準(zhǔn)備到入庫的 8 道工序,P3.3 為報警的輸入端(使用外部中斷 INT1,觸發(fā)方式為下降沿觸發(fā))。只要按下任一按鈕(每道工序一個按鈕)就產(chǎn)生報警信號,排除后繼續(xù)工作。中斷入口地址為 0013H。

      設(shè)計題目:生產(chǎn)車間流水燈的控制 第一步:了解流水燈的控制原理 第二部:擬定控制方案 第三部:根據(jù)方案用 Keil 軟件編寫程序 第四步:運用 Proteus 軟件模擬真實流水燈將程序運行 第五步:觀察,并記錄

      原理圖如下所示:

      【實驗環(huán)境】(使用的軟件)

      本實驗采用 Keil 軟件和 Proteus 軟件,該軟件模擬了真實流水燈的電路

      實驗內(nèi)容:

      【實驗方案設(shè)計】

      方案一

      流水燈控制(現(xiàn)象和程序)

      org 0000h mov a,#01h main: mov p1,a acall delay rl a ljmp main

      delay:mov r2,#2 d0:mov r0,#255 d1:mov r1,#98 nop djnz r1,$ djnz r0,d1 djnz r2,d0 ret end

      流水燈依次亮無限循環(huán)不停止,延時時間 1s。

      方案二

      帶中斷的流水燈控制(現(xiàn)象和程序)

      org 0000h mov ie,#84h mov tcon,#04h ljmp main org 0013h ljmp zd

      org 0030h main:mov a,#01h

      loop:mov p1,a acall delay rl a ajmp loop mov p1,#00h sjmp $

      delay:mov r2,#2 d0:mov r0,#255 d1:mov r1,#98 nop djnz r1,$ djnz r0,d1 djnz r2,d0 ret

      zd: mov a,#080h xh:mov p1,a acall delay rr a

      jnb p3.3,xh reti end

      流水燈按照次序依次亮中斷后流水燈反向依次亮,延時時間 1s。

      【 實驗過程 】

      (實驗步驟、記錄、數(shù)據(jù)、分析)

      1、了解流水線模塊硬件工作原理,設(shè)計出流程圖,確定程序大體方案。

      2、根據(jù)設(shè)計編制程序 3、編譯,調(diào)試程序。若編譯,連接過程中產(chǎn)生的信息顯示在信息窗的“建立”視中。如編譯有錯誤,警告信息,用鼠標(biāo)左鍵雙擊錯誤,警告信息或?qū)⒐鈽?biāo)移到錯誤,警告信息上,回車,系統(tǒng)自動打開對應(yīng)的出錯文件,并定位于出錯行上 4、運行方案一和方案二,觀察實驗現(xiàn)象,檢查生產(chǎn)車間流水線自動控制模擬工作狀況是否滿足設(shè)計要求,若不滿足重新檢查程序,重新調(diào)試,若滿足則實驗結(jié)束后退出調(diào)試狀態(tài)。

      【結(jié)論】(結(jié)果)

      1.流水燈依次亮無限循環(huán)不停止

      2.流水燈按照次序依次亮,循環(huán) 5 5 次之后停止,中斷后流水燈反向依次亮。

      【小結(jié)】

      通過本次實踐操作,明白了流水燈編程的基本操作,在編程過程中應(yīng)該細心仔細檢查每一步程序。確保最后出現(xiàn)正確的結(jié)果。本次的實踐告訴我平時還行該多細心做好日常事宜。

      指導(dǎo)教師評語及成績:

      評語:

      實驗期間綜合情況

      出勤情況:

      遲到次數(shù)1 次()2 次()3 次()

      多次()

      無())

      曠課次數(shù)1 次()2 次()3 次()

      多次()

      無())

      實驗報告書寫成績:

      原理部分

      優(yōu)()

      良()

      中()

      及()

      不及格()

      方案部分

      優(yōu)()

      良()

      中()

      及()

      不及格()

      過程部分

      優(yōu)()

      良()

      中()

      及()

      不及格()

      結(jié)論部分

      優(yōu)()

      良()

      中()

      及()

      不及格()

      指導(dǎo)教師簽名:

      批閱日期:

      第二篇:PIC單片機報告

      PIC單片機實驗報告

      一、定時器的使用

      (1)實驗?zāi)康模和ㄟ^學(xué)習(xí)和實驗理解PIC單片機定時器的內(nèi)部工作原理,學(xué)會定時器 初始化配置編程,并能利用實驗板對定時器有簡單的應(yīng)用。

      (2)實驗器材:16位PIC單片機學(xué)習(xí)板。

      (3)實驗過程:

      1、PIC單片機定時器概述:根據(jù)具體器件,dsPIC30F 器件系列提供了幾個16 位定時器。這些定時器被指定為Timer1、Timer2、Timer3 ……等??煞譃槿N類型:A類型時基、B類型時基和C類型時基。

      A類型時基:在大多數(shù)dsPIC30F 器件上,至少有一個A 類型定時器。通常Timer1 是A 類型定時器。A 類型定時器與其他類型的定時器相比,有下列獨特的功能:

      可以使用器件的低功耗32 kHz 振蕩器作為時鐘源工作

      可以在使用外部時鐘源的異步模式下工作

      A 類型定時器獨特的功能使它可以用于實時時鐘應(yīng)用(Real-Time Clock,RTC)。16 位定時器模式:在16 位定時器模式下,定時器在每個指令周期遞增,直到與預(yù)先裝入周期寄存器PR1 中的值匹配,然后復(fù)位至0,繼續(xù)計數(shù)。當(dāng)CPU 進入空閑模式時,定時器將停止遞增,除非TSIDL(T1CON<13>)位 = 0。如果TSIDL = 1,定時器模塊邏輯將繼續(xù)遞增,直到CPU 空閑模式終止。位同步計數(shù)器模式:在16 位同步計數(shù)器模式下,定時器將在外部時鐘信號的上升沿遞增,外部時鐘信號與內(nèi)部相位時鐘同步。定時器計數(shù),直到等于PR1 中預(yù)先裝入的值,然后復(fù)位至0,繼續(xù)計數(shù)。當(dāng)CPU 進入空閑模式時,同上。位異步計數(shù)器模式:在16 位異步計數(shù)器模式下,定時器在外部時鐘信號的上升沿遞增。定時器計數(shù),直到等于PR1 中預(yù)先裝入的值,然后復(fù)位至0,繼續(xù)計數(shù)。當(dāng)定時器配置為異步工作模式時,CPU 進入空閑模式,如果TSIDL = 1,則定時器將停止遞增。

      B類型時基:在大多數(shù)dsPIC30F 器件上,如果存在Timer2 和Timer4,它們是B 類型定時器。與其他類型的定時器相比,B 類型定時器有下列獨特的功能:

      B 類型定時器可以和C 類型定時器相連形成32 位定時器。B 類型定時器的TxCON

      寄存器具備T32 控制位,用來使能32 位定時器功能。B 類型定時器的時鐘同步在預(yù)分頻邏輯后執(zhí)行。為輸入捕捉,輸出比較/ 簡單PWM 模塊提供時基

      C類型時基:在大多數(shù)dsPIC30F 器件上,Timer3 和Timer5 是C 類型定時器。與其他類型的定時器相比,C 類型定時器有下列獨特的功能:

      C 類型定時器可以和B 類型定時器相連形成32 位定時器。在某個給定的器件上,至少有一個C 類型定時器能夠觸發(fā)A/D 轉(zhuǎn)換。

      相關(guān)寄存器:要使用定時器,首先要了解定時器相關(guān)寄存器,dspic30f4011的定時器相關(guān)寄存器有:

      以A類時基定時器(Timer1)為例,要用到的相關(guān)寄存器有:T1CON(定時器1控制寄存器)、IFS0bits(中斷標(biāo)志狀態(tài)寄存器)、IPC0bits(中斷優(yōu)先級控制寄存器)、IEC0bits(中斷允許控制寄存器)、PR1(定時器初值寄存器)

      定時器模式:所有類型的定時器都可以在定時器模式下工作。在定時器模式下,定時器的輸入時鐘由內(nèi)部系統(tǒng)時鐘(FOSC/4)提供。當(dāng)使能為該模式時,對于1:1 的預(yù)分頻器設(shè)置,定時器的計數(shù)值在每個指令周期都會加1。

      通過清零TCS 控制位(TxCON<1>)選擇定時器模式。

      同步模式控制位TSYNC(T1CON<2>)在該模式下不起作用,因為使用了系統(tǒng)時鐘源產(chǎn)生定時器時鐘。

      定時器初值計算:指令周期=1/(fosc/4),定時器初值=所需定時時間/(指令周期×分頻比)

      程序代碼:

      #include “p30f4011.h” void timer_init()

      {

      T1CON=0X8030;

      //預(yù)分頻256,ton=1,開始計時,其余都為0//清除TMR1的中斷標(biāo)志 //中斷優(yōu)先級為7 //使能中斷

      //在預(yù)分頻256模式下,計時1秒

      IFS0bits.T1IF = 0;

      IPC0bits.T1IP = 7;IEC0bits.T1IE = 1;}

      PR1=0x1c20;

      void __attribute__((__interrupt__))_T1Interrupt(void)//中斷服務(wù)程序 {}

      void main(){}

      TRISE=0x100;

      //將LED相連IO口設(shè)為輸出 //執(zhí)行定時器1初始化 //PORTE初始化輸出為低

      IFS0bits.T1IF=0;PORTE++;

      //軟件清除定時器1中斷標(biāo)志位 //實現(xiàn)每一秒對PORTE加1,用LED顯示

      timer_init();PORTE=0;

      while(1);//程序進入死循環(huán),定時執(zhí)行定定時器中斷程序

      二、中斷

      實驗?zāi)康模和ㄟ^學(xué)習(xí)和實踐理解PIC單片機中斷的特性及工作原理,學(xué)會中斷的初始化配置,并能對中斷進行簡單的應(yīng)用。

      實驗器材:16位PIC單片機學(xué)習(xí)板。

      實驗過程:

      dsPIC30F的中斷特性:

      多達8 個處理器異常和軟件陷阱 7 個用戶可選擇的優(yōu)先級

      具有多達62 個向量的中斷向量表(Interrupt Vector Table,IVT)每個中斷或異常源都有唯一的向量 指定的用戶優(yōu)先級中的固定優(yōu)先級

      用于支持調(diào)試的備用中斷向量表(Alternate Interrupt Vector Table,AIVT)固定的中斷入口和返回延時

      中斷優(yōu)先級:

      (1)可以為每個外設(shè)中斷源分配7 個優(yōu)先級之一。

      可用的優(yōu)先級從1 開始為最低優(yōu)先級,7 級為最高優(yōu)先級。如果與中斷源有關(guān)的IPC 位被全部清零,則中斷源被有效禁止。

      (2)由于特定的優(yōu)先級會被分配給一個以上的中斷請求源,所以在給定的用戶分配

      級別內(nèi)提供了一種解決優(yōu)先級沖突的方法。

      根據(jù)每個中斷源在IVT中的位置,它們都有一個自然順序優(yōu)先級。中斷向量的編號越低,自然優(yōu)先級越高,而向量的編號越高,自然優(yōu)先級越低。

      (3)任何待處理的中斷源的總優(yōu)先級都首先由該中斷源在IPCx 寄存器中用戶分配的優(yōu)先級決定,然后由IVT 中的自然順序優(yōu)先級決定。

      相關(guān)寄存器:INTCON1 和INTCON2(全局中斷控制寄存器)、IFSx(中斷標(biāo)志狀態(tài)寄存器)、IECx(中斷使能控制寄存器)、IPCx(中斷優(yōu)先級控制寄存器)、SR(CPU狀態(tài)寄存器)、CORCON(內(nèi)核控制寄存器)。

      初始化配置:

      1.如果不需要中斷嵌套,將NSTDIS 控制位置1。

      2.通過寫相應(yīng)的IPCx 控制寄存器中的控制位選擇中斷源的用戶分配優(yōu)先級。如果不需要多個優(yōu)先級,所有允許的中斷源的IPCx 寄存器控制位均可以編程為同一個非零值。3.在相關(guān)的IFSx 狀態(tài)寄存器中清零與外設(shè)相關(guān)的中斷標(biāo)志狀態(tài)位。

      4.通過在相應(yīng)的IECx 控制寄存器中置1 與中斷源相關(guān)的中斷允許控制位,使能中斷源。

      程序代碼:

      void init(){

      IFS0bits.INT0IF = 0;//清除INT0的中斷標(biāo)志

      IPC0bits.INT0IP = 7;//中斷優(yōu)先級為7 IEC0bits.INT0IE = 1;}

      void __attribute__((__interrupt__))_INT0Interrupt(void)//中斷服務(wù)程序 {

      IFS0bits.INT0IF = 0;Led=~Led;}

      int main(){

      unsigned char Led=0;init();while(1){

      PORTE = Led;

      //清INT0中斷標(biāo)志//實現(xiàn)LED亮滅變化 //使能中斷

      }}

      第三篇:單片機課程設(shè)計報告

      單片機課程設(shè)計報告

      ? 課程名稱:單片機原理及接口課程設(shè)計

      ? 題目:基于

      ? 學(xué)院:電氣信息學(xué)院

      ? 專業(yè)班級:測控技術(shù)與儀器

      ? 姓名:江讓

      ? 學(xué)號:

      ? 指導(dǎo)老師:劉升老師

      ? 時間:

      C51單片機的ADC0809數(shù)模轉(zhuǎn)換103班1090640772013/1/16

      第四篇:單片機課程設(shè)計報告

      單片機課程設(shè)計報告

      題目:小直流電機調(diào)速實驗

      教學(xué)單位: 機 電 工 程 系

      專業(yè): 機械設(shè)計制造及其自動化

      班級: 0803班學(xué)號: 0811050342姓名: 程懷虎

      2011 年 11月

      (以下內(nèi)容用宋體,五號,單倍行距)

      第五篇:單片機實習(xí)報告

      1602液晶顯示設(shè)計

      一、實驗簡介:

      通過學(xué)習(xí)本門課程,能夠掌握利用51單片機完成簡單項目的應(yīng)用系統(tǒng)設(shè)計和調(diào)試,掌握單片機應(yīng)用程序的編寫和調(diào)試過程。本次實習(xí),我的題目是用51單片機控制1602液晶顯示指定字符的設(shè)計,需要分別設(shè)計系統(tǒng)的硬件電路及調(diào)試軟件程序,并能夠正確演示調(diào)試結(jié)果。

      二、實驗要求:

      1、查找資料學(xué)習(xí)單片機的LCD點陣顯示原理;

      2、理解KST-51的LCD點陣顯示電路圖;

      3、編制程序在點陣LCD上實現(xiàn)字母:我愛單片機繪制原理圖;

      4、完成實驗報告的撰寫。

      三、硬件電路:

      (一)89C52系列單片機

      89C52是INTEL公司MCS-51系列單片機中基本的產(chǎn)品,它內(nèi)置8位中央處理單元、512字節(jié)內(nèi)部數(shù)據(jù)存儲器RAM、8k片內(nèi)程序存儲器(ROM)32個雙向輸入/輸出(I/O)口、3個16位定時/計數(shù)器和5個兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)時鐘振蕩電路。此外,89C52還可工作于低功耗模式,可通過兩種軟件選擇空閑和掉電模式。在空閑模式下凍結(jié)CPU而RAM定時器、串行口和中斷系統(tǒng)維持其功能。掉電模式下,保存RAM數(shù)據(jù),時鐘振蕩停止,同時停止芯片內(nèi)其它功能。89C52有PDIP(40pin)和PLCC(44pin)兩種封裝形式。

      1、單片機最小系統(tǒng)

      KST-51單片機開發(fā)板

      最小系統(tǒng)是指單片機正常工作的最基本的外圍配置,主要包括時鐘電路、復(fù)位電路等。

      51單片機最小系統(tǒng)是利用XTAL1和XTAL2兩個引腳外接晶體振蕩器的內(nèi)部時鐘方式,C1和C2的作用是穩(wěn)定頻率和快速起振,典型值為30pf,晶體振蕩器的振蕩頻率典型值為6 MHZ、12 MHZ或者11.0592 MHZ,系統(tǒng)與PC通信時常采用11.0592MHZ。

      復(fù)位電路設(shè)計形式包括:上電復(fù)位、按鍵復(fù)位、和利用專業(yè)的復(fù)位芯片進行管理,本次設(shè)計采用按鍵復(fù)位方式。

      51單片機最小系統(tǒng)

      2、單片機引腳功能

      51系列單片機有40個引腳,包括2個 電源引腳,2個外界晶振引腳,4個控制或 其他電源復(fù)用引腳,32個I/O引腳。1)主電源引腳(2根)VCC(Pin40):電源輸入,接+5V電源 GND(Pin20):接地線 2)外接晶振引腳(2根)

      XTAL1(Pin19)、XTAL2(Pin18)主要用來構(gòu)成單片機的時鐘電路。時鐘電路用來產(chǎn)生單片機工作所需的時鐘信號。時鐘信號分為內(nèi)部時鐘方式和外部時鐘方式。3)控制引腳(4根)

      RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個機器周期的高電平將使單片機復(fù)位。

      ALE/PROG(Pin30):地址鎖存允許信號 PSEN(Pin29):外部存儲器讀選通信號

      EA/VPP(Pin31):程序存儲器的內(nèi)外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內(nèi)部程序存儲器讀指令。4)輸入/輸出引腳(32根)

      P0口是一個雙功能的8位并行口,可以用做地址/數(shù)據(jù)總線,另外P0口還可以作為通用I/O口使用,此時為準(zhǔn)雙向口,且內(nèi)部無上拉電阻。

      P1口是單功能的I/O口,只能作為通用的I/O口使用,為準(zhǔn)雙向口,但內(nèi)部有上拉電阻。

      P2口是一個雙功能口,為準(zhǔn)雙向口,但內(nèi)部有上拉電阻,P2口功能主要有一下兩個方面:一是作為高8位地址輸出線使用時,P2口可以輸出外部存儲器的高8位地址,與P0口輸出的低8位地址一起構(gòu)成16位地址,可以尋址64位的地址空間;二是作為通用I/O口使用時,與P1口使用方法一樣。

      P3口作為通用I/O口時使用方法與P1一樣。另外,P3口主要作為第二功能使用。

      (二)1602字符液晶

      P3口第二功能表

      字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,1602是指顯示的內(nèi)容為16*2,即可以顯示兩行,每行16個字符。字符液晶絕大多數(shù)是基于HD44780液晶芯片的。

      1602實物圖 1、1602LCD的特性

      ? +5V電壓,對比度可調(diào) ? 內(nèi)含復(fù)位電路

      ? 提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能

      ? 有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM ? 內(nèi)建有160個5X7點陣的字型的字符發(fā)生器CGROM ? 8個可由用戶自定義的5X7的字符發(fā)生器CGRAM

      2、字符型LCD1602接口 引腳2、1為1602的電源和地,引腳15、16 為背光電源,引腳4、5、6為控制端口,引腳7-14為 數(shù)據(jù)端口,以下為各個端口的詳細介紹。3、1602存儲器

      HD44780內(nèi)置了DDRAM(顯示數(shù)據(jù)存儲RAM)、CGROM(字符存儲ROM)和CGRAM(用戶自定義RAM)。

      DDRAM就是顯示數(shù)據(jù)RAM,用來寄存待顯示的字符代碼。共80個字節(jié),其地址和屏幕的對應(yīng)關(guān)系如下表:

      在DDRAM的00H地址處顯示數(shù)據(jù),則必須將00H加上80H,即0X80+0x00,若要在DDRAM的01H處顯示數(shù)據(jù),則必須將01H加上80H即 0X80+0x01。以此類推。

      字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,如下表所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常 用的符號、和日文假名等,每一個字符都有一個固定的代碼。4、1602指令表

      對DDRAM的內(nèi)容和地址操作,HD44780的指令集及其設(shè)置說明,共有11條指令: 1)清屏指令

      功能:<1> 清除液晶顯示器,即將DDRAM的內(nèi)容全部填入“空白”的字符碼20H;<2> 光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方;<3> 將地址計數(shù)器(AC)的值設(shè)為0。

      2)光標(biāo)歸位指令

      功能:<1> 把光標(biāo)撤回到顯示器的左上方;<2> 把地址計數(shù)器(AC)的值設(shè)置為0;<3> 保持DDRAM的內(nèi)容不變 3)輸入模式設(shè)置指令

      功能:設(shè)定每次寫入1位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫入的一個字符是否移動。參數(shù)設(shè)定的情況如下所示: 位名 設(shè)置

      I/D 0=寫入新數(shù)據(jù)后光標(biāo)左移 1=寫入新數(shù)據(jù)后光標(biāo)右移

      S 0=寫入新數(shù)據(jù)后顯示屏不移動 1=寫入新數(shù)據(jù)后顯示屏整體右移1個字 4)顯示開關(guān)控制指令

      功能:控制顯示器開/關(guān)、光標(biāo)顯示/關(guān)閉以及光標(biāo)是否閃爍。參數(shù)設(shè)定的情況如下:

      位名 設(shè)置 D 0=顯示功能關(guān) 1=顯示功能開 C 0=無光標(biāo) 1=有光標(biāo) B 0=光標(biāo)不閃爍 1=光標(biāo)閃爍 5)設(shè)定顯示屏或光標(biāo)移動方向指令

      功能:使光標(biāo)移位或使整個顯示屏幕移位。參數(shù)設(shè)定的情況如下: S/C R/L 設(shè)定情況

      0 0 光標(biāo)左移1格,且AC值減1 0 1 光標(biāo)右移1格,且AC值加1 1 0 顯示器上字符全部左移一格,但光標(biāo)不動 1 1 顯示器上字符全部右移一格,但光標(biāo)不動 6)功能設(shè)定指令

      功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下: 位名 設(shè)置

      DL 0=數(shù)據(jù)總線為4位 1=數(shù)據(jù)總線為8位 N 0=顯示1行 1=顯示2行 F 0=5×7點陣/每字符 1=5×10點陣/每字符 7)設(shè)定CGRAM地址指令

      功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。8)設(shè)定DDRAM地址指令

      功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。9)讀取忙信號或AC地址指令

      功能:<1> 讀取忙碌信號BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時無法接收單片機送來的數(shù)據(jù)或指令;當(dāng)BF=0時,液晶顯示器可以接收單片機送來的數(shù)據(jù)或指令;<2> 讀取地址計數(shù)器(AC)的內(nèi)容。10)數(shù)據(jù)寫入DDRAM或CGRAM指令

      功能:<1> 將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對應(yīng)的字符;<2> 將用戶自己設(shè)計的圖形存入CGRAM。11)從CGRAM或DDRAM讀出數(shù)據(jù)的指令

      功能:讀取DDRAM或CGRAM中的內(nèi)容。

      5、時序圖

      (1)讀狀態(tài) 輸入:RS=0,RW=1,E=1 讀數(shù)據(jù) 輸入:RS=1,RW=1,E=1(2)寫指令 輸入:RS=0,RW=0,E=下降沿脈沖,DB0~DB7=指令碼 寫數(shù)據(jù) 輸入:RS=1,RW=0,E=下降沿脈沖,DB0~DB7=數(shù)據(jù)

      四、實習(xí)結(jié)果與討論:

      通過程序的編輯在1602型LCD上實現(xiàn)了顯示英文字符,通過本次實驗的學(xué)習(xí)進一步熟悉了1602型LCD,對其操作有了更多的心得體會,在本次實驗中獲益匪淺。

      五、實驗程序: #include #include #define uchar unsigned char #define uint unsigned int

      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);//數(shù)據(jù)指針=80+地址變量 }

      void lcd_init(){ lcd_wcmd(0x38);//16*2顯示,5*7點陣,8位數(shù)據(jù) delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x0c);//顯示開,關(guān)光標(biāo) delay(5);lcd_wcmd(0x06);//移動光標(biāo) delay(5);lcd_wcmd(0x01);//清除LCD的顯示內(nèi)容 delay(5);}

      void flash(){ delay(600);//控制停留時間 lcd_wcmd(0x08);//關(guān)閉顯示 delay(200);//延時 lcd_wcmd(0x0c);//開顯示 delay(200);//延時 lcd_wcmd(0x08);//關(guān)閉顯示 delay(200);//延時 lcd_wcmd(0x0c);//開顯示 delay(200);} main(){ uchar i;delay(10);lcd_init();// 初始化LCD

      while(1){ lcd_wcmd(0x06);//向右移動光標(biāo)

      lcd_pos(0);//設(shè)置顯示位置為第一行的第1個字符 i = 0;while(dis1[i]!= '