娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年12月04日(星期三)

正在發生

2019年12月04日 | 基于89c52的簡易計算器設計

發布者:camuspyc 來源: 51hei關鍵字:89c52  簡易計算器  鍵盤掃描 手機看文章 掃描二維碼
隨時隨地手機看文章

 

#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) //若開聲音則每一次按鍵均鳴叫

                                                        {

[1] [2] [3] [4] [5]
關鍵字:89c52  簡易計算器  鍵盤掃描 引用地址:基于89c52的簡易計算器設計

上一篇:單片機課程設計報告—溫度報警器
下一篇:基于51的IIC通訊原理及協議詳解(I2C)

推薦閱讀

中美貿易戰雖暫時紓解,但中國已認識到,解決技術受制于人的困境最終仍是要靠自己,對“核心技術”的重視程度已在飆升。而目光也不僅鎖定高端芯片,產業鏈環節的任何進步都在嚴陣以待。而近日,武漢新芯對外宣布稱,基于其三維集成技術平臺的三片晶圓堆疊技術研發成功。它的進步體現在可將不同功能的晶圓(如邏輯、存儲和傳感器等)垂直整合,在不同晶圓金屬...
根據此前國家標準化管理委員會批準的《乘用車輪胎氣壓監測系統的性能要求和試驗方法》相關規定,自2020年1月1日起,所有在產乘用車將開始實施強制安裝TPMS(胎壓監測系統)的要求。TPMS與安全氣囊、ABS(防抱死)系統構成汽車三大安全系統,可有效預防交通事故的發生。由于汽車輪胎處于脹大或缺氣狀態都會影響汽車安全,美國、歐盟等許多國家和地區都已經...
  并聯機器人存在的痛點   1.市場規模小,占有率低。   根據GGII數據統計,以中國內地市場為例,2014年并聯機器人市場銷量約620臺,2015年銷量約970臺,2016年銷量約1100臺。2017年,銷售額約為2790臺,2018年的銷量約為3650臺。2019年并聯機器人市場5800臺。   2.高端市場份額被國際寡頭占據   并聯機器人高端市場份額被國際寡頭壟斷(AB...
半導體江湖又沸騰了。日前盛美半導體設備(上海)股份有限公司(下稱“盛美上海”)在上交所科創板上市,募資額達18億元。在時下全球半導體市場向中國大陸轉移和國產替代背景下,國際半導體設備領軍者盛美上海,儼然成引領本土企業突出重圍的一匹新黑馬。設備賽道領先玩家11月18日,盛美上海在上交所科創板上市,公司證券代碼為688082,發行價格85元/股,...

史海拾趣

問答坊 | AI 解惑

3G在中國將獲前所未見的成功【轉載】

百家爭鳴:                                3G在中國將獲前所未見的成功  關于 ...…

查看全部問答∨

IC與LCD的常見連接方式

本帖最后由 jameswangsynnex 于 2015-3-3 20:02 編輯 1.SMT:是英文“Surface mount technology”的縮寫。即表面安裝技術,這是一種較傳統的安裝方式。其優點是可靠性高,缺點是體積大,成本高,限制LCM的小型化。2.COB:是英文“Chip On Board”的 ...…

查看全部問答∨

TLC320AD535C的測試

我在作信號產生器時,覺得TLC320AD535C好像有問題,請問我該如何作硬件測試呢?不是寫program測試...謝謝.…

查看全部問答∨

ISP上位機軟件AVR_fighter

我花了一些時間用 Borland C++Builder 6 制作了一個共享軟件 AVR_fighter for USBASP 做為2008年新年禮物,供大家免費使用.歡迎大家測試使用.歡迎回貼交流! 程序中加入了大量AVR芯片,我目前只測試了Atmega8,Atmega16,Attiny13這3種芯片. 支持 ...…

查看全部問答∨

DIY濕度計設計思路

DIY濕度計設計思路 MCU的選用,重為學習可用STC12 2052/4052,帶串口便于刷新便于編程學習, 簡圖如下:圖一為帶RS232芯片的電路…

查看全部問答∨

中斷響應時間怎么會是25ms

外部中斷產生到響應中斷用了25ms,即我的IST中 WaitForSingleObject等到中斷事件用掉了25ms,有什么辦法可以減小中斷產生到響應的時間?可能是什么原因造成這個問題的呢?…

查看全部問答∨

16550做串口通信,遇到麻煩了

16550做串口通信,如何判斷FIFO是否為空? 現在老是讀到空數據。用中斷法也不大好控制。 (51單片機keil c51)…

查看全部問答∨

誰能提供一個vs2005下控制ARM2440的IO或AD的例子呀?

剛開始學WIN CE的菜鳥。想了解VS 2005下如何控制ARM2440的IO或AD。 哪位老大能給個例子,不勝感激。 只有這么多分啦。…

查看全部問答∨

led色溫的知識

replyreload += \',\' + 681770;Timson,如果您要查看本帖隱藏內容請回復…

查看全部問答∨

Enet_io中的SSI和CGI

       基于XMLHttpRequest的方法來是實現遠程控制,大部分的工作都是在瀏覽器上完成的,這樣減輕了嵌入式Web服務器的負擔,感覺速度也很快,而且開發還是比較容易的,只要你熟練掌握JavaScript,結合Firefox的fir ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 林西县| 宁波市| 鹤山市| 海晏县| 红安县| 神池县| 东安县| 日喀则市| 炎陵县| 长子县| 康定县| 上虞市| 堆龙德庆县| 通道| 威海市| 城固县| 闽清县| 美姑县| 综艺| 泰和县| 介休市| 珠海市| 井冈山市| 临夏市| 名山县| 克什克腾旗| 惠东县| 宣恩县| 绥芬河市| 西畴县| 连城县| 武宣县| 阿图什市| 隆安县| 巴彦淖尔市| 余干县| 柏乡县| 清原| 望都县| 北海市| 汉阴县|