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

正文內容

基于stc89c52單片機簡易計算器的設計-在線瀏覽

2025-03-07 14:21本頁面
  

【正文】 L2則是輸出端,使用外部振蕩器時,外部振蕩信號應直接加到XTAL1,而XTAL2懸空。晶振的頻率可以在1MHz~24MHz內選擇,在本設計電路中選用了12MHz。機器周期=12*時間周期,如12MHz的機器周期為1微秒。RST/VPD:當出現(xiàn)兩個機器周期高電平時,單片機復位。圖 25 復位電路單片機的現(xiàn)狀及發(fā)展方向單片機是為了工業(yè)控制需要滿足而誕生的,是自動控制系統(tǒng)的核心部件,因而也主要用于工業(yè)控制、智能化儀器儀表、家用電器中。應用領域不斷擴大,除了工業(yè)控制、智能化儀表、通訊、家用電器外,在智能化高檔電子玩具產(chǎn)品中也大量采用單片機芯片作為核心控制部件。 LCD1602液晶顯示屏 液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。 LCD1602的應用簡介LCD1602液晶顯示器采用HD44780及其兼容芯片作為點陣式LCD的控制器驅動器,還采用HD44100進行LCD的時分割驅動。1602液晶模塊內部的控制器共有11條控制指令,豐富的指令可以完成液晶的時序控制、工作方式設置和數(shù)據(jù)顯示等。圖26 LCD1602的引腳接口電路圖表 22 LCD1602的引腳說明第1腳Vss為地電源第2腳VDD接5V正電源第3腳Vo為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調整對比度。第5腳Rw為讀寫信號線,高電平時進行讀操作,低電平時選擇指令寄存器。第714腳D0D7為8位雙向數(shù)據(jù)線。 其他方面簡介DDRAM用來暫存顯示字符的代碼,共80個字節(jié),DDRAM的各個單元對應著顯示屏上的各個字符位,如圖226所示。LCD16字*2行000102030405060708090A0B0C0DOEOF10……27404142434445464748494A4B4C4D4E4F50……67圖 226 DDRAM單元地址與顯示屏字符位的對應關系LCD1602的主要技術參數(shù):(1)顯示容量為16*2個字符;(2);(3)();(4);(5)*(W*H)mm。3. 計算器設計原理分析 設計方案一本設計需要使用LCD液晶顯示屏和編碼鍵盤。主程序進行初始化,其他的程序選擇模塊式的方式。 計算器硬件方案及硬件資源分配 硬件資源分配主要用到的硬件:單片機STC89C52 、液晶顯示屏LCD1602 、4*4按鍵鍵盤硬件分配: P3口:作為輸入口,與鍵盤連接,實現(xiàn)數(shù)據(jù)的輸入; P0、P2口:作為輸出口(P2口為高位,P0口為低位),控制LCD液晶顯示屏顯示數(shù)據(jù)的結果; 液晶顯示屏LCD1602顯示輸出。盡管采用軟件來實現(xiàn)硬件系統(tǒng)的功能時,也許響應的時間會比單純使用硬件時長,而且還要占用微處理器(MCU)的時間;但是,用軟件實現(xiàn)硬件的功能可以簡化硬件結構,提高電路的可靠性??煽啃约翱垢蓴_設計根據(jù)可靠性設計理論,系統(tǒng)所用芯片數(shù)量越少,系統(tǒng)的平均無故障時間越長。因此,系統(tǒng)的設計思想是在滿足功能的情況下爭取較少數(shù)量的芯片。一次設計往往不能完全考慮到系統(tǒng)的各個方面,系統(tǒng)需要不斷完善以及進行功能升級。對于本系統(tǒng)而言,就是要求在系統(tǒng)硬件不變的情況下,能夠通過修改軟件程序,完成功能的升級和擴展。計算器主要由以下一些功能模塊組成:非編碼鍵盤模塊、運算模塊(單片機內部)、LCD液晶顯示模塊等。STC89C52單片機與LCD液晶顯示屏顯示電路是整個電路的核心,它們能實現(xiàn)系統(tǒng)的功能要求。前面說明了該系統(tǒng)的設計,系統(tǒng)采用了比較簡單的設計方案,所以該系統(tǒng)的硬件設計的總外圍電路不會產(chǎn)生過多的干擾。鍵盤部分采用4*4按鍵鍵盤,顯示部分采用LCD液晶顯示屏完全能夠很好地實現(xiàn)顯示方面的要求。編碼鍵盤是較多按鍵(20個以上)和專用驅動芯片的組合;當按下某個按鍵時,它能夠處理按鍵抖動、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預。在智能儀器中,使用并行接口芯片8279或串行接口HD7279均可以組成編碼鍵盤,同時還可以兼顧數(shù)碼管的顯示驅動,其相關的接口電路和接口軟件均可在芯片資料中得到。非編碼鍵盤成本低廉。如圖31所示。P0口作為液晶顯示的數(shù)據(jù)端口,控制LCD液晶顯示屏顯示輸出數(shù)據(jù)。圖32 LCD液晶顯示屏顯示4. 計算器軟件設計 計算器的軟件規(guī)劃簡易計算器的程序主要包括以下功能模塊: 讀鍵程序、判鍵程序段、運算操作子程序等部分; 基于LCD液晶顯示屏的顯示模塊; 主模塊,為系統(tǒng)的初始化 主模塊的程序設計主程序主要用來對LCD液晶顯示屏進行初始化的。圖 41 主程序框圖本來在考慮主模塊流程時,曾考慮到在初始化LCD顯示后應該進入中斷服務的,當然也這么畫上去了;可經(jīng)過老師的提點,之后又反復推敲了好幾遍,再將流程好好地走了幾遍,發(fā)現(xiàn)的確存在著問題。既然是計算器,只要反復地進行四則運算,其過程與結果并在液晶顯示屏上顯示出來。 init()。 //將液晶指針定位在第一行第一個單元 key=15。 while(1) { ………… write_cmd(0x80+0x40)。 } flag1=0。”,被賦值為“0x80”,則是根據(jù)圖 226 DDRAM單元地址與顯示屏字符位的對應關系中便能找到,第一行第一個單元的值為80H,則第二行第一個單元的值就為80H+40H,即得出“write_cmd(0x80+0x40)。 顯示模塊的程序設計圖42 顯示程序框圖顯示模塊程序首先要對顯示模塊進行初始化;然后控制光標的位置;定義液晶顯示的控制端口,用SBIT指令完成;然后設置清屏、關閉顯示、歸位、開顯示、顯示位置的首地址等等。根據(jù)以上的顯示程序的流程框圖,便能編寫出其顯示子程序:void jscl() //計算并顯示函數(shù){ uchar i,j,n。jk1+1。ik1j。jk2+1。 ………… if(js==13) { s=(s1*)/(s2*)。 //以下部分處理結果 temp2=stemp1。i0。…………}通過其顯示子程序,發(fā)現(xiàn)要顯示其最終結果,就必須先存放第一操作數(shù)、第二操作數(shù),之后來判定使用四則運算中的哪一種運算,其后進行運算處理,最后便能在LCD液晶顯示屏上顯示其最終結果。然后鍵值并顯示緩存。讀鍵程序使用的是反轉法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進行兩次讀鍵。系統(tǒng)中連接的是4*4行列式按鍵鍵盤,其中“09”為數(shù)字鍵;“+、*、/、=”為符號鍵;“ON/C”為功能鍵(清屏鍵),在程序中會加入一個記憶功能鍵,而與其搭配的硬件按鍵為符號鍵中的“=”,以為求方便。鍵盤模塊程序也可相當于一個中斷服務子程序,如圖43所示。 uint i。i4。 //_crol_為左移函數(shù) ………… { case 0xee: key=0。 case 0xde: key=1。 ……………… case 0x77: key=15。}在以上的程序中,其中的“key=0……key=15”是按鍵“0+、*、/、=、ON/C”16個鍵。 break。以此類推,之后一直到“case 0x77: key=15?!睘橹?,都是采用相同的方法去賦值的結 論在硬件的制作過程中,我走了很多彎路。后來發(fā)現(xiàn)與設計的要求還有偏差,而后反復地改了好幾次,浪費了大量的時間和精力。一開始,本想用匯編語言來編程的,可是當編了一部分之后才發(fā)現(xiàn),用匯編語言來編程的話,相當繁復冗長;之后就想試著用C語言來編程。在編寫程序的過程中,發(fā)現(xiàn)居然出現(xiàn)了不少問題。編程時,已充分使用了結構化的思想。當每個模塊都完成時,將其功能加到一起就完成了整體的設計,通過這次畢業(yè)論文的設計,使自己在單片機方面得了很高的提升空間,為自己為將來打下了不小的基礎. 參考文獻[1] 李廣弟,朱月秀,[M].北京:北京航空航天大學出版社,2007:1.[2] 徐惠民,田輝,孫全,[M].北京:高等教育出版社,2007:5[3] [M].北京:北京水利水電出版社,2007.[4] 張友德、趙金英、應用與實驗(第四版)[M].上海:復旦大學出版社,2003.[5] [J]. 氣象水文海洋儀器 ,1999(02):4044[6] 譚浩強,C程序設計(第三版)[M]:北京:清華大學出版社,1999[7] 萬冬、王玥玥. 計算器LCD顯示屏與單片機的簡單接口[J] .電子技術應用,1996(2):2325[10]江世明. 基于Proteus的單片機應用技術[M]. 北京:電子工業(yè)出版社,2009.[11]周潤景. 基于Proteus的電路與單片機系統(tǒng)設計與仿真[M]. 北京:北京航空航天大學出版社,2006. 附錄一 電路原理圖附錄二 軟件程序includeinclude define uchar unsigned chardefine uint unsigned intsbit lcden=P2^2。//這是LCD讀寫選擇端sbit lcdrs=P2^0。039。139。239。339。439。539。639。739。839。939。+39。39。*39。/39。=39。.39。uchar key,flag1,js,k1,k2。float jieguo=0。 for(x=z。x) for(y=110。y)。//寫指令控制端為低 P0=cmd。 lcden=1。 lcden=0。//寫數(shù)據(jù)控制端高電平 P0=date。 lcden=1。 lcden=0。{lcdrw=0。 write_cmd(0x38)。//設置開顯示,不顯示光標 (關顯示是0x08) write_cmd(0x06)。//清屏}void keyscan() //鍵盤掃描程序{ uchar temp,uu=0xf7。 for(i=0。i++) {uu=_crol_(uu,1)。 temp=P3。0x0f。 temp=P3。0x0f。 switch(temp) { case 0xee: key=0。 case 0xde: key=1。 case 0xbe: key=2。 case 0x7e: key=3。 case 0xed: key=4。 case 0xdd: key=5。 case 0xbd: key=6。 case 0x7d: key=7。 case 0xeb: key=8。 case 0xdb: key=9。 case 0xbb: key=10。 case 0x7b: key=11。 case 0xe7: key=12。 case 0xd7: key=13。 case 0xb7: key=14。 case 0x77: key=15。 } while(temp!=0x0f) { temp=P3。0x0f。 } } }} void jscl() //計算并顯示函數(shù){ uchar i,j,n。 long int s1,s2,a1,b1,c1,temp1。 s1=s2=0。 if(k2!=0) { for(j=0。j++) //存放第一操作數(shù)
點擊復制文檔內容
范文總結相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1