![簡(jiǎn)易計(jì)算機(jī)LCD1602單次顯示程序與仿真設(shè)計(jì)_第1頁(yè)](http://file4.renrendoc.com/view/f987554038239f29dd1fd8b4a33a8726/f987554038239f29dd1fd8b4a33a87261.gif)
![簡(jiǎn)易計(jì)算機(jī)LCD1602單次顯示程序與仿真設(shè)計(jì)_第2頁(yè)](http://file4.renrendoc.com/view/f987554038239f29dd1fd8b4a33a8726/f987554038239f29dd1fd8b4a33a87262.gif)
![簡(jiǎn)易計(jì)算機(jī)LCD1602單次顯示程序與仿真設(shè)計(jì)_第3頁(yè)](http://file4.renrendoc.com/view/f987554038239f29dd1fd8b4a33a8726/f987554038239f29dd1fd8b4a33a87263.gif)
![簡(jiǎn)易計(jì)算機(jī)LCD1602單次顯示程序與仿真設(shè)計(jì)_第4頁(yè)](http://file4.renrendoc.com/view/f987554038239f29dd1fd8b4a33a8726/f987554038239f29dd1fd8b4a33a87264.gif)
![簡(jiǎn)易計(jì)算機(jī)LCD1602單次顯示程序與仿真設(shè)計(jì)_第5頁(yè)](http://file4.renrendoc.com/view/f987554038239f29dd1fd8b4a33a8726/f987554038239f29dd1fd8b4a33a87265.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 . . . . 7/7/*/簡(jiǎn)易計(jì)算器,LCD1602顯示/*#include#include#include#define uchar unsigned char #define uint unsigned int/*管腳定義*sbit RS = P30; /選擇數(shù)據(jù)還是命令sbit RW = P31; /選擇讀還是寫(xiě)sbit EN = P32; /使能位#define CHECK_BUSY#define RS_CLR RS=0 #define RS_SET RS=1#define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0#de
2、fine EN_SET EN=1#define DataPort P2/液晶數(shù)據(jù)口接在P2口/*/ uS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值/unsigned char 是定義無(wú)符號(hào)字符變量,其值的圍是/0255 這里使用晶振12M,準(zhǔn)確延時(shí)請(qǐng)使用匯編,大致延時(shí)/長(zhǎng)度如下 T=tx2+5 uS /*void DelayUs2x(uchar t) while(-t);void DelayMs(uchar t) while(t-) DelayUs2x(245); DelayUs2x(245); /*寫(xiě)入命令函數(shù)*void LCD_Write_Com(uchar ) De
3、layMs(1); RS_CLR; RW_CLR; EN_SET; DataPort= ; _nop_(); EN_CLR;/*寫(xiě)入數(shù)據(jù)函數(shù)*void LCD_Write_Data(uchar Data) DelayMs(1); RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_(); EN_CLR;/*寫(xiě)入字符函數(shù)*void LCD_Write_Char(uchar x,uchar y,uchar dat) if (y = 0) LCD_Write_Com(0 x80 + x); else LCD_Write_Com(0 xC0 + x); LCD_W
4、rite_Data( dat);/*清屏函數(shù)*void LCD_Clear(void) LCD_Write_Com(0 x01); DelayMs(5);/*寫(xiě)入字符串函數(shù)*void LCD_Write_String(uchar x,uchar y,uchar *s) if (y = 0) LCD_Write_Com(0 x80 + x); /表示第一行 else LCD_Write_Com(0 xC0); /表示第二行 while(*s != 0) /字符的尾部 LCD_Write_Data( *s); s +; /*初始化函數(shù)*void LCD_Init(void) LCD_Write_C
5、om(0 x38); /顯示模式設(shè)置 DelayMs(5); LCD_Write_Com(0 x38); DelayMs(5); LCD_Write_Com(0 x08); /顯示關(guān)閉 LCD_Write_Com(0 x01); /顯示清屏 LCD_Write_Com(0 x06); /顯示光標(biāo)移動(dòng)設(shè)置 DelayMs(5); LCD_Write_Com(0 x0C); /顯示開(kāi)與光標(biāo)設(shè)置/*按鍵掃描函數(shù),返回掃描鍵值*uchar KeyScan() /鍵盤(pán)掃描函數(shù),使用行列反轉(zhuǎn)掃描法uchar cord_h,cord_l;/行列值中間變量P1=0 x0f; /行線輸出全為0cord_h=P1
6、&0 x0f; /讀入列線值if(cord_h!=0 x0f) /先檢測(cè)有無(wú)按鍵按下DelayMs(10); /去抖if(P1&0 x0f)!=0 x0f)cord_h=P1&0 x0f; /讀入列線值P1=cord_h|0 xf0; /輸出當(dāng)前列線值cord_l=P1&0 xf0; /讀入行線值while(P1&0 xf0)!=0 xf0);/等待松開(kāi)并輸出return(cord_h+cord_l);/鍵盤(pán)最后組合碼值return(0 xff); /返回該值uchar KeyPro()switch(KeyScan()case 0 xeb:return 1;break;/0 按下相應(yīng)的鍵顯示相
7、對(duì)應(yīng)的碼值case 0 xdb:return 2;break;/1case 0 xbb:return 3;break;/2case 0 x77:return +;break;/3case 0 xed:return 4;break;/4case 0 xdd:return 5;break;/5case 0 xbd:return 6;break;/6case 0 x7b:return -;break;/7case 0 xee:return 7;break;/8case 0 xde:return 8;break;/9case 0 xbe:return 9;break;/acase 0 x7d:retu
8、rn x;break;/bcase 0 xe7:return 0;break;/ccase 0 xd7:return .;break;/dcase 0 xb7:return =;break;/ecase 0 x7e:return /;break;/fdefault:return 0 xff;break;void main()uchar num,i,sign; uchar temp16; /最大輸入16個(gè)bit firstflag;float a=0,b=0;uchar s;LCD_Init(); /初始化液晶屏DelayMs(10);/延時(shí)用于穩(wěn)定,可以去掉LCD_Write_Com(0 x0
9、1); /清屏LCD_Write_String(4,0, Calculator ); LCD_Write_String(4,1, Welcome To Use ); for(s=0;s7;s+)/延時(shí)5s DelayMs(200);LCD_Write_Com(0 x01);while (1) /主循環(huán)num=KeyPro(); /掃描鍵盤(pán)if(num!=0 xff) /如果掃描是按鍵有效值那么進(jìn)展處理if(i=0) /輸入是第一個(gè)字符的時(shí)候需要把改行清空,方便觀看LCD_Write_Com(0 x01);if(+=num)| (i=16) | (-=num) | (x=num)| (/=num
10、) | (=num)/輸入數(shù)字最大值16,輸入符號(hào)表示輸入完畢i=0; /計(jì)數(shù)器復(fù)位if(firstflag=0) /如果是輸入的第一個(gè)數(shù)據(jù),賦值給a,并把標(biāo)志位置1,到下一個(gè)數(shù)據(jù)輸入時(shí)可以跳轉(zhuǎn)賦值給bsscanf(temp,%f,&a);firstflag=1;elsesscanf(temp,%f,&b);for(s=0;s16;s+) /賦值完成后把緩沖區(qū)清零,防止下次輸入影響結(jié)果temps=0;LCD_Write_Char(0,1,num);if(num!=) /判斷當(dāng)前符號(hào)位并做相應(yīng)處理sign=num; /如果不是等號(hào)記下標(biāo)志位elsefirstflag=0; /檢測(cè)到輸入=號(hào),判斷
11、上次讀入的符合switch(sign)case +:a=a+b;break;case -:a=a-b;break;case x:a=a*b;break;case /:a=a/b;break;default:break;sprintf(temp,%g,a); /輸出浮點(diǎn)型,無(wú)用的0不輸出LCD_Write_String(1,1,temp);/顯示到液晶屏sign=0;a=b=0; /用完后所有數(shù)據(jù)清零for(s=0;s16;s+)temps=0;else if(i16)if(1=i)& (temp0=0) )/如果第一個(gè)字符是0,判讀第二個(gè)字符if(num=.) /如果是小數(shù)點(diǎn)那么正常輸入,光標(biāo)位置加1temp1=.;LCD_
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)科研個(gè)人計(jì)劃
- 醫(yī)院醫(yī)療保險(xiǎn)工作計(jì)劃
- 人教精通版(2024)三年級(jí)下冊(cè)英語(yǔ)Unit 2 My class單元整體教學(xué)設(shè)計(jì)(共5課時(shí))
- 公司保安工作計(jì)劃
- 新人教版八年級(jí)數(shù)學(xué)上冊(cè)上學(xué)期期末測(cè)試卷附答案
- 再見(jiàn)時(shí)光的飛馳主題班會(huì)
- 全面技能培訓(xùn)計(jì)劃
- 倡導(dǎo)殘疾人的社會(huì)責(zé)任與社會(huì)貢獻(xiàn)
- 人際關(guān)系培訓(xùn)
- 爭(zhēng)分奪秒期末考試得到應(yīng)有回報(bào)主題班會(huì)
- 廣東省廣州市番禺區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題
- 智研咨詢發(fā)布:2024年中國(guó)MVR蒸汽機(jī)械行業(yè)市場(chǎng)全景調(diào)查及投資前景預(yù)測(cè)報(bào)告
- IF鋼物理冶金原理與關(guān)鍵工藝技術(shù)1
- 煙花爆竹重大危險(xiǎn)源辨識(shí)AQ 4131-2023知識(shí)培訓(xùn)
- 銷售提成對(duì)賭協(xié)議書(shū)范本 3篇
- 企業(yè)動(dòng)火作業(yè)安全管理制度范文
- 六年級(jí)語(yǔ)文老師家長(zhǎng)會(huì)
- EPC項(xiàng)目階段劃分及工作結(jié)構(gòu)分解方案
- 《跨學(xué)科實(shí)踐活動(dòng)4 基于特定需求設(shè)計(jì)和制作簡(jiǎn)易供氧器》教學(xué)設(shè)計(jì)
- 2024-2030年汽車啟停電池市場(chǎng)運(yùn)行態(tài)勢(shì)分析及競(jìng)爭(zhēng)格局展望報(bào)告
- 術(shù)后病人燙傷不良事件PDCA循環(huán)分析
評(píng)論
0/150
提交評(píng)論