8051單片機(jī)接口技術(shù)論文
隨著現(xiàn)代科學(xué)技術(shù)的快速發(fā)展與普及,單片機(jī)知識也已普及進(jìn)入工科相關(guān)專業(yè)課程體系。學(xué)習(xí)啦小編為大家整理的8051單片機(jī)接口技術(shù)論文,希望你們喜歡。
8051單片機(jī)接口技術(shù)論文篇一
8051單片機(jī)指令的快速記憶
摘 要:目前,我國單片機(jī)教學(xué)多以INTEL公司的8051單片機(jī)為教學(xué)對象。8051單片機(jī)指令系統(tǒng)涉及匯編指令多達(dá)111條,指令的學(xué)習(xí)與掌握是影響學(xué)生學(xué)習(xí)該課程的一大障礙。Intel 8051單片機(jī)匯編語言指令的理解和記憶是學(xué)習(xí)單片機(jī)一個難點。本文提供了學(xué)習(xí)記憶的一些技巧。
關(guān)鍵詞:匯編語言指令;巧記
中圖分類號:TN911.2 文獻(xiàn)標(biāo)識碼:A
隨著現(xiàn)代科學(xué)技術(shù)的快速發(fā)展與普及,單片機(jī)知識也已普及進(jìn)入工科相關(guān)專業(yè)課程體系。目前,我國單片機(jī)教學(xué)多以INTEL公司的8051單片機(jī)為教學(xué)對象。8051單片機(jī)指令系統(tǒng)涉及匯編指令多達(dá)111條,指令的學(xué)習(xí)與掌握是影響學(xué)生學(xué)習(xí)該課程的一大障礙。表現(xiàn)在:一是指令眾多,學(xué)生感到難以記憶;二是利用指令編寫程序時,不知如何書寫及表達(dá)應(yīng)用;三是指令出現(xiàn)錯誤,不能判別指令錯誤原因。其中,指令的理解與掌握是解決這些問題的基本。筆者通過多年的教學(xué)實踐,力求找到一條快速掌握指令的捷徑,希望給單片機(jī)初學(xué)者帶來幫助。
8051單片機(jī)指令系統(tǒng)按功能把匯編指令劃分為數(shù)據(jù)傳送、算術(shù)運算、控制轉(zhuǎn)移、邏輯運算和位處理指令五個大類。指令的基本格式為:
【標(biāo)號:】 操作碼 操作數(shù);注釋
指令的學(xué)習(xí)首先是操作碼功能識別與助記符的記憶,其次是操作數(shù)的表達(dá)。操作數(shù)表達(dá)相對繁雜,這也是初學(xué)時感到指令繁雜的一個主要原因。下面就從這兩方面做一簡要探討。
1 操作碼的學(xué)習(xí)
操作碼的學(xué)習(xí),可按功能類型,結(jié)合助記符相關(guān)英語單詞含義解析,讓學(xué)生快速,深刻理解操作碼助記符,以促進(jìn)學(xué)生理解和掌握指令功能。英語在這里僅是場景輔助,幫助學(xué)生了解操作碼助記符的來源及含義。理解后,學(xué)生按“操作碼功能&操作碼助記符”記憶、表達(dá)方式日常練習(xí)使用即可。如操作碼DJNZ,表達(dá)為“減1不為零轉(zhuǎn)移指令DJNZ”,操作碼INC,表達(dá)為“加1指令I(lǐng)NC”。
2 操作數(shù)的學(xué)習(xí)
操作數(shù)的學(xué)習(xí),也有記憶方法。先看下表:
操作數(shù)的出現(xiàn)主要有兩種類型。類型一,該類指令,操作碼不變,而操作數(shù)組合方式靈活多樣,形成多條指令。如片內(nèi)字節(jié)傳送指令根據(jù)操作數(shù)不同組合有15條指令。加減運算有24條指令。與、或、非邏輯操作有18條指令等,這些可按“#AdR@”順序記憶操作數(shù),再輔以特定規(guī)律就可應(yīng)對許多指令記憶。這類指令重點在于操作數(shù)的格式掌握上。類型二:該類指令中操作數(shù)較簡單,記憶相對簡單。如條件轉(zhuǎn)移指令JZ rel。這類指令的記憶主要在于操作碼功能理解。
2.1 對于操作數(shù)類型一,因篇幅所限,下面以片內(nèi)數(shù)據(jù)傳送指令示例說明。
指令格式: MOV 目的操作數(shù),源操作數(shù)
操作碼助記符英文釋義:助記符原型單詞就是MOV,其意為移動,指令功能就是把一個數(shù)從一個存儲單元移動到另一個存儲單元。指令中是從源操作數(shù)移向目的操作數(shù)存儲單元。
片內(nèi)數(shù)據(jù)為字節(jié)傳送時,源、目的操作數(shù)有15種組合方式,即有15條字節(jié)傳送指令。
記憶竅門: 操作數(shù)中,兩個R不能見面;
兩操作數(shù),自己不能跟自己見面(自我傳送,無意義);
立即數(shù)不能作為目的操作數(shù)(不能給數(shù)據(jù)賦值)
如:MOV #30H, R3 ;給數(shù)據(jù)賦值,非法
MOV R5, @R0 ;兩個R見面,非法
MOV 30H, 30H ;自我傳送,非法
字節(jié)傳送MOV指令的速記默寫示例:
默記操作數(shù)“#AdR@”。由于不能數(shù)據(jù)賦值,所以只能分別以(累加器)A、d(寄存器direct)、R(工作寄存器Rn)和@(間質(zhì)尋址◎Ri)分別為第一操作數(shù),即目的操作數(shù)。源操作數(shù)仍按順序排列組合依次很快就可寫出片內(nèi)數(shù)據(jù)傳送的15條指令。
2.2 對于操作數(shù)類型二,下面以一些指令為例簡說操作碼識記如下:
左移指令RL:第一個字母取rotate 首字母表示進(jìn)行循環(huán),第二個字母取left首字母,即為左循環(huán),第二個字母如取right首字母就組合為右循環(huán)指令RR,位單元CY內(nèi)容也可作為第8位,即最高位參與循環(huán),就有了帶進(jìn)位左循環(huán)RLC和帶進(jìn)位右循環(huán)RRC指令。循環(huán)操作只能對累加器A內(nèi)容進(jìn)行操作。所以指令很簡單,只有相應(yīng)4條循環(huán)移位指令。
邏輯運算指令:ANL,前兩個字母表示邏輯操作方式為and即“與”操作,第三個字母取“邏輯”的英文單詞logic首字母,表示是邏輯運算功能;“或”英文單詞OR結(jié)合字母L就構(gòu)成邏輯或運算指令操作碼ORL助記符。exclusive or是異或的意思,各取一個字母X,R組合表示異或,加上字母L形成異或邏輯運算符號XRL。操作數(shù)組合除仿算術(shù)運算指令操作數(shù)組合技巧以外,適度完善不規(guī)則組合即可。
XCH:exchange 交換。該指令第一操作數(shù)必須是累加器A,可利用巧記操作數(shù)序列列寫第二操作數(shù)。顯然序列中#,即立即數(shù)不能賦值,所以不能出現(xiàn)。而半字節(jié)交換指令第二操作數(shù),序列中只有◎Ri可以分割成◎字符和Ri兩字符,其余不能分割。因此操作數(shù)據(jù)此可記住半字節(jié)交換指令只有一條,且為XCHD A,@Ri。XCHD操作碼末尾字母“D”即divde,此處為分割的意思。
JZ: J為英文單詞JUMP首字母,意為跳,表明實現(xiàn)跳跳轉(zhuǎn)功能。跳的條件由操作碼字母J后條件決定,滿足條件跳轉(zhuǎn),否則順序執(zhí)行下一條指令,既不跳轉(zhuǎn)。Z:zero,中文含義“零”,默認(rèn)對累加器A進(jìn)行“判零”。
CJNE:C是英文單詞compare(比較)首字母;J:跳轉(zhuǎn);字母J后是跳轉(zhuǎn)條件:兩操作數(shù)比較滿足Not equal,即不想等時,跳轉(zhuǎn)。
DJNZ:D是英文單詞DECREASE(減少)首字母;J后是跳轉(zhuǎn)條件,操作數(shù)減1后,結(jié)果NOT ZERO即不為零就執(zhí)行跳轉(zhuǎn),否則順序往下執(zhí)行。
當(dāng)然有少數(shù)沒有明顯記憶規(guī)律的指令仍需死記,其實動些腦子,也許你會發(fā)現(xiàn)適合自己記憶的竅門??傊?,指令學(xué)習(xí)的有效方法就是多用巧記。本文旨在拋磚引玉,給出一些指令學(xué)習(xí)技巧與思路,文中不到之處還請理解。
參考文獻(xiàn)
[1]楊文龍.單片機(jī)原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版,2006.
[2]章鴻猷.英漢計算機(jī)詞匯[M].北京:清華大學(xué)出版社,1997.
8051單片機(jī)接口技術(shù)論文篇二
8051單片機(jī)圖形LCD驅(qū)動接口設(shè)計
摘要:液晶顯示器(LCD)具有顯示信息豐富、功耗低、體積小、重量輕、超薄等許多其他顯示器無法比擬的優(yōu)點,在多年來被單片機(jī)控制的智能儀器、儀表和電子 產(chǎn)品中廣泛使用,從其LCD顯示的內(nèi)容可以分為段位式LCD、點陣式LCD、和字符LCD。本文從8086單片機(jī)圖形模式的LCD的顯示屏幕驅(qū)動出發(fā),詳細(xì)描述了LCD的顯示字符、數(shù)字、和顯示圖形、曲線以及各種中英文、外文等字體,而且可以實現(xiàn)整個顯示屏的滾動、翻屏幕等功能的實現(xiàn)設(shè)計過程。
關(guān)鍵詞:液晶顯示器;驅(qū)動;圖形
中圖分類號: TN873+.93 文獻(xiàn)標(biāo)識碼: A 文章編號:
一、液晶屏與控制器的選擇
要對液晶顯示器進(jìn)行控制,需要有對應(yīng)的LCD控制器的控制權(quán)限與控制存儲器的操作指令,通過LCD的存儲空間來存儲對顯示器的操作命令和顯示字符來直接指揮顯示器。本文中,采用的單片機(jī)主要是精電蓬遠(yuǎn)公司出品的液晶屏MGLS-12864。MGLS-12864是香港信利公司生產(chǎn)的點陣圖形式液晶顯示模塊,點陣數(shù)為64行x128列,每屏可以顯示4行×8個漢字(每漢字16×16點陣)。該顯示模塊有2片HD61202作為列驅(qū)動器和1片HD61203作為行驅(qū)動器,可顯示64K的點陣圖形。其主要特點是能與80系列微處理器直接接口,可以進(jìn)行圖形、字符及圖形和字符混合3種方式顯示,并具有64K的內(nèi)部存儲器。顯示屏共分8頁,顯示數(shù)據(jù)格式及顯示屏的頁、行和列的分布情況如表1所示。
使用液晶顯示器進(jìn)行顯示要有相應(yīng)的LCD控制器來對其控制,以及一定的存儲空間來存儲輸入的命令和顯示的字符。本文中,液晶屏選用的是精電蓬遠(yuǎn)公司出品的液晶屏MGLS-12864。
二、MGLS-12864屏幕概述
1、MGLS-12864概述
液晶顯示器按其功能可分為筆段式和點矩陣式兩種。后者又可以分成字符點陣式和圖形點陣式,圖形點陣式液晶顯示器不僅可顯示數(shù)字、字符等內(nèi)容,還能顯示漢字和任意圖形。在中規(guī)模圖形式液晶顯示模塊中,內(nèi)置8051控制器的液晶顯示模塊是目前較為常用的一種。MGLS-12864是點陣式LCD,液晶模塊的工作電壓是5V±0.5V,內(nèi)置兩片HD61202和一片HD61203。其中HD61202是列驅(qū)動器,有64路列驅(qū)動輸出,64×64位顯示RAM,每位數(shù)據(jù)代表液晶屏上每個點的明暗狀態(tài);HD61203作為行驅(qū)動器??刂破鬟x用Intel公司MCS-51系列的8051芯片。該芯片價格低廉,指令系統(tǒng)功能強(qiáng)大,執(zhí)行速度快,實用性強(qiáng),能夠符合系統(tǒng)要求。
2、MGLS-12864的特點
(1)MGLS-12864是點陣式液晶圖形顯示控制器,它能直接與80系列的8位微處理器接口;
(2)MGLS-12864的字符字體由硬件設(shè)置,其字體有4種:5X8、6X8、7X8、8X8;
(3)MGLS-12864的占空比可從1/16到1/128;
(4)MGLS-12864可以圖形方式、文本方式及圖形和文本合成方式進(jìn)行顯示,以及文本方式下的特征顯示,還可以實現(xiàn)圖形拷貝操作等等;
(5)MGLS-12864具有內(nèi)部字符發(fā)生器CGROM,共有128個字符,MGLS-12864可管理64K顯示緩沖區(qū)及字符發(fā)生器CGRAM。并允許MPU隨時訪問顯示緩沖區(qū),甚至可以進(jìn)行位操作。
三、系統(tǒng)軟件設(shè)計
實現(xiàn)功能可以看出,本設(shè)計中需要用到西文顯示、漢字顯示、繪圖等子程序。首先,要實現(xiàn)西文/漢字的顯示,需要三個子程序:創(chuàng)建字模,寫入字模,顯示西文或漢字。MGLS-12864實現(xiàn)西文/漢字的顯示有三種方式:文本顯示,圖形顯示和文本屬性顯示。由于繪圖只能使用圖形顯示,因此在本設(shè)計中采用圖形顯示方法來實現(xiàn)西文/漢字的顯示。其次,要實現(xiàn)繪圖,需要由繪點子程序?qū)崿F(xiàn)。繪圖功能則是通過連續(xù)使用繪點子程序?qū)崿F(xiàn)的。最后,還需要用到初始化子程序、清屏子程序。同時狀態(tài)字的檢測和指令的寫入、數(shù)據(jù)的自動寫、數(shù)據(jù)的一次寫等子程序也是必不可少的。由于每進(jìn)行一次操作都需要檢測狀態(tài)字,所以可以把狀態(tài)字檢測程序做成通用程序方便調(diào)用。初始化程序和清屏幕程序主要完成MGLS-12864的初始化和屏幕清除功能。西文/漢字的顯示首先需要創(chuàng)建字模,然后將字模寫入MGLS-12864中,最后再在屏幕上顯示出來。
3.1 引腳功能
(1)D0―D7:MGLS-12864與MPU接口的數(shù)據(jù)總線,三態(tài);
(2)/RD,/WR:讀、寫選通信號,低電平有效,輸入信號;
(3)/CE:MGLS-12864的片選信號,低電平有效;
(4)C/D:通道選擇信號,1為指令通道,0為數(shù)據(jù)通道;
(5)/RESET,/HALT:/RESET為低電平有效的復(fù)位信號,它將行、列計數(shù)器和顯示寄存器清零,關(guān)顯示;/HALT具有/RESET的基本功能,還將種植內(nèi)部時鐘振蕩器的工作;
(6)DUAL,SDSEL:DUAL=1為單屏結(jié)構(gòu),DUAL=0為雙屏結(jié)構(gòu);SDSEL=0為一位串行數(shù)據(jù)傳輸方式,SDSEL=1為二位并行數(shù)據(jù)傳輸方式;
(7)MD2,MD3:設(shè)置顯示窗口長度,從而確定了列數(shù)據(jù)傳輸個數(shù)的最大值,起組
3.2 控制器命令字格式
控制驅(qū)動器的指令系統(tǒng)比較簡單,將命令字及其功能特征編輯成速查表,供編程時查對,控制器命令字格式如表1所示
有關(guān)命令格式的相關(guān)說明:顯示開/關(guān)指令:當(dāng)DB0=1時LCD顯示RAM中的內(nèi)容,DB0=0時無顯示。
讀狀態(tài)指令:BUSY:1-內(nèi)部在工作0-正常狀態(tài);ON/OFF:1-顯示關(guān)閉0-顯示打開;REST:1-復(fù)位狀態(tài)0-正常狀態(tài)
3.3 驅(qū)動子程序設(shè)計
#include<8051reg.h>
#defineRWP2.4 //定義P2.4為讀寫引腳//
#defineDIP2.7 //定義P2.7為命令,數(shù)據(jù)引腳//
delay(intd)//延遲子程序//
{
inti,j;
for(i=0;i for(j=0;j<20;j++);
}
voidLCD_init() //顯示器初始化//
{
RS=0;RW=0;P0=0X3c; //定義雙行顯示//
P0=0X0e;//顯示光標(biāo)//
P0=0X01;//清除命令/
}
voidLCD_command(unsignedcharc)//寫命令到顯示器//
{
P0=c;
RW=0;
DI=0;
}
voidLCD_print(unsignedchart)//寫數(shù)據(jù)到顯示器/
{
P0=t;
RW=0;
DI=1;
}
四、小結(jié)
利用自帶字庫的中文液晶圖形點陣模塊串口接口方式的優(yōu)勢比并口明顯,節(jié)省I/O了口,不占用ROM,接口電路簡單,解決了顯示漢字字符數(shù)量有限的瓶頸問題和小體積非總線結(jié)構(gòu)單片機(jī)的漢字顯示問題。筆者相信今后其使用率將逐步提高,對照本文的串并口兩種方式,希望對廣大同行在使用液晶圖形點陣模塊時有所啟發(fā)和幫助。
參考文獻(xiàn):
[1]、北京精電蓬遠(yuǎn)顯示技術(shù)有限公司《內(nèi)藏MGLS-12864液晶顯示模塊使用手冊.第二版》.北京:北京精電蓬遠(yuǎn)顯示技術(shù)有限公司.1999年
[2] 、郭強(qiáng)《液晶顯示應(yīng)用技術(shù)》.北京:電子工業(yè)出版社.2002.
[3] 、曾一江《單片微機(jī)原理與接口技術(shù)》.北京:科學(xué)出版社.2006.
[4] 、蔡美琴《MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用(第2版)》.北京:高等教育出版社.2004.
看了8051單片機(jī)接口技術(shù)論文的人還看