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

正文內(nèi)容

多功能計(jì)算器的設(shè)計(jì)畢業(yè)設(shè)計(jì)(論文)(文件)

2025-09-17 14:17 上一頁面

下一頁面
 

【正文】 j=0。 write_date(0x30+i)。0xf0。 break。 break。,39。 } if(flag==0) //沒有按過符號鍵 { a=a*10+table[num]。 南京工業(yè)大學(xué)本科生畢業(yè)設(shè)計(jì) (論文) 37 { flag=1。 { flag=1。 } P1=0xf7。 switch(temp) { case 0xe0:num=12。 case 0xb0:num=14。 } } while(P1!=0xf7)。 }//表示按下的是 39。flag=1。 break。 //設(shè)置從后住前寫數(shù)據(jù),每寫完一個數(shù)據(jù),光標(biāo)后退一格 if(((a0amp。bda)) { error()。 if(c0) c=c。 write_(0x80+0x40)。fuhao=0。amp。 break。 while(c!=0) {write_date(0x30+c。 else c=ba。amp。 write_(0x04)。b=0。 c=c/10。} // 加法溢出錯誤 c=a+b。ad)amp。 if(fuhao==1) //進(jìn)行加法運(yùn)算; { write_(0x80+0x4f)。 } //表示按下的是 39。 break。flag=1。 case 0x70:num=15。 case 0xd0:num=13。 if(P1!=0xf7) { temp=P1amp。 } i=table1[num]。 } else if(num==11)//表示按下的是 39。 } } else if(num==10) //表示按下的是 39。 { if(j!=0) { write_(0x01)。 if(num==8||num==9)//如果按下的是 39。 break。 break。 //掃描第 3 行 if(P1!=0xfb) { delay(20)。 } else//如果按過符號鍵 { b=b*10+table[num]。739。539。 } } 附錄 36 while(P1!=0xfd)。 case 0xb0:num=6。 switch(temp) { case 0xe0:num=4。 } P1=0xfd。 } if(flag==0)//沒有按過符號鍵 { a=a*10+table[num]。或 39。,39。 break。 break。0xf0。fuhao=0。k++) write_date(err[k])。 //調(diào)整 } while(reducekey==0)。 //等待鍵松開 } if (reducekey==0) //減調(diào)整 { delay(20)。 //按鍵消抖 if(pluskey==0amp。 write_(0x80+0x40)。 //按鍵消抖 if(surekey==0amp。 if(next3) {next= 0。 //進(jìn)入調(diào)時 SetTime(next)。 } void Key(void) //設(shè)置時間函數(shù) { if (setkey==0) // 設(shè)置時間 { delay(20)。 write_ds1302(0x8e,0x00)。 if(pluskey==0) //PlusKey 加 item++。 max=23。 max=59。 max=59。 unsigned char max,mini。 } void UpDate(void) //顯示時間函數(shù) 南京工業(yè)大學(xué)本科生畢業(yè)設(shè)計(jì) (論文) 33 { display_hour()。 } void display_name(void) //顯示笑臉 { write_(0x80+0x4a)。 } void display_sec(void) //顯示秒 { sec=read_ds1302(0x81)。 LCDTestWord(1,0x3a)。 LCDTestWord(1,(hour/16)+0x30)。 // fuhao 表示按下的是哪個符號 } void LCDTestWord(bit i,unsigned char word) { if(i==0) 附錄 32 {write_(word)。 //第一個參與運(yùn)算的數(shù) b=0。 delay(1)。 //設(shè)置數(shù)據(jù)地址指針 delay1(4)。 //開顯示,光標(biāo)關(guān),不閃爍 delay1(10)。 //設(shè)定 DDRAM 地址, 5*7 點(diǎn)陣, 8 位數(shù)據(jù)接口 delay1(4)。 check()。 } void write_date(uchar date) //LCD 寫數(shù)據(jù)函數(shù) { P0=date。 rw=0。 //等待,液晶顯示器處理數(shù)據(jù) lcden=1。 rs=0。 write_ds1302(0x80,0x00)。 write_ds1302(0x84,0x12)。 ds1302_clk=1。 ds1302_rst=1。 } return temp0。i) { if(ds1302_io) temp0=temp0|0x80。 ds1302_rst=0。 ds1302_rst=1。 ds1302_clk=1。i0。j0。 } void delay2(uint t) //遲延函數(shù) 50ms { uchar j。t0。y110。 void delay(uchar z) //延遲函數(shù) 1ms { uchar y。 uchar flag,fuhao。 unsigned temp0,temp1,hour,min,sec,next。 sbit ds1302_clk=P2^0。 sbit setkey=P3^4。 //定義引腳 sbit rs=P2^4。 雖然我完成了計(jì)算器的設(shè)計(jì),但我覺得在設(shè)計(jì)過程中還是存在許多不足的,只能算是初步的完成了當(dāng)初的想發(fā)。 本來我是想增加鍵盤按鍵來實(shí)現(xiàn)除四則基本運(yùn)算以外的運(yùn)算功能的,但在實(shí)踐中我發(fā)現(xiàn)并不是我想的那么簡單,在編寫程序的時候 我遇到了困難,使得我的想法只能被打斷,所以我又想到了在運(yùn)算以外的其他部分添加功能,由于以前有電子時鐘方面的實(shí)驗(yàn)經(jīng)歷,所以我決定把它作為附加功能。如何才能把課堂上學(xué)到的東西和實(shí)際應(yīng)用中的相結(jié)合?如何能讓自己的水平有更多的提高?如何讓自己的計(jì)劃變得更有序性,而不會忙無一用?這都是需要我考慮和努力的地方。 計(jì)算器實(shí)物如圖 52 所示。 第五章 計(jì)算器系統(tǒng)的組裝與調(diào)試 22 圖 51 Protues 仿真圖 在成功的進(jìn)行軟件仿真后,下一步要做的就是焊接硬件實(shí)物了,焊在焊接前一定要認(rèn)真閱讀焊接注意事項(xiàng),并在萬能電路板上對各元件的放置進(jìn)行合理布局,此時不僅要考慮正面整體的美觀,還要考慮背 面布線的方便性,盡可能減少布線的復(fù)雜度。 ( 5)仿真的結(jié)果有時正確有時是亂碼,例如: 6+15=21 正確,但若是運(yùn)算2148787845+26,結(jié)果就是亂碼。 第四章 計(jì)算器的軟件系統(tǒng)設(shè)計(jì) 20 N N Y Y 圖 45 DS1302時鐘程序流程圖 開始 相關(guān)變量初始化 DS1302 去保護(hù) 復(fù)位端產(chǎn)生一個高電平 寫 1302地址 延時 向該地址寫數(shù)據(jù) 地址增加 數(shù)據(jù)是否寫完 復(fù)位端產(chǎn)生一個高電平 寫 1302 地址 延時 將該地址數(shù)據(jù)讀出 地址增加 數(shù)據(jù)是否讀完 顯示數(shù)據(jù) 南京工業(yè)大學(xué)本科生畢業(yè)設(shè)計(jì) (論文) 21 第五章 計(jì)算器系統(tǒng)的組裝與調(diào)試 在本次設(shè)計(jì)中, C程序是在 Keil 軟件中編寫并編譯的, 在程序編寫中主要出現(xiàn)了以下問題: ( 1)在進(jìn)行編程的時候,因?yàn)槌绦蜻^長過復(fù)雜,容易出現(xiàn)少了或多了一個“ }”的現(xiàn)象。 //寫小時, 11 時 write_ds1302(0x82,0x30)。還有 秒寄存器的位 7 位定義為時鐘暫停標(biāo)志( CH)位置為 1 時,時鐘振蕩器停止, DS1302 時鐘芯片處于低功耗狀態(tài);為 0 時,時鐘開始運(yùn)行。 開顯示 液晶初始化 判斷是否顯示字符 送地址 送數(shù)據(jù) 相應(yīng)功能的設(shè)置 判斷是否顯示完 返回 南京工業(yè)大學(xué)本科生畢業(yè)設(shè)計(jì) (論文) 19 DS1302 實(shí)時時鐘模塊程序的設(shè)計(jì) 從前面已經(jīng)了解到了時鐘芯片的功能很強(qiáng)大,設(shè)計(jì)這部分程序前,我必須對 DS1302有關(guān)日歷、時間的寄存器進(jìn)行深入的了解。 顯示程序的流程圖如圖 44 所示。 設(shè) d=+2147485647, e=2147485648,判斷溢出的方法是: ( 1)加法:當(dāng) 0xd 時,若 ydy,則溢出; ( 2)減法:當(dāng) ex0 時,若 yxe,則溢出; ( 3)乘法:當(dāng) 0xd 時,若 yd/x,則溢出; 當(dāng) ex0 時,若 ye/x,則溢出; 這次需要當(dāng)心的地方就是在設(shè)計(jì)過程中除法運(yùn)算時為了保留四位小數(shù)需對 z 轉(zhuǎn)化為float 型并進(jìn)行 10000 的操作,可以想象當(dāng) z + 時, z擴(kuò)大一萬倍就不再屬于長整型的范圍了,這就產(chǎn)生了溢出錯誤。輸入閉合鍵的鍵值后,程序自動實(shí)現(xiàn)該鍵已經(jīng)設(shè)定的功能。 N Y N Y N Y 圖 42 鍵盤掃描模塊程序流程圖 (3)判斷按鍵是否釋放。它的方法為:行輸出口輸出全為 0,讀列輸入口信息,如果列輸入值全為 1,沒有鍵按下;如果不是為全 1,有鍵按下,對應(yīng)的計(jì)算鍵值。 本設(shè)計(jì)的主要目的是實(shí)現(xiàn)計(jì)算功能,而不是電子表,僅在計(jì)算器功能的基礎(chǔ)上,成功完成附加功能的電子表格,所以時間的優(yōu)先級的設(shè)計(jì),該系統(tǒng)應(yīng)被引導(dǎo)到一種計(jì)算模式,而不是電子表格模式,設(shè)計(jì)完成后我可以根據(jù)需要在兩者之間切換,主模塊的程序流程圖如圖 41所示。 if(exit==1) {display(key)。 void data3dis(void)。 void prodis(void)。 uchar exit=0,yes=0,kind=0,fu=0,pfu=0,position1=0,position2=0。 主函數(shù)設(shè)計(jì): /******************函數(shù)聲明 ***********
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1