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


設計資源 培訓 開發板 精華推薦
- LTC3615EFE 單路低紋波 6A 輸出同步降壓型 DC/DC 轉換器的典型應用
- 使用 MaxLinear, Inc 的 XRT3588 的參考設計
- ADZS-CM403F-EZBRD、基于混合信號控制處理器 (DSP) 的 ADSP-CM40x EZ-Board 評估系統
- S8VK-C48024 20A/24V AC/DC電源典型應用電路
- 使用 ON Semiconductor 的 RC5050 的參考設計
- 使用 Semtech 的 SC1531 的參考設計
- ST-LINK V2-1
- YuzukiXR806
- AN027 將 BGA420 Si MMIC 放大器用于 900 至 2500MHz 的各種 UHF 應用
- LTC4089 的典型應用電路原理圖,全功能鋰離子電池充電器
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動艙駕創新升級
- 工業市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實現100%美國生產
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產品
- 強化中國市場戰略布局,德州儀器正靈活應對全球關稅挑戰
- Molex莫仕通過本地合作和創新加強支持中國汽車行業
- 貿澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現車載充電器小型化!
- 用上車規級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術解析:聚焦高帶寬、多通道同步采集與協議分析