基于51單片機(jī)的計算器課程設(shè)計實驗報告_第1頁
基于51單片機(jī)的計算器課程設(shè)計實驗報告_第2頁
基于51單片機(jī)的計算器課程設(shè)計實驗報告_第3頁
基于51單片機(jī)的計算器課程設(shè)計實驗報告_第4頁
基于51單片機(jī)的計算器課程設(shè)計實驗報告_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、數(shù)控?zé)o線發(fā)射與接收 1.實用 單片機(jī)實現(xiàn)簡單的計算器功能2.實頁腳內(nèi)容數(shù)控?zé)o線發(fā)射與接收3.實#include#include#include#include#includeunsigned table116; /1602 第一行顯示字符unsigned table216; /1602 第二行顯示字符 unsigned code table_error error;/* 鍵掃描函數(shù) */unsigned keyscan() /描鍵盤函數(shù)unsigned key_l,key_h,addres,num;P0=0 x0f;頁腳內(nèi)容數(shù)控?zé)o線發(fā)射與接收key_l=P0;P0=0 xf0;key_h=P0

2、;addres=key_l key_h;if(addres!=0 xff)Delayms(1);if(addres!=0 xff)P0=0 x0f;key_l=P0;P0=0 xf0;key_h=P0;addres=key_l key_h;switch(addres)case 0 xee:num=1;break;case 0 xde:num=2;break;case 0 xbe:num=3;break;case 0 xed:num=4;break;case 0 xdd:num=5;break;case 0 xbd:num=6;break;case 0 xeb:num=7;break;case

3、0 xdb:num=8;break;case 0 xbb:num=9;break;case 0 xd7:num=0;break;/按 case 0 xe7:num=C;break;/鍵頁腳內(nèi)容數(shù)控?zé)o線發(fā)射與接收case 0 xb7:num=;break;/ 按鍵case 按鍵 case 按鍵 case 鍵 case 0 x77:num=+;break;/鍵 while(addres!=0 xff)P0=0 x0f;key_l=P0;P0=0 xf0;key_h=P0;addres=key_l key_h;return return 0;void clear_lcd(void) 清屏unsign

4、ed j;for(j=0;j16;j+)頁腳內(nèi)容 void main()unsigned i=0,j;unsigned key;unsigned flag_operator = 0;unsigned flag_equ 0;unsigned flag_key 0;數(shù)控?zé)o線發(fā)射與接收加減乘除標(biāo)志位等于標(biāo)志位運(yùn)算位標(biāo)志bit flag_MaxValue = 0;bit flag_minus 0;/負(fù)數(shù)long int = 0; 最終運(yùn)算結(jié)果unsigned int value_H =0; 第一個數(shù)據(jù)unsigned int value_L = 0; /第二個數(shù)據(jù)unsigned int temp=1

5、, 10, 100,1000,10000,100000,1000000,10000000,100000000;Initialize_LCD();while(1)key=keyscan();if(key 0)if(key C) 清除鍵 按下頁腳內(nèi)容數(shù)控?zé)o線發(fā)射與接收clear_lcd();i=0;flag_operator = 0; flag_equ 0; value = 0; value_H value_L 0; flag_key 0;flag_minus=0;elsefor(j=0; ji; table115-i+j table115-i+j+1;table115 = key;/table1

6、i key;i+;if(key =)for(j=0; j16; =)flag_equ = j;flag_key+;break;確定運(yùn)算符位置頁腳內(nèi)容數(shù)控?zé)o線發(fā)射與接收if( table1j + j = - = * table1j /)flag_operator = j;flag_key+;for(j=16-i; jflag_operator; 第一個數(shù)據(jù)處理/value_H = value_H ( 10 , (flag_operator-j-1) value_H value_H + (table1j-48) tempflag_operator-j-1;for(j=flag_operator+1

7、; j15; j+)第二個數(shù)據(jù)處理/value_L = value_L * pow( , (flag_equ-j-1) );value_L value_L + tempflag_equ-j-1;if(table1flag_operator +)value value_H value_L;else if(table1flag_operator -)value value_H value_L;頁腳內(nèi)容數(shù)控?zé)o線發(fā)射與接收else if(table1flag_operator *)value value_H value_L;else if(table1flag_operator /)value val

8、ue_H value_L;if(value 0)table215 = (value 48);else if(value2000000000)flag_MaxValue = /break;j=15;while(value!=0)table2j (value%10 48);value value/10;頁腳內(nèi)容數(shù)控?zé)o線發(fā)射與接收j-;if(flag_minus) 負(fù)數(shù)table2j -;if(flag_key | table10 0 flag_MaxValue=1 )ShowString(5,1,table_error);while(keyscan() != C);clear_lcd();i=0;flag_oper

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論