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

正文內(nèi)容

多功能計算器的設計畢業(yè)設計(論文)-wenkub

2022-09-07 14:17:59 本頁面
 

【正文】 圖 21 AT89Cxx系列單片機引腳排列圖 計算器的組成包括運算器、控制器、存儲器、鍵盤、顯示器、電源和一些可選外圍設備及電子配件通過人 工或機器設備。和愛特梅爾公司一樣,飛利浦,達拉斯和其他領先的半導體公司已經(jīng)推出與 MCS51 單片機產(chǎn)品兼容。在將軟件程序放入硬件之后,對整體電路進行調(diào)試與測試, 看是否存在問題。在此基礎上還加入了 DS1302實時時鐘電路的設計,使其本省還具有了電子表的功能。 單片機是計算機、自動控制和大規(guī)模集成電路技術相結(jié)合的產(chǎn)物,融計算機結(jié)構(gòu)和控制功能 于一體,因此除單片機外它還有其他名稱,例如“嵌入式微處理器”、“微控制器”、“嵌入式微控制器”等。在計算器基本功能順利完成的基礎上,對系統(tǒng)進行了簡單的擴展,增加了電子表功能,達到預期的要求,系統(tǒng)功能也更加完善。 本計算器系統(tǒng)簡單 ,實用性強,成本低,使用維護方便,軟件功能強,運行穩(wěn)定可靠等優(yōu)點。如今, 單片機憑借其微小的體積和低廉的成本在各個領域被廣泛使用,例如用于家用電器、工業(yè)控制等,所以 許多大學里都開設了單片機原理與應用這方面的課程。 這次設計主要是通過單片機的原理和應用,在電子技術基礎的基本理論的指導下,我采用 Protues 仿真軟件和K eil 編程軟件來進行設計計算器,然后制作實物。 第一章 緒論 2 . 論文結(jié)構(gòu) 本文共由六章組成,第二章為基礎理論部分,介紹 單片機的發(fā)展現(xiàn)狀 、AT89Cxx 系列單片機的簡介 ,計算器系統(tǒng)簡介 計算器的總體功能描述 ,;第三章為計算器的硬件系統(tǒng)設計 ,從結(jié)構(gòu)上分析 計算器的硬件系統(tǒng)框架,最小系統(tǒng)的設計 ,鍵盤接口電路的設計,顯示電路的設計及 DS1302 實時時鐘電路的設計 ;第四章介紹 計算器的軟件系統(tǒng)設計,主要介紹主模塊程序的設計,鍵盤掃描模塊程序的設計,運算模塊程序的設計,顯示模塊程序的設計以及 DS1302 實時時鐘模塊程序的設計 ;第五章為 計算器系統(tǒng) 的組裝與調(diào)試 ,對系統(tǒng)的軟硬件分別進行了調(diào)試;第六章為論文總結(jié),對本次畢業(yè)設計做了相關小結(jié)并提出了下一步要做的工作。這些知名廠商加入 51 系列獲得了突飛猛進的發(fā)展,進一步豐富和發(fā)展的 51 系列,產(chǎn)品性能有了很大的提高。 低級計算器運算器,控制器由數(shù)字邏輯電路簡單的串行操作,隨機存取存儲器是只有一個或兩個細胞,用于累加存儲。計算機顯示輸出部件,發(fā)光二極管顯示器,液晶顯示器等。計算器可選外設,微型打印機,盒式磁帶驅(qū)動器和磁機。其引腳圖如圖 32 所示。 圖 33 晶振電路 復位電路的設計 本次設計對復位電路部分的考慮還是蠻周 到的,因為復位電路對這次設計來說是很重要的。 圖 34 按鍵電平復位電路 這次設計是基于單片機的計算器的設計,并沒有要求進行復雜的運算,因此,采用 4 4 矩陣式鍵盤 16 個鍵來實現(xiàn)基本的 “ 加 ” 、 “ 減 ” 、 “ 乘 ” 、 “ 除 ” 運算即可。液晶顯示器和 LED 數(shù)碼管顯示器對比來說雖然價格貴點,但是它的顯示功能強大,體積小、功耗低、界面清晰,便于觀察。高電平時進行讀操作,低電平時選擇指令寄存器 第 5 腳 RW 讀寫信號線 第 6 腳 E 使能端,當 E 端由高電平跳變成低電平時,可以寫入數(shù)據(jù) 第三章 計算器的硬件系統(tǒng)設計 10 第 7~ 14 腳 8 位雙向數(shù)據(jù)線 D0~ D7 第 15 腳 BLA 背 光電源正極輸入端 第 16 腳 BLK 背光電源負極輸入端。我設計的計算器和電子表兩種模式可以用一個獨立按鍵來進行切換,而且是在同一塊液晶屏上顯示。其引腳功能如表 33所示: 南京工業(yè)大學本科生畢業(yè)設計 (論文) 11 表 33 DS1602引腳功能 第 1腳 Vcc2 第 1腳 Vcc2 第 2腳 X1和 第 3腳 X2 振蕩源,外接 的晶振 第 4腳 GND 地線 第 5腳 RST 復位 /片選線 第 6腳 I/O 串行數(shù)據(jù)輸入 /輸出端(雙向) 第 7腳 SCLK 串行時鐘輸入 第 8腳 Vcc1 后背電源 DS1302引腳電路圖如圖 37所示: 圖 37 DS1302電路圖 在對該模塊進行設計時,我選用了 4 個獨立式按鍵,它們的功能分別是:“設置” 、“確認” 、“ +” 、“ ” ,用來準確的設置時間。 匯編語言和 C 語言的特點及選擇 這次設計我用的是硬件電路和軟件編程相結(jié)合的設計方案,所以選擇合適的編程語言是很重要。我覺得這次設計用 C 語言來控制單片機是一個不錯的選擇。 uchar alldata[12]={0}。 uchar keyscan(void)。 void datapc(void)。 南京工業(yè)大學本科生畢業(yè)設計 (論文) 13 while(1) { key=keyscan()。在進行結(jié)構(gòu)化程序設計時經(jīng)常會用到“從上到下”和“從下到上”兩種方式,而“從上到下”法的核心便于主框架的構(gòu)建。鍵盤掃描模塊程序的流程圖如圖 所示 。在按鍵操作過程中,按鍵受到彈性的影響會導致按鍵的機 械觸電在閉合及斷開的瞬間發(fā)生抖動的現(xiàn)象,導致按鍵不能馬上實現(xiàn)完全閉合或斷開,并使輸入電壓信號也會出現(xiàn)抖動現(xiàn)象,抖動時間的長短根據(jù)按鍵的機械特性決定。如果按鍵釋放就等待;如果鍵已經(jīng)釋放,那么就再延時消抖。這次設計還要 求可以根據(jù)需要進行連 續(xù)多次的運算,即把c的值賦給 x,輸入運算符,再輸入 y,按下“ =”號,再得到 z,再賦給 x,以此反復執(zhí)行。運算模塊程序流程圖如圖 43 所示。寫指令:輸入: RS=L, RW=L, D0~ D7=指令碼, E=高脈沖;輸出:無。 表 41 時、分、秒、控制寄存器介紹 讀寄存器 寫寄存器 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 范圍 81H 80H CH 10 秒 秒 00~59 83H 82H 10 分 分 00~59 85H 84H 0 0 20時 10時 時 0~23 8FH 8EH WP 0 0 0 0 0 0 0 ——— 從表中,可以很明了的知道以上寄存器的功能和使用方法,需要說明的是控制寄存器的位 7( WP)是寫保護位,其他七位都為 0,在對任何時鐘和 RAM 進行寫操作前, WP必須為 0。 write_ds1302(0x8e,0x00)。 //寫秒鐘, 05 秒 write_ds1302(0x8e,0x80)。 ( 3)事先未被定義的被調(diào)函數(shù)放在了主調(diào)函數(shù)的后面,導致錯誤。 在 Keil 和 Protues 的聯(lián)合調(diào)試下,經(jīng)過了多次認真的分析與修改,程序終于能實現(xiàn)我預期的要求。 ( 2)液晶雖然可以顯示了,但在進行計算時并不能正確顯示,經(jīng)過多次檢查,發(fā)現(xiàn)硬件并無錯誤,斷定為軟件的錯誤,最后發(fā)現(xiàn)軟件中液晶初始化不完整,可是在仿真時是正確的,這充分說明了仿真與實際硬件的區(qū)別。 ( a)加 (b) 減 (c)乘 (d) 除 第五章 計算器系統(tǒng)的組裝與調(diào)試 24 (e) 除數(shù)為 0 ( f)溢出錯誤 ( g)時間顯示 圖 53 運算器各種運算截圖 從上圖可以看出,我做的計算器在運算部分和時鐘部分都能成功地運行了,它可以做到基本的四則運算,還可以正確的顯示時間,同時,在計算結(jié)果超出它本身的運算范圍的時候它會用英文提示錯誤。不僅加深鞏固了以前學過的知識,而且學到了許多書本上沒有提到過的知識,學會了一種系統(tǒng)的研究方法,可以進行一些簡單的編程。 在這次設計中剛開始我遇到了很多問題,最終還是被我成功的解決了,基本實現(xiàn)了我最初的設想,也成功的實現(xiàn)了時鐘功能。如果以后還有時間對其進行的完善的話,我會添加一些平方,開方等實用的功能,但這些功能的實現(xiàn)我還要進行更加系統(tǒng)的學習。 sbit busy=P0^7。 sbit pluskey=P3^6。 sbit ds1302_rst=P2^2。 long int a,b,c,d,e。 uchar code table[]={ 0,1,2,3, 4,5,6,7, 8,9,0,0, 0,0,0,0}。z0。 } void delay1(uint t) //遲延函數(shù) 50us 南京工業(yè)大學本科生畢業(yè)設計 (論文) 29 { uchar j。j0。t0。 } void write_ds1302byte(unsigned char temp1) //ds1302 寫字節(jié)函數(shù) { unsigned char i。0x01。 } } void write_ds1302( unsigned char address,unsigned char dat ) //ds1302 寫數(shù)據(jù)函數(shù) { ds1302_rst=0。 write_ds1302byte(address)。 for(i=8。 ds1302_clk=0。 ds1302_rst=0。 temp1=read_byte()。 } void ds1302_init() //ds1302 初始化 { write_ds1302(0x8e,0x00)。 write_ds1302(0x82,0x30)。 write_ds1302(0x8e,0x80)。 //讀 rs rw 的值為 01 lcden=0。 //判斷是否為空閑, 1 為忙, 0 為空閑 } void write_(uchar ) //LCD 寫指令函數(shù) { P0=。 check()。 rw=0。 } void lcdinit() //LCD 初始化 { delay2(2)。 //(硬件中必須有,否則初始化不完整;軟件仿真時可以沒有 ) delay1(4)。 //增量方式不移位 delay1(4)。 //清屏 delay1(10)。 j=0。 //a 與 b 的運算結(jié)果 flag=0。 } } void display_hour(void) //顯示時 { hour=read_ds1302(0x85)。 } void display_min(void) //顯示分 { min=read_ds1302(0x83)。 LCDTestWord(1,min%16+0x30)。 LCDTestWord(1,(sec/16)+0x30)。 write_date(0x5f)。 display_sec()。 if(count==3) { write_date(0x73)。} if(count==2) {write_date(0x6d)。} if(count==1) {write_date(0x68)。} item=read_ds1302(address)。 //數(shù)減 1 if(itemmax) item=mini。 write_ds1302(address1,item)。amp。amp。 //調(diào)整 附錄 34 } while(setkey==0)。w==1) { w=0。 } while(surekey==0)。w==1) { SetTime(next)。amp。 for(k=0。b=0。 //掃描第 0 行 if(P1!=0xfe) { delay(20)。 break。 break。 if(num==0||num==1||num==2||num==3)//如果按下的是 39。,39。 { if(j!=0) { write_(0x01)。 } } i=table1[num]。 if(P1!=0xfd) { temp=P1amp。 case 0xd0:num=5。 case 0x70:num=7。439。639。
點擊復制文檔內(nèi)容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1