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

正文內容

基于stc89c52rc單片機的簡易計算器設計_電子設計大賽——畢業(yè)設計論文(編輯修改稿)

2025-04-03 10:24 本頁面
 

【文章內容簡介】 盤電路 13 通用計算機使用的鍵盤就是編碼鍵盤。在智 能儀器中,使用并行接口芯片 8279 或串行接口 HD7279 均可以組成編碼鍵盤,同時還可以兼顧數碼管的顯示驅動,其相關的接口電路和接口軟件均可在芯片資料中得到。當系統功能比較復雜,按鍵數量很多時,采用編碼鍵盤可以簡化軟件設計。非編碼鍵盤成本低廉。從成本角度出發(fā),本設計選用的是非編碼鍵盤。如圖 31 所示。 顯示電路 的結構 當系統需要顯示少量數據時,采用 LCD 液晶顯示屏進行顯示是一種經濟實用的方法。P0 口作為液晶顯示的數據端口, 口作為其控制端口,控制 LCD 液晶顯示屏顯示輸出數據。 最終 顯示電路如圖 32 所示。 圖 32 LCD 液晶顯示屏顯示 4. 計算器軟件設計 計算器的軟件規(guī)劃 簡易計算器的程序主要包括以下功能模塊: 讀鍵程序、判鍵程序段、運算操作子程序等部分; 基于 LCD 液晶顯示屏的顯示模塊; 主模塊,為系統的初始化 主模塊的程序設計 主程序主要用來對 LCD 液晶顯示屏進行初始化的。在考慮主程序編寫之前,先應對計算器的運作流程有一個大致的了解,之后依次為依據畫出大致的流程圖如圖 41 所示,以便于編寫其主模塊的程序,這樣看來,會比較清晰 、 更加方便 。 14 圖 41 主程序框圖 本來在考慮主模塊流程時,曾考慮到在初始化 LCD 顯示后應該進入中斷服務的,當然也這么畫上去了;可經過老師的提點,之后又反復推敲了好幾遍,再將流程好好地走了幾遍,發(fā)現的確存在著問題。 在主程序中的確不用中斷服務,它其實也屬于一個子程序,是與鍵盤程序有關,之后會加以說明。 既然是計算器,只要反復地進行四則運算,其過程與結果并在液晶顯示屏上顯示出來。 通過這個詳細的主模塊程序框圖,即能夠很快地編寫出其程序: void main() { uchar i,j。 init()。 write_cmd(0x80)。 //將液晶指針定位在第一行第一個單元 key=15。 i=flag1=0。 while(1) { ………… write_cmd(0x80+0x40)。 //將液晶指針定位在第二行第一個單元 jscl()。 } flag1=0。 開始初始化參數初始化 LED 顯示數值運算LED 顯示 15 } } 在以上的程序中 “write_cmd(0x80)?!?,被賦值為 “0x80”,則是根據圖 226 DDRAM 單元地址與顯示屏字符位的對應關系中便能找到,第一行第一個單元的值為 80H,則第二行第一個單元的 值就為 80H+40H,即得出 “write_cmd(0x80+0x40)?!?。 顯示模塊的程序設計 開 始延 時 程 序L E D 是 否 忙 ?鍵 盤 掃 描加 減 乘 除 運 算 程 序L E D 液 晶 顯 示結 束 圖 42 顯示程序框圖 顯示模塊程序首先要對顯示模塊進行初始化;然后控制光標的位置;定義液晶顯示的控制端口,用 SBIT 指令完成;然后設置清屏、關閉顯示、歸位、開顯示、顯示位置的首地址等等。 16 顯示模塊的流程圖如圖 42 所示。 根據以上的顯示程序的流程框圖,便能編寫出其顯示子程序: void jscl() //計算并顯示函數 { uchar i,j,n。 ………… { for(j=0。jk1+1。j++) //存放第一操作數 { for(i=0。ik1j。i++) ………… } for(j=k1+1。jk2+1。j++) //存放第二操作數 { ………… if(js==10) //判斷是什么運算,并執(zhí)行運算 { s=s1+s2。 ………… if(js==13) { s=(s1*)/(s2*)。 ………… temp1=(long int)(s)。 //以下部分處理結果 temp2=stemp1。 ………… for(i=n。i0。i) //在液晶上顯示結果 { write_data(table[b[i1]])。 ………… } 通過其顯示子程序,發(fā)現要顯示其最終結果,就必須先存放第一操作數、第二操作數,之后來判定使用四則運算中的哪一種運算,其后進行運算處理,最后便能在 LCD 液晶顯示屏上顯示其最終結果。 鍵盤模塊的程序設計 鍵盤掃描子程序,首先讀出 P3 口的低四位,然后讀出 P3 口的高四位。然 后鍵值并顯示緩存。而后,將鍵盤上的值轉換為 ASCII 碼,最后就可以用軟件來設置硬件按鍵各個鍵 17 所代表的內容。 讀鍵程序使用的是反轉法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進行兩次讀鍵。第一次所有行線均輸出低電平,從所有讀入鍵盤信息(列信息);第二次所有列線均輸出低電平,從所有行線讀入鍵盤信息(行信息)。 系統中連接的是 4*4 行列式按鍵鍵盤,其中 “09”為數字鍵; “+、 、 *、 /、 =”為符號鍵;“ON/C”為功能鍵(清屏鍵),在程序中會加入一個記憶功能鍵,而與其搭配的硬件按鍵為符號鍵中的 “=”,以為求方便。 有 鍵 輸 入 ?YYYYNNNNNN數 字 鍵 ?號 碼 鍵 ?功 能 鍵 ?清 零 ?記 憶 ?輸 入 清 理 鍵 送清 零 緩 沖 區(qū)輸 入 記 憶 鍵 送記 憶 緩 沖 區(qū)數 值 輸 入 , 送數 值 緩 沖 器符 號 輸 入 , 送 符號 緩 沖 器綜 合 結 果 送 綜 合緩 沖 區(qū)返 回 圖 43 中斷服務程序框圖 數字鍵按下則將相應的數字送入數字緩沖區(qū);符號鍵按下則將送入符號緩沖區(qū);功能鍵按下則執(zhí)行相應的程序;最終進行運算后,綜合結果將送入結果緩沖區(qū),并在 LCD 液晶顯示屏上顯示出來。 鍵盤模塊程序也可相當于一個中斷服務子程序,如圖 43 所示。 18 通過以上的中斷服務程序框圖,來編寫其子程序: void keyscan() //鍵盤掃描程序 { uchar temp,uu=0xf7。 uint i。 for(i=0。i4。i++) {uu=_crol_(uu,1)。 //_crol_為左移函數 ………… { case 0xee: key=0。 break。 case 0xde: key=1。 break。 ……………… case 0x77: key=15。 break。 } 在以上的程序中,其中的 “key=0……key=15” 是按鍵 “0 +、 、 *、 /、 =、 ON/C”16個鍵。而 “case 0xee: key=0。 break?!敝校毁x值為 “0xee”,則是因為行信息是 P3 口的低 四位,若是按鍵按下為 “0”,則 為 “0”, 為 “1”;同時,列信息是 P3 口的高四位,若是按鍵按下為 “0”,則 為 “0”, 為 “1”;由此可得,其被賦值為 “0xee”。 以此類推,之后一直到 “case 0x77: key=15。 break?!睘橹?,都是采用相同的方法去賦值的 結 論 在硬件的制作過程中,我走了很多彎路。主要是在系統還沒有到設計完全的時候就開始很心急地 做仿真圖和實物 。后來發(fā)現與設計的要求還有偏差,而后反復地改了好幾次,浪費了大量的時間和精力。 板子是 按照自己的思想和意愿來設計的 。一開始,本想用匯編語言來編程的,可是當編了一部分之后才發(fā)現,用匯編語言來編程的話,相當繁復冗長;之后就想試著用 C 語言來編程。在圖書館查閱了一些相關資料后,就開始寫程序。在編寫程序的過程中,發(fā)現居然出現了不少問題。所以,在編寫程序的過程中,也就完善了 軟件 的設計。 編程時,已充分使用了結構化的思想。這樣一來,因為語句較少,程序調試也比較方便,功能模塊可以逐一地調試,充分體現了結構化編程的優(yōu)勢。當每個模塊都完成時,將其功能加到一起就完成了整體的設計 ,通過這次畢業(yè)論文的設計 ,使自己在單 片機方面得了很高的提升空間 ,為自己為將來打下了不小的基礎 . 19 參考文獻 [1] 李廣弟,朱月秀,冷祖祁 .單片機基礎 [M].北京:北京航空航天大學出版社, 2021:1. [2] 徐惠民,田輝,孫全,等 .微機原理與接口技術 [M].北京 :高等教育出版社, 2021:5 [3] 林志琦 .單片機原理接口及應用 [M].北京:北京水利水電出版社, 2021. [4] 張友德、趙金英、涂時亮 .單片微型計算機原理、應用與實驗 (第四版 )[M].上海:復旦大學出版社,2021. [5] 彭傳良 .電子計算器鍵盤與單片機的接口技術及 其應用 [J]. 氣象水文海洋儀器 , 1999( 02): 4044 [6] 譚浩強, C 程序設計(第三版) [M]:北京:清華大學出版社, 1999 [7] 萬冬、王玥玥 . 電子設計實戰(zhàn)訓練之六:簡單計算器 [J]. 電子制作, 2021( 11): 2831 [8] 高偉 . AT89 單片機原理及應用 [M]. 北京 :國防工業(yè)出版社 2021. [9] 張慶鋒 . 計算器 LCD 顯示屏與單片機的簡單接口 [J] .電子技術應用, 1996( 2) :2325 [10]江世明 . 基于 Proteus 的單片機應用技術 [M]. 北京 :電子 工業(yè)出版社 ,2021. [11]周潤景 . 基于 Proteus 的電路與單片機系統設計與仿真 [M]. 北京 :北京航空航天大學出版社 ,2021. 20 附錄一 電路原理圖 A7A6A5A4A3A2A1A0A1A2A3A4A5A6B8B7B6B5B4B3B2B1B1B2B3B4B5B6B7B8C1C1D1D1E1E1F2F1A0A7F1F2X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3L C D 1L M 0 1 6 LR11 0 k+ 5 VR21 0 kC11 0 0 nC20 .1 u FC30 .1 u FX1CR Y S T A L 附錄二 軟件程序 include include define uchar unsigned char define uint unsigned int sbit lcden=P2^2。//這是 LCD 使能端 sbit lcdrw=P2^1。//這是 LCD 讀寫選擇端 sbit lcdrs=P2^0。//這是 LCD 數據命令選擇端 uchar code table[]={39。039。,39。139。,39。239。,39。339。,39。439。,39。539。,39。639。,39。739。,39。839。,39。939。, 39。+39。,39。39。,39。*39。,39。/39。,39。=39。,39。.39。}。 uchar key,flag1,js,k1,k2。 21 uchar a[20],b[20]。 float jieg
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1