#include #include #include "lcd1602_8.h" uint temp,num;//鍵盤掃描數(shù)值 uchar keynum1=0,keynum2=0,sign=0,i=0,j=0; //按鍵計(jì)數(shù),符號標(biāo)示 uchar num1[8]={0},num2[8]={0}; //按鍵存儲(chǔ)數(shù)組 float ans1=0,ans2=0,ans=0,point=0; //運(yùn)算數(shù)據(jù) bit conflag=0; //繼續(xù)運(yùn)算標(biāo)志位 bit newcalc=0; //新運(yùn)算標(biāo)志 bit ac=0; //清零標(biāo)志,1為清零 bit beepflag=0; //蜂鳴器標(biāo)志位 bit sqrtflag1=0; //開方1標(biāo)志位 bit sqrtflag2=0; //開方2標(biāo)志位 bit powflag=0; sbit keybeep=P3^3;//蜂鳴器開關(guān)按鍵 sbit beep=P2^3; //蜂鳴器控制口 sbit keysqrt=P3^4;//開方按鍵 sbit keypow=P3^5;//任意次方按鍵 uchar keyscan(); void maininit(void); /****主程序***/ void main(void) { maininit();//初始化 while(1) //整個(gè)系統(tǒng)大循環(huán),讓計(jì)算器一直處于工作狀態(tài) { while(1) //第一運(yùn)算數(shù)掃描 { if(ac==1) break; //若清零,則退出輸入 if((keyscan()!='N')&&((num>=0&&num<=9)||num=='.')) //記錄按下的數(shù)字 { if(newcalc==1) //新一次運(yùn)算開始 { lcdwrite_com(0x01);//清屏 newcalc=0; lcd_setxy(0,0); } if(keynum1<=7) //限制輸入位數(shù) { if(num=='.') { lcdwrite_data('.'); //顯示小數(shù)點(diǎn) } else lcdwrite_num1(num); num1[keynum1]=num; keynum1++; } } else if(num=='+'||num=='-'||num=='*'||num=='/'||num=='='||num=='^'||keysqrt==0) { if(keynum1==0&&num1[0]==0) //若直接輸入運(yùn)算符而沒有輸入數(shù)字則執(zhí)行連續(xù)運(yùn)算 { here: ans1=ans; sign=num; lcdwrite_com(0x01); delayms(5); lcd_setxy(0,0); lcdwrite_float(ans1); if(sqrtflag2!=1&&num!='N') lcdwrite_data(num); break; } for(i=0;keynum1>0;i++) //計(jì)算按下的數(shù)字的大小 { if(num1[i]!='.') ans1=ans1*10+num1[i]; else if(num1[i]=='.') break; keynum1--; } for(keynum1--,i++,j=0;keynum1>0;j++,i++,keynum1--) point=point*10+num1[i]; for(;j>0;j--) point*=0.1; ans1=ans1+point; sqrtflag1=0; //清除開方標(biāo)志 sqrtflag2=0;//清除開方標(biāo)志 if(keysqrt==0) //計(jì)算開方 { delayms(5); if(keysqrt==0) { if(beepflag==1) //若開聲音則每一次按鍵均鳴叫 {
上一篇:單片機(jī)課程設(shè)計(jì)報(bào)告—溫度報(bào)警器
下一篇:基于51的IIC通訊原理及協(xié)議詳解(I2C)
推薦閱讀最新更新時(shí)間:2025-04-24 23:02


設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 英飛凌微控制器:以全新實(shí)惠套件和強(qiáng)大開發(fā)環(huán)境為開發(fā)者提供支持
- iTOP-i.MX6開發(fā)板設(shè)備數(shù)驅(qū)動(dòng)Menuconfig的用法
- 迅為IMX6ULL開發(fā)板Qt for Android搭建開發(fā)環(huán)境
- 迅為i.MX8M mini開發(fā)板Windots QT系統(tǒng)開發(fā)環(huán)境搭建
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開發(fā)板Linix系統(tǒng)修改默認(rèn)屏幕
- iTOP-4412開發(fā)板支持4G以上文件系統(tǒng)擴(kuò)展
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)設(shè)置開機(jī)自啟動(dòng)
- 迅為IMX6Q開發(fā)板 Buildroot文件系統(tǒng)mqtt測試
- LTC3615EFE 單路低紋波 6A 輸出同步降壓型 DC/DC 轉(zhuǎn)換器的典型應(yīng)用
- 使用 MaxLinear, Inc 的 XRT3588 的參考設(shè)計(jì)
- ADZS-CM403F-EZBRD、基于混合信號控制處理器 (DSP) 的 ADSP-CM40x EZ-Board 評估系統(tǒng)
- S8VK-C48024 20A/24V AC/DC電源典型應(yīng)用電路
- 使用 ON Semiconductor 的 RC5050 的參考設(shè)計(jì)
- 使用 Semtech 的 SC1531 的參考設(shè)計(jì)
- ST-LINK V2-1
- YuzukiXR806
- AN027 將 BGA420 Si MMIC 放大器用于 900 至 2500MHz 的各種 UHF 應(yīng)用
- LTC4089 的典型應(yīng)用電路原理圖,全功能鋰離子電池充電器
- STM32 ADC自我學(xué)習(xí)總結(jié)
- 集創(chuàng)北方亮相中關(guān)村論壇展覽暨第24屆科博會(huì)
- 小米助力OLED電視市場的大爆發(fā)
- 如何進(jìn)行電源老化測試?吉時(shí)利數(shù)采DAQ6510“神助攻”
- 消除裂縫求“生存” 中微半導(dǎo)體發(fā)明基片上生長緩沖層方案
- 英特爾賽揚(yáng) G6900 雙核處理器跑分曝光:單核性能持平 i9-10900K
- 西門子 Xcelerator 的 Capital 軟件助力 Airbus
- 瑞薩電子發(fā)布首顆22納米微控制器樣片
- 在示波器觸發(fā)功能中容易忽略的設(shè)置
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動(dòng)艙駕創(chuàng)新升級
- 工業(yè)市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實(shí)現(xiàn)100%美國生產(chǎn)
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產(chǎn)品
- 強(qiáng)化中國市場戰(zhàn)略布局,德州儀器正靈活應(yīng)對全球關(guān)稅挑戰(zhàn)
- Molex莫仕通過本地合作和創(chuàng)新加強(qiáng)支持中國汽車行業(yè)
- 貿(mào)澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數(shù)字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實(shí)現(xiàn)車載充電器小型化!
- 用上車規(guī)級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術(shù)解析:聚焦高帶寬、多通道同步采集與協(xié)議分析
- 中興通訊事件現(xiàn)轉(zhuǎn)機(jī) 中美斡旋進(jìn)程加速
- RClamp產(chǎn)品平臺(tái)以保護(hù)電信及工業(yè)應(yīng)用免受浪涌及靜電放電
- 利用MEMS加速計(jì)的低功耗應(yīng)用設(shè)計(jì)
- Spectrum儀器140余款數(shù)字化儀在CERN投入使用
- Sub-6GHz到毫米波&從原型驗(yàn)證到量產(chǎn)測試,NI雙維度全面布局
- 臺(tái)積電劉德音:3nm制程進(jìn)度甚至超過預(yù)期
- 2021年泉州市重點(diǎn)項(xiàng)目名單出爐:晉江晉華等入選
- 促進(jìn)半導(dǎo)體產(chǎn)業(yè)發(fā)展!韓國政府?dāng)M啟動(dòng)知識產(chǎn)權(quán)支持計(jì)劃
- 2021河北重點(diǎn)建設(shè)項(xiàng)目名單出爐:海康威視等項(xiàng)目入列
- 德州三星晶圓廠斷電停工 研調(diào):影響全球12英寸總產(chǎn)能的1~2%
- 方便的食物垃圾處理系統(tǒng)IDEA78.com分享
- GD32E230C測試之三:這種情況是不是MCU的運(yùn)行內(nèi)存不夠了?
- Skills Challenges in RFID Implemen
- CE中有沒有像GetKeyNameText一樣的函數(shù)
- msp432 進(jìn)不去uart接收中斷
- Vxworks中的open,read,write是對哪里的文件進(jìn)行的?
- 招聘EE leader
- MSP430學(xué)習(xí)筆記7-4*4鍵盤的對應(yīng)數(shù)碼管顯示
- 能改進(jìn)動(dòng)圈表頭對小電流測量的MOSFET
- 串口取電經(jīng)典電路兩例