freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的單詞記憶測(cè)試器畢業(yè)論文(已修改)

2025-07-01 12:52 本頁面
 

【正文】 基于單片機(jī)的單詞記憶測(cè)試器畢業(yè)論文目 錄第1章 緒論 1 1 單片機(jī)在我國(guó)的普及 1 單片機(jī)的發(fā)展趨勢(shì) 2 單片機(jī)速度越來越快 2 低電壓與低電耗 2 微型單片化 2 大容量 高性能 3 串行擴(kuò)展技術(shù) 3第2章 8051單片機(jī) 芯片的特點(diǎn)及引腳 4 8051單片機(jī) 芯片的特點(diǎn) 4 8051單片機(jī)的擴(kuò)展及系統(tǒng)電路 5第三章 相關(guān)軟件的說明 7第三章 相關(guān)軟件的說明 8 proteus 8 proteus簡(jiǎn)介 8 proteus功能介紹 9 keil軟件 10第四章 單詞記憶測(cè)試器的設(shè)計(jì) 11 硬件模塊設(shè)計(jì) 11 11 顯示模塊的硬件部分介紹 12 矩陣鍵盤 15 電路原理圖設(shè)計(jì) 16 軟件程序設(shè)計(jì) 17 程序設(shè)計(jì)思路 17 18 LCD12864顯示模塊的驅(qū)動(dòng)程序 19 顯示字模碼的提取 20 系統(tǒng)軟件主程序結(jié)構(gòu)及其函數(shù) 21 軟件的仿真 26第五章 結(jié)語 28附 錄 單片機(jī)單詞記憶測(cè)試器C程序源代碼摘要本論文的研究對(duì)象是基于單片機(jī)的單詞記憶測(cè)試器的設(shè)計(jì),此單詞記憶測(cè)試器可以實(shí)現(xiàn)單詞的輸入并判斷輸入的單詞是否正確,單詞背完后給出正確率。該單片機(jī)單詞記憶測(cè)試器為在現(xiàn)實(shí)生活中有著廣泛的應(yīng)用,特別是對(duì)學(xué)習(xí)英語方面有很大的作用。 本設(shè)計(jì)以STC89C52單片機(jī)為處理器,以12854點(diǎn)陣液晶屏為顯示器件,并使用56距陣鍵盤為輸入設(shè)備,實(shí)現(xiàn)了功能全面的人機(jī)界面和高速的數(shù)據(jù)處理功能,利用單片機(jī)片上FLASH ROM,可儲(chǔ)存1020個(gè)英文單詞和漢字,作為記憶測(cè)試用。關(guān)鍵詞: 單片機(jī) 單詞記憶測(cè)試器 AT89C52 12864液晶屏 第四章 單詞記憶測(cè)試器的設(shè)計(jì) 硬件模塊設(shè)計(jì) 本單詞記憶測(cè)試器系統(tǒng)硬件部分分為三個(gè)模塊:中央處理模塊、顯示模塊、鍵盤輸入模塊。系統(tǒng)模型圖如下:?jiǎn)纹瑱C(jī)中央處理模塊56矩陣鍵盤模塊LCD12864液晶顯示模塊圖4 系統(tǒng)硬件模塊圖 中央處理模塊選用STC89C52單片機(jī)系統(tǒng)組成,電路包括:STC89C52單片機(jī)、復(fù)位電路、時(shí)鐘振蕩電路。STC89C52單片機(jī)需在復(fù)位電路和時(shí)鐘振蕩電路組成的最小系統(tǒng)下工作,單片機(jī)引腳圖如圖5,外圍電路如圖6和圖7所示,時(shí)鐘電路采用頻率采用為12MHZ的晶振,CC2與晶振構(gòu)成了外部振蕩電路。復(fù)位電路采用電解電容與電阻串聯(lián),當(dāng)系統(tǒng)上電時(shí),由于電容充電,在RST端會(huì)產(chǎn)生一個(gè)高電平,高電平持續(xù)的時(shí)間由電容和電阻的值決定,當(dāng)RESET信號(hào)為低電平時(shí),系統(tǒng)為工作狀態(tài)。 STC89C52具有ISP的功能,可以通過串行口直接將程序下載到單片機(jī)內(nèi)。在下載程序狀態(tài)下,RESET信號(hào)被拉高,系統(tǒng)進(jìn)行程序下載,待程序下載完畢后,RESET重新拉低。用戶可以通過切斷電源進(jìn)行手動(dòng)復(fù)位,或者通過重新下載新的程序進(jìn)行復(fù)位。圖5 STC89C52的引腳排列圖 圖6 時(shí)鐘電路圖 圖7復(fù)位電路圖 顯示模塊的硬件部分介紹顯示模塊采用單色點(diǎn)陣液晶屏12864模塊,該模塊在點(diǎn)陣液晶屏基礎(chǔ)上集成了控制器kS0108,用戶只需設(shè)計(jì)好接口程序,就可讓模塊顯示出各種字符和圖像。通常我們所見到的 LCD 模塊,分為幾部分:LCM(玻璃)、背光、PCB 板;而背光和PCB板部分其實(shí)是可有可無的,視具體的LCD 模塊而定。點(diǎn)陣的LCD 模塊按照驅(qū)動(dòng)控制器的集成方式,大可分為兩種:COB 和COG;COG 其實(shí)就是將驅(qū)動(dòng)控制IC 集成到了玻璃里面,這樣的而后面的PCB 板上其實(shí)只是一些驅(qū)動(dòng)控制IC 無法集成的電容電阻而已;COB 也就是把驅(qū)動(dòng)控制IC 焊接在LCD 模塊后面的PCB 板上。12864 為一塊128X64 點(diǎn)陣的LCD 顯示模塊,模塊上的 LCM 采用COG 技術(shù)將控制(包括顯存)、驅(qū)動(dòng)器集成在LCM 的玻璃上,接口簡(jiǎn)單、操作方便;為方便用戶的使用,在LCM 的基礎(chǔ)上設(shè)計(jì)了12864 模塊,將模塊所必需的外圍電容電阻集成到模塊上,并引出多種形式的引線接口方便用戶使用。12864 模塊與各種MCU 均可進(jìn)行方便簡(jiǎn)單的接口操作。LCD 的接口:一般來說,LCD 模塊(帶有驅(qū)動(dòng)控制器)的接口多為總線的接口,不是6800 就是8080,或者是串行SPI(及類SPI 時(shí)序);除了這些總線的端口外,有的LCD 模塊還引出了一些功能性的端口,如偏壓調(diào)節(jié)輸入、負(fù)壓輸出等。圖8 12864 模塊接口定義表顯示 RAM 區(qū)映射情況:對(duì)于 LCD 模塊,了解清楚驅(qū)動(dòng)控制IC 當(dāng)中的顯存與LCD 玻璃上的點(diǎn)的對(duì)應(yīng)關(guān)系是非常重要的,這是編寫LCD 的驅(qū)動(dòng)程序的基礎(chǔ)。12864 液晶顯示模塊的顯示器(玻璃)上的顯示點(diǎn)與驅(qū)動(dòng)控制芯片中的顯示緩存RAM是一一對(duì)應(yīng)的;驅(qū)動(dòng)控制芯片當(dāng)中共有65(8 Page x 8 bit+1)X 132 個(gè)位的顯示RAM 區(qū)。而顯示器的顯示點(diǎn)陣大小為64X128 點(diǎn),所以實(shí)際上在液晶顯示模塊中有用的顯示RAM 區(qū)為64 X 128 個(gè)位;按byte 為單位劃分,共分為8 個(gè)Page,每個(gè)Page 為8 行,而每一行為128 個(gè)位(即128 列)。驅(qū)動(dòng)控制芯片的顯示RAM區(qū)每個(gè)byte的數(shù)據(jù)對(duì)應(yīng)屏上的點(diǎn)的排列方式為:縱向排列,低位在上高位在下;如圖 8所示圖8 驅(qū)動(dòng)控制芯片的顯示RAM區(qū)12864 液晶顯示模塊的顯示屏上的每一個(gè)點(diǎn)都對(duì)應(yīng)有控制器片內(nèi)的顯示緩存RAM中的一個(gè)位,顯示屏上64X128 個(gè)點(diǎn)分別對(duì)應(yīng)著顯示RAM的8 個(gè)Page,每一個(gè)Page有128 個(gè)byte的空間對(duì)應(yīng)。因此可知顯示RAM區(qū)中的一個(gè)Page空間對(duì)應(yīng)8 行的點(diǎn),而該P(yáng)age中的一個(gè)byte數(shù)據(jù)則對(duì)應(yīng)一列(8 個(gè)點(diǎn))。圖9 為顯示RAM區(qū)與顯示屏的點(diǎn)映射圖:圖9 顯示RAM區(qū)與顯示屏的點(diǎn)映射圖行、列地址:用戶如要點(diǎn)亮 LCD 屏上的某一個(gè)點(diǎn)時(shí),實(shí)際上就是對(duì)該點(diǎn)所對(duì)應(yīng)的顯示RAM 區(qū)中的某一個(gè)位進(jìn)行置1 操作;所以就要確定該點(diǎn)所處的行地址、列地址。從上圖中可以看出,MzL0212864 液晶顯示模組的行地址實(shí)際上就是Page 的信息,每一個(gè)Page 應(yīng)有8 行;而列地址則表示該點(diǎn)的橫坐標(biāo),在屏上為從左到右排列,Page 中的一個(gè)Byte 對(duì)應(yīng)的是一列(8行,即8 個(gè)點(diǎn)),達(dá)128 列??梢愿鶕?jù)這樣的關(guān)系在程序中控制 LCD 顯示屏的顯示。注意:MzL0212864 的顯示緩存RAM 區(qū)實(shí)際上比模塊上的顯示器所對(duì)應(yīng)的RAM 區(qū)要大;而LCD 模塊具體設(shè)置Page(有時(shí)也稱頁)時(shí),屏上的位置與驅(qū)動(dòng)控制IC 當(dāng)中的哪里的RAM區(qū)對(duì)應(yīng),還與驅(qū)動(dòng)控制IC 與屏的連接有關(guān);所以,實(shí)際在使用時(shí),請(qǐng)參考所提供的范例設(shè)置(主要是設(shè)置COM 反向掃描、SEG 設(shè)置為正向掃描,以此設(shè)置方法,則每個(gè)Page 中的前三列以及最后一列是不對(duì)應(yīng)在LCD 屏幕上的)。 矩陣鍵盤 要測(cè)試記憶的單詞,就要有字母的輸入接口,本接口設(shè)計(jì)為56矩陣鍵盤輸入,接入單片機(jī)的P1口和P3口進(jìn)行鍵盤掃描。最大程度地提高了單片機(jī)IO口的利用率,設(shè)計(jì)共30個(gè)接鍵,包括了26個(gè)英文字母以及四個(gè)功能鍵:“確定”、“不認(rèn)識(shí)”、“上一個(gè)”、“下一個(gè)”。 矩陣鍵盤如圖10,由30個(gè)輕觸按鍵按照6行5列排列,連接到PP3端口。其掃描的原理是:先將行線所接的單片機(jī)的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當(dāng)按鍵沒有按下時(shí),所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會(huì)被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。然后再將行線所接的單片機(jī)的I/O口作為輸入端,而列線所接的I/O口則作為輸出,以相同的方法讀一次端口,程序中就可識(shí)別是啊個(gè)坐標(biāo)的按鍵按下了。圖10 56矩陣鍵盤 電路原理圖設(shè)計(jì) 電路原理圖設(shè)計(jì)使用集原理圖設(shè)計(jì)、PCB設(shè)計(jì)、電路仿真功能為一體的PROTUES軟件。以該軟件設(shè)計(jì)的電路原理圖圖11。圖11 單片機(jī)單詞記憶測(cè)試器電路原理圖電路設(shè)計(jì)參數(shù):(1) C1 C2 為2030PF瓷片電容,與12M晶振組成時(shí)鐘振蕩電路;(2) 復(fù)位電路使用R1為10K電阻、C3為10uF電解電容;(3) 12864液晶模塊與單片機(jī)P0口連接,因P0口為真正的三態(tài)門結(jié)構(gòu),因些作數(shù)據(jù)總線使用時(shí)要外接上拉電阻,可使用10K的排阻;(4) 按鍵如圖的行相連,列相連的矩陣接法連入單片機(jī)IO口;(5) 電路的供電為5V直流電源;(6) D1為輸入錯(cuò)誤的狀態(tài)指示燈,加220歐限流電阻連到VCC,因?yàn)镾TC89C51單片機(jī)IO的電流灌入能力要強(qiáng)于電流輸出能力,因此一般使IO為低電平時(shí)點(diǎn)亮LED燈。 軟件程序設(shè)計(jì) 程序設(shè)計(jì)思路因本系統(tǒng)為模塊化設(shè)計(jì),為方便軟件編寫和移植,程序設(shè)計(jì)采用C語言,程序流程圖如下:開始單片機(jī)初始化鍵盤掃描輸入有按鍵命令?執(zhí)行按鍵命令NY顯示正確輸入正確字符比較確定鍵顯示下一個(gè)顯示上一個(gè)YLCD12864初始化N矩陣鍵盤采用56 列與行掃描法,P1口依次接鍵盤的每一行,而P3口依次接鍵盤的每一列,程序開始先令P1全為高電平,P3口全為低電平,這樣一旦矩陣鍵盤中有一個(gè)鍵按下時(shí),就會(huì)在某一行中出現(xiàn)低電平,而某一列中出現(xiàn)高電平,程序先讀P1口,以檢測(cè)到有低電平來確定行。再使P1全為低電平,P3口全為高電平,再讀P3口,以檢測(cè)到低電平來確定列。這里還要考慮按鍵的機(jī)械抖動(dòng)問題,因?yàn)榘存I的機(jī)械特性,可能在按下瞬間會(huì)有一組抖動(dòng)的脈沖,一般程序中采用延時(shí)方法來去抖動(dòng)。實(shí)現(xiàn)的C程序函數(shù)如下:/*************************************************** 鍵盤掃描程序*************************************************/unsigned char kbscan() //鍵盤掃描 { uchar hang,lie,key。 //P1連行,P3連列 if(P1!=0xFF||P3!=0) //按鍵去抖動(dòng) delayms(5)。 //延時(shí)5ms if(P1!=0xFF||P3!=0) { switch(P1amp。0xFF) //P1 掃行 { case 0xFE:hang=5。break。 // case 0xFD:hang=4。break。 // case 0xFB:hang=3。break。 // case 0xF7:hang=2。break。 // case 0xEF:hang=1。break。 // case 0xDF:hang=0。break。 // } P1=0。 //P1全低電平 P3=0xFF。//P3全高電平 switch(P3amp。0xFF) { case 0xFE:lie=4。break。 // case 0xFD:lie=3。break。 // case 0xFB:lie=2。break。 // case 0xF7:lie=1。break。 // case 0xEF:lie=0。break。 // } P1=0xFF。 //P1全高電平 P3=0。 //P3全低電平 while(P1!=0xFF||P3!=0)。 //按鍵松開后才返回值 key=tab1[hang][lie]。 } else key=39。_39。 //沒鍵按下返回空 return (key)。 } LCD12864顯示模塊的驅(qū)動(dòng)程序 LCD12864顯示模塊的程序作為顯示部分的底層程序,用戶可直接調(diào)用其函數(shù)來達(dá)到驅(qū)動(dòng)和顯示功能。主要顯示命令和顯示的函數(shù)說明如下:清顯示屏:void ClearLCD() ,將LCD上的顯示字符清空漢字的顯示函數(shù):void hz_disp(unsigned char x,unsigned char y,unsigned char n,unsigned char code * hz,bit flag) ;其中X Y為漢字的起始坐標(biāo),n為字?jǐn)?shù),hz為存儲(chǔ)漢字字模碼(后述)的地址,flag為顯示為黑還是白。英文的顯示函數(shù)為:void en_disp(unsigned char x,unsigned char y,unsigned char n,unsigned char code *asc,unsigned char *string,bit flag) ;其中其中X Y為字母的起始坐標(biāo),n為字?jǐn)?shù),asc為存儲(chǔ)字形碼(后述)的地址,flag為顯示為黑還是白。LCD12864顯示一個(gè)單詞的示例代碼如下:en_disp(6,0,8,Asc,correct:,1)。 //在第7行,第1列開始顯示correct;LCD12864顯示一個(gè)漢字的示例代碼如下:hz_disp(0,48,1,hz1+hz_Num*32,1)。 //在第1行,第49列開始顯示測(cè)試的漢字 顯示字模碼的提取為了使LCD12864能夠顯示用戶存儲(chǔ)的中文漢字和英
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1