版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)理與信息工程學(xué)院單片機(jī)原理及應(yīng)用期末課程設(shè)計計算器模擬系統(tǒng) 數(shù)理與信息工程學(xué)院單片機(jī)原理及應(yīng)用期末課程設(shè)計 題 目: 計算器模擬系統(tǒng) 專 業(yè): 計算機(jī)科學(xué)與技術(shù)(專升本) 班 級: 07計專升本 姓 名: 學(xué) 號: 指導(dǎo)老師: 成 績: ( 2008.6 )目 錄 第一節(jié) 引 言21.1 at89c51單片機(jī)介紹21.2 led數(shù)碼管顯示器概述51.3 輸入設(shè)備鍵盤的簡述6第二節(jié) 系統(tǒng)總體方案及硬件設(shè)計72.1 設(shè)計要求72.2 設(shè)計方案72.3 硬件系統(tǒng)設(shè)計72.3.1時鐘電路設(shè)計72.3.2復(fù)位電路82.3.3顯示驅(qū)動電路82.3.4蜂鳴器提示9第三節(jié) 軟件設(shè)計103.1鍵盤的掃描103
2、.2按鍵的處理113.3 動態(tài)數(shù)碼顯示12第四節(jié) proteus軟件仿真134.1 proteus isis簡介134.2 proteus工作過程134.2.1加法演示結(jié)果144.2.2減法演示結(jié)果144.2.3乘法演示結(jié)果154.2.4除法演示結(jié)果16結(jié) 束 語27參考文獻(xiàn)28計算器模擬系統(tǒng)數(shù)理與信息工程學(xué)院 07計算機(jī)專升本 指導(dǎo)教師: 第一節(jié) 引 言 本設(shè)計是一個計算器模擬系統(tǒng),可以實(shí)現(xiàn)加減乘除的運(yùn)算以及對計算器的數(shù)字信息的輸入和運(yùn)算結(jié)果并且顯示在相應(yīng)的led上,輸入完畢要求有聲音提示。對于計算器模擬系統(tǒng)的實(shí)現(xiàn),很多種語言都可以實(shí)現(xiàn),但c語言是我們學(xué)到的一種高級語言程序,用它來實(shí)現(xiàn)程序較
3、為簡單,易于實(shí)現(xiàn)。又由于要求模擬的計算器顯示8位數(shù)字,所以采用八位led動態(tài)顯示,為了簡化線路采用以軟件為主的接口方法,即不使用專門的硬件譯碼器,而采用軟件程序進(jìn)行譯碼。輸出采用動態(tài)掃描的方式,每次中斷時間一到,選通所要顯示那一個的l ed ,并對其送相應(yīng)的二進(jìn)制代碼,使其顯示一位字符。中斷時間很短,人眼分辨不出,所以可以實(shí)現(xiàn)數(shù)字一起顯示出來由于輸入采用4x4矩陣式鍵盤,所以本設(shè)計避免了i/o口擴(kuò)展使程序簡化。對于鍵盤為了消除抖動,需要進(jìn)行延遲,再判斷,確實(shí)有鍵按下后,可以根據(jù)該行不同的值用選擇分支語句進(jìn)行相應(yīng)的操作。 八個引腳用來掃描鍵盤的輸入,八個引腳用來驅(qū)動八位led顯示,八個引腳用作八
4、位led的位選信號。當(dāng)顯示器輸出大于八位時,可以在剩下的i/o口中任意選一個用來使一揚(yáng)聲器發(fā)出聲音表示輸出超出預(yù)定的范圍。本設(shè)計實(shí)現(xiàn)功能:(1)計算器最多只能顯示8位數(shù)字,開機(jī)運(yùn)行時,只有數(shù)碼管最低位顯示為“0”,其余位全部不顯示;(2)具有44鍵盤,分別表示09、/ 、和清零鍵cl,輸入的數(shù)字從設(shè)計的鍵盤輸入;(3)第一次按下時,顯示“d1”;第二次按下時,顯示“d1d2”;第三次按下時,顯示“d1d2d3”,8個全顯示完畢,再按下按鍵下時,發(fā)出“嘀”提示音;(4)可以對計算結(jié)果小于256的兩個無符號數(shù)進(jìn)行加、減、乘、除運(yùn)算,并顯示計算結(jié)果。(5)結(jié)果溢出時發(fā)出“嘀”報警聲。1.1 at89
5、c51單片機(jī)介紹at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機(jī)。at89c2051是一種帶2k字節(jié)閃爍可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器,at89c2051是它的一種精簡版本。at89c單片
6、機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。圖1-1 at89c51結(jié)構(gòu)圖管腳說明:vcc:供電電壓。gnd:接地。p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時,p0輸出原碼,此時p0外部必須被拉高。p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這
7、是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時,p1口作為第八位地址接收。p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當(dāng)p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時接收高八位地址信號和控制信號。p3口:p3口管腳是8個帶內(nèi)部上拉
8、電阻的雙向i/o口,可接收輸出4個ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下表所示:口管腳 備選功能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時器0外部輸入)p3.5 t1(記時器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲器讀選通)p3口同時為閃爍編程和編程校驗(yàn)接收一些控制信號。 rst:復(fù)位輸入
9、。當(dāng)振蕩器復(fù)位器件時,要保持rst腳兩個機(jī)器周期的高電平時間。ale/prog:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。/psen:外部程序存儲器的選通信號。在
10、由外部程序存儲器取指期間,每個機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。/ea/vpp:當(dāng)/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。振蕩器特性:xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩
11、均可采用。如采用外部時鐘源驅(qū)動器件,xtal2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。芯片擦除:整個perom陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ale管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,at89c51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,cpu停止工作。但ram,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存ram的內(nèi)容并且凍結(jié)振蕩器
12、,禁止所用其他芯片功能,直到下一個硬件復(fù)位為止。1.2 led數(shù)碼管顯示器概述led,發(fā)光二極管,是一種固態(tài)的半導(dǎo)體器件,它可以直接把電轉(zhuǎn)化為光。led的心臟是一個半導(dǎo)體的晶片,晶片的一端附在一個支架上,一端是負(fù)極,另一端連接電源的正極,使整個晶片被環(huán)氧樹脂封裝起來。半導(dǎo)體晶片由兩部分組成,一部分是p型半導(dǎo)體,在它里面空穴占主導(dǎo)地位,另一端是n型半導(dǎo)體,在這邊主要是電子。但這兩種半導(dǎo)體連接起來的時候,它們之間就形成一個“p-n結(jié)”。當(dāng)電流通過導(dǎo)線作用于這個晶片的時候,電子就會被推向p區(qū),在p區(qū)里電子跟空穴復(fù)合,然后就會以光子的形式發(fā)出能量,這就是led發(fā)光的原理。而光的波長也就是光的顏色,是由
13、形成p-n結(jié)的材料決定的。led的內(nèi)在特征決定了它是最理想的光源去代替?zhèn)鹘y(tǒng)的光源,它有著廣泛的用途。七段led有7個發(fā)光二極管按”日”字形排列,所有二極管的陽極或陰極連在一起。當(dāng)某個發(fā)光二極管的陰極接低電平或陽極接高電平是時,對應(yīng)二極管點(diǎn)亮,根據(jù)不同的組合。形成不同的字符0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f。 led具有靜態(tài)和動態(tài)顯示之分,動態(tài)是一個字位一個字位各只led輪流點(diǎn)亮,每個字位停留小于人的視覺,好像led是點(diǎn)亮的。lcd顯示器有分段式和點(diǎn)陣式兩種結(jié)構(gòu)。lcd是一種被動顯示器,由于它的功耗極低,抗干擾能力強(qiáng),因而在低功耗的單片機(jī)系統(tǒng)中大量使用。1.3 輸入設(shè)
14、備鍵盤的簡述鍵盤是有若干案件組成的開關(guān)矩陣,他能實(shí)現(xiàn)簡單的人機(jī)對話。而與計算機(jī)系統(tǒng)的鍵盤有兩類:一類是編碼鍵盤,即鍵盤上比合建的識別由專門硬件來實(shí)現(xiàn);另一類是非編碼鍵盤,即鍵盤輸入及閉合鍵的識別由軟件來完成。圖1-2 輸入設(shè)備鍵盤圖第二節(jié) 系統(tǒng)總體方案及硬件設(shè)計2.1 設(shè)計要求設(shè)計具體要求:(1)要求模擬的計算器至少顯示8位數(shù)字,開機(jī)運(yùn)行時,只有數(shù)碼管最低位顯示為“0”,其余位全部不顯示;(2)設(shè)計44鍵盤,分別表示09、/ 、和清零鍵cl,輸入的數(shù)字從設(shè)計的鍵盤輸入;(3)第一次按下時,顯示“d1”;第二次按下時,顯示“d1d2”;第三次按下時,顯示“d1d2d3”,8個全顯示完畢,再按下按
15、鍵下時,給出“嘀”提示音;(4)可以對計算結(jié)果小于256的兩個無符號數(shù)進(jìn)行加法運(yùn)算,并顯示計算結(jié)果。對于、/、和的運(yùn)算為提高部分;(5)編寫程序,用proteus軟件進(jìn)行仿真。報告中給出操作過程及運(yùn)行效果圖。2.2 設(shè)計方案(1)i/o口擴(kuò)展問題本次設(shè)計要用到8個口作為輸出顯示led的位選通信號,8個口用作led的驅(qū)動而對于16個輸入鍵,可以用矩陣式4x4鍵盤僅用8個口來實(shí)現(xiàn),這樣可以節(jié)省i/o口,不過需要對各個鍵盤進(jìn)行動態(tài)掃描。另外,還需要一個口作為輸入大于8位時的報警信號。這樣,還會剩余一些個i/o口。小于at89c51的32個口,因此不需要進(jìn)行i/o口的擴(kuò)展。(2)語言的選擇根據(jù)設(shè)計要求
16、需完成加減乘除的算術(shù)運(yùn)算,若使用匯編語言來編程,語句可能會較多而且比較復(fù)雜,編起來會不大方便。而采用現(xiàn)在比較流行的c語言來編寫會比較方便。2.3 硬件系統(tǒng)設(shè)計2.3.1時鐘電路設(shè)計本設(shè)計采用內(nèi)部時鐘產(chǎn)生方式。內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定。在xtal1和xtal2兩端跨接晶體或陶瓷諧振器,與內(nèi)部反相器構(gòu)成穩(wěn)定的自激振蕩器。晶振選用的是12mhz的內(nèi)部振蕩方式,電路如圖:電容器c1,c2起穩(wěn)定振蕩頻率,快速起振的作用,電容值取33p。 圖2-1 內(nèi)部振蕩結(jié)構(gòu)圖2.3.2復(fù)位電路采用上電+按鍵復(fù)位電路如下,上電后,由于電容充電,使rst持續(xù)一段高電平時間。當(dāng)單片機(jī)已在運(yùn)行之中時,按下復(fù)位鍵也能
17、使用使rst持續(xù)一段時間的高電平,從而實(shí)現(xiàn)上電加開關(guān)復(fù)位的操作。c3選擇30uf,r2選擇10k。這不僅能使單片機(jī)復(fù)位,而且還能使單片機(jī)的外圍芯片也同時復(fù)位。圖2-2 復(fù)位電路圖2.3.3顯示驅(qū)動電路數(shù)碼管發(fā)光需要一定的電流,但單片機(jī)本身不可能提供足夠的電流,即拉電流和灌電流不能滿足要求,所以想要數(shù)碼管正常發(fā)光,就要加適當(dāng)?shù)尿?qū)動電路。首先考慮數(shù)碼管的段碼輸出端,單片機(jī)的p0口可帶8個ttl負(fù)載,而其他的i/o口只能帶4個ttl負(fù)載,所以采用p0口作數(shù)碼管的段碼輸出端,但p0口是集電極開路輸出,要想輸出拉電流,必須加上拉電阻,提高驅(qū)動能力,電路如圖所示。圖2-3 顯示驅(qū)動電路圖2.3.4蜂鳴器提
18、示在89s52的p3.6連一個蜂鳴器,在輸入8位數(shù)后,再輸入數(shù)時,從p3.6腳輸入一低電平,并延時一定時間,蜂鳴器發(fā)出一“嘀”的聲音,提醒使用者輸入也達(dá)8位數(shù)。為限制電流,在電路中加一限流電阻。圖2-4 蜂鳴器電路圖第三節(jié) 軟件設(shè)計3.1鍵盤的掃描所有列鍵盤送高電平逐行送底電平進(jìn)行掃描是達(dá)姆否達(dá)姆進(jìn)行按鍵處理否達(dá)姆是達(dá)姆某列值為低電平該列值仍為低電平開始延時 圖3-1 鍵盤掃描流程圖對鍵盤的識別可以對鍵盤所有列送高電平1,然后逐行送低電平,并判斷列的值是否全為高電平,若不是說明該行有鍵按下,為了消除抖動,需要進(jìn)行一延遲環(huán)節(jié),再判斷,確實(shí)有鍵按下后,可以根據(jù)該行不同的值用選擇分支語句進(jìn)行相應(yīng)的操
19、作。3.2按鍵的處理數(shù)值處理存儲并等待第二個操作數(shù)否否顯示并存儲數(shù)據(jù)運(yùn)算并顯示清零清零鍵 為零第一個按鍵操作數(shù)有有效鍵按下等于鍵清零是是是是否否否圖3-2 鍵盤處理流程圖當(dāng)有有效鍵按下后,需要對它進(jìn)行一系列判斷和處理。3.3 動態(tài)數(shù)碼顯示數(shù)碼管采取的動態(tài)掃描,每一位數(shù)碼管被點(diǎn)亮一小段時間,并且每只有一個被點(diǎn)亮次,就又熄滅,但當(dāng)掃描頻率大于一定時,人眼就不能分辨出閃爍的現(xiàn)象,看起來就像一直被點(diǎn)亮,若掃描頻率太低,就會出現(xiàn)閃爍現(xiàn)象。第四節(jié) proteus軟件仿真4.1 proteus isis簡介proteus的isis是一款labcenter出品的電路分析實(shí)物仿真系統(tǒng),可仿真各種電路和ic,并支
20、持單片機(jī),元件庫齊全,使用方便,是不可多得的專業(yè)的單片機(jī)軟件仿真系統(tǒng)。該軟件的特點(diǎn): 全部滿足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、rs一232動態(tài)仿真、1 c調(diào)試器、spi調(diào)試器、鍵盤和lcd系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。 目前支持的單片機(jī)類型有:68000系列、8051系列、avr系列、pic12系列、pic16系列、pic18系列、z80系列、hc11系列以及各種外圍芯片。 支持大量的存儲器和外圍芯片??傊撥浖且豢罴瘑纹瑱C(jī)和spice分析于一身的仿真軟
21、件,功能極其強(qiáng)大 ,可仿真51、avr、pic。4.2 proteus工作過程單擊屏幕左下方的“開始”“程序”“proteus 7 professional” “isis 7 professional”,出現(xiàn)如圖所示屏幕,表明進(jìn)入proteus isis集成環(huán)境。圖4-1 proteus界面圖4.2.1加法演示結(jié)果在鍵盤上依次按下如圖所示:圖4-2-1 按111led顯示圖按下“+”號鍵后屏幕顯示如圖所示:圖4-2-2 按“+”號led顯示圖在鍵盤上依次按下111 led顯示如圖所示:圖4-2-3 按111led顯示圖按下“=”號鍵后屏幕顯示正確結(jié)果222如圖所示:圖4-2-4 按“=”號11
22、1led顯示圖4.2.2減法演示結(jié)果在鍵盤上依次按下87led顯示如圖所示:圖4-2-5 按下87led顯示圖按下“-”號鍵后屏幕顯示如圖所示:圖4-2-6 按“-”號led顯示圖在鍵盤上依次按下32 led顯示如圖所示:圖4-2-7 按下32led顯示圖按下“=”號鍵后屏幕顯示正確結(jié)果55如圖所示:圖4-2-8 按“=”號led顯示圖4.2.3乘法演示結(jié)果在鍵盤上依次按下35led顯示如圖所示:圖4-2-9 按下35led顯示圖按下“”號鍵后屏幕顯示如圖所示:圖4-2-10 按 “x”號led顯示圖在鍵盤上依次按下12led顯示如圖所示:圖4-2-11 按下12led顯示圖按下“=”號鍵后屏
23、幕顯示正確結(jié)果420如圖所示:圖4-2-12 按“=”號led顯示圖4.2.4除法演示結(jié)果在鍵盤上依次按下62led顯示如圖所示:圖4-2-13 按下62led顯示圖按下“”號鍵后屏幕顯示如圖所示:圖4-2-14 按“”號led顯示圖在鍵盤上依次按下2led顯示如圖所示:圖4-2-15 按下2led顯示圖按下“=”號鍵后屏幕顯示正確結(jié)果31如圖所示:圖4-2-16 按“=”號led顯示圖系統(tǒng)具體代碼如下:#include#includesbit p1_0=p10;sbit p3_5=p35;sbit p3_6=p36;sbit p3_7=p37;sbit p3_4=p34;unsigned i
24、nt num0,result;unsigned int number,num1;unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00;unsigned char code dispbitcode=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char dispbuf8=0,16,16,16,16,16,16,16;unsigned char disp8=0,16,16,16
25、,16,16,16,16;unsigned char dispbitcount;unsigned char temp;unsigned char i,j;unsigned char key;unsigned char keypres;unsigned char yunsuanfu; /*運(yùn)算標(biāo)志符*/bit alarmflag; /*溢出報警標(biāo)識符*/bit eq; void rresult() /*拆分result并送入顯示數(shù)組*/ i=0;number=result; if(number0) alarmflag=1; else for(i=0;i0) for(i=0;icount-1;i+
26、) *(p+count-1)=(*(p+count-1)*10; num0+=*(p+count-1); count-; return(num0);/*/void reset(void) for(i=0;i0) *(p+count)=*(p+count-1); count-; dispbuf0=key; /*中斷動態(tài)顯示led*/void t0(void) interrupt 1 th0=(65536-4000) / 256; tl0=(65536-4000) % 256; p2=dispbitcodedispbitcount; p0=dispcodedispbufdispbitcount;
27、dispbitcount+; if (dispbitcount=8) dispbitcount=0; if (alarmflag=1) for(i=0;i50;i+) p1_0=p1_0; for(j=0;j0;i-) for(j=100;j0;j-); temp=p3; temp=temp & 0x0f; if (temp!=0x0f) temp=p3; temp=temp & 0x0f; switch(temp) case 0x0e: key=7; break; case 0x0d: key=8; break; case 0x0b: key=9; break; case 0x07: key
28、=10; break; /*加法*/ if (key=10) yunsuanfu=1; result=num1process(dispbuf,keypres); reset(); if (key=7&key10) keypres+; if(keypres=1) dispbuf0=key; else if(keypres8) alarmflag=1; temp=p3; temp=temp & 0x0f; while(temp!=0x0f) temp=p3; temp=temp & 0x0f; p3=0xff; /*掃描2*/ p3_5=0; temp=p3; temp=temp & 0x0f;
29、if (temp!=0x0f) for(i=50;i0;i-) for(j=100;j0;j-); temp=p3; temp=temp & 0x0f; if (temp!=0x0f) temp=p3; temp=temp & 0x0f; switch(temp) case 0x0e: key=4; break; case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x07: key=11; break; if(key=11) /*減法*/ yunsuanfu=2; result=num1process(dispbuf,keypres)
30、; reset(); if (key=4) & (key7) keypres+; if(keypres=1) dispbuf0=key; else if(keypres8) alarmflag=1; temp=p3; temp=temp & 0x0f; while(temp!=0x0f) temp=p3; temp=temp & 0x0f; p3=0xff; /*掃描3*/ p3_6=0; temp=p3; temp=temp & 0x0f; if (temp!=0x0f) for(i=50;i0;i-) for(j=100;j0;j-); temp=p3; temp=temp & 0x0f;
31、 if (temp!=0x0f) temp=p3; temp=temp & 0x0f; switch(temp) case 0x0e: key=1;break; case 0x0d: key=2; break; case 0x0b: key=3; break; case 0x07: key=12;break; /*乘法*/ if(key=12)yunsuanfu=3; result=num1process(dispbuf,keypres); reset(); if (key=1) & (key4) keypres+; if(keypres=1) dispbuf0=key; else if(ke
32、ypres=9) alarmflag=1; temp=p3; temp=temp & 0x0f; while(temp!=0x0f) temp=p3; temp=temp & 0x0f; p3=0xff; /*掃描4*/ p3_7=0; temp=p3; temp=temp & 0x0f; if (temp!=0x0f) for(i=50;i0;i-) for(j=100;j0;j-); temp=p3; temp=temp & 0x0f; if (temp!=0x0f) temp=p3; temp=temp & 0x0f; switch(temp) case 0x0e: key=0; bre
33、ak; case 0x0d: key=13; break; case 0x0b: key=14; break; case 0x07: key=15; break; if(key=15) /*除法*/ yunsuanfu=4; result=num1process(dispbuf,keypres); reset(); if(key=14) reset(); eq=0;if(key=13) if(eq!=1) num1=num1process(dispbuf,keypres); reset(); calcul(); rresult(); if(key=0&keypres!=0) keypres+;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度餐飲業(yè)SaaS運(yùn)營管理軟件銷售合同3篇
- 2024版物流倉儲中心租賃及運(yùn)營管理合同
- 2025年度銷售合同違約責(zé)任補(bǔ)充協(xié)議
- 年度回轉(zhuǎn)窯式垃圾焚燒爐市場分析及競爭策略分析報告
- 二零二五版城市更新項(xiàng)目借款合同規(guī)范2篇
- 2024-2025學(xué)年高中歷史專題七近代以來科學(xué)技術(shù)的輝煌7.2追尋生命的起源同步課時作業(yè)含解析人民版必修3
- 二零二四年倉儲物流園建設(shè)項(xiàng)目融資合同
- 二零二五年度酒店客房安全監(jiān)控服務(wù)合同3篇
- 2025年度林業(yè)生態(tài)補(bǔ)償項(xiàng)目評估合同4篇
- 2025版茅臺酒經(jīng)銷商培訓(xùn)及銷售技能提升合同3篇
- GB/T 7588.2-2020電梯制造與安裝安全規(guī)范第2部分:電梯部件的設(shè)計原則、計算和檢驗(yàn)
- GB/T 14600-2009電子工業(yè)用氣體氧化亞氮
- 小學(xué)道德與法治學(xué)科高級(一級)教師職稱考試試題(有答案)
- 申請使用物業(yè)專項(xiàng)維修資金征求業(yè)主意見表
- 河北省承德市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 實(shí)用性閱讀與交流任務(wù)群設(shè)計思路與教學(xué)建議
- 應(yīng)急柜檢查表
- 通風(fēng)設(shè)施標(biāo)準(zhǔn)
- 酒店市場營銷教案
- 房屋買賣合同簡單范本 房屋買賣合同簡易范本
- 環(huán)保有限公司營銷策劃方案
評論
0/150
提交評論