单片机简易计算器C代码Word格式.docx

上传人:b****6 文档编号:16018248 上传时间:2022-11-17 格式:DOCX 页数:20 大小:17.10KB
下载 相关 举报
单片机简易计算器C代码Word格式.docx_第1页
第1页 / 共20页
单片机简易计算器C代码Word格式.docx_第2页
第2页 / 共20页
单片机简易计算器C代码Word格式.docx_第3页
第3页 / 共20页
单片机简易计算器C代码Word格式.docx_第4页
第4页 / 共20页
单片机简易计算器C代码Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

单片机简易计算器C代码Word格式.docx

《单片机简易计算器C代码Word格式.docx》由会员分享,可在线阅读,更多相关《单片机简易计算器C代码Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

单片机简易计算器C代码Word格式.docx

while(i--);

}

/*----------------------------keyscan------------------------------*/

ucharkeyscan(void)//逐行扫描法

ucharH_line,L_line,Num=0;

//行列值

P3=0x1e;

//行线第一条为0

L_line=P1&

0x1f;

//读入列线值

if(L_line!

=0x1f)//先检测有无按键按下

{

delay(100);

//去抖

//读入列线值

=0x1f)

switch(L_line)

case0x0f:

Num='

7'

;

break;

//7按下相应的键显示相对应的码值

case0x17:

8'

//8

case0x1b:

9'

//9

case0x1d:

F'

//F

case0x1e:

+'

//+

}

while(P1!

=0xff)//一次按键检测,松手跳出循环

H_line=P3&

}

delay(50);

P3=0x1d;

//行线第二条为0

4'

//4按下相应的键显示相对应的码值

5'

//5

6'

//6

E'

//E

-'

//-

P3=0x1b;

//行线第三条为0

1'

//1按下相应的键显示相对应的码值

2'

//2

3'

//3

D'

//D

*'

//*

P3=0x17;

//行线第四条为0

0'

//0按下相应的键显示相对应的码值

A'

//A

B'

//B

C'

//C

/'

///

P3=0x0f;

//行线第五条为0

b'

//b按下相应的键显示相对应的码值

o'

//o

h'

//h

R'

//R

='

//=号

while(Num!

=0)

returnNum;

/*-------------------------LCD_Init---------------------*/

voidLCD_Init(void)

EN=0;

LCD_Write_CMD(0x38);

delay(15);

LCD_Write_CMD(0x0d);

LCD_Write_CMD(0x06);

LCD_Write_CMD(0x01);

/*-------------------------LCD_Busy---------------------*/

bitLCD_Busy(void)

bitresult;

RS=0;

//读指令

RW=1;

EN=1;

_nop_();

result=(bit)(P0&

0x80);

returnresult;

/*----------------------LCD_Write_CMD----------------------------*/

voidLCD_Write_CMD(ucharcommand)

{

bitBusy_flag;

Busy_flag=LCD_Busy();

while(Busy_flag)

//判

RW=0;

P0=command;

/*----------------------LCD_Write_DATA----------------------------*/

voidLCD_Write_DATA(uchardate)

//判定LCD是不是忙碌

RS=1;

P0=date;

delay(10);

 

/*----------------------------main--------------------------------*/

voidmain(void)

ucharkey;

longintnum1=0,num2=0,result=0;

intcnt1=0,cnt2=0,k;

unsignedintflagcal=0,flagtrs=0;

//运算符标志

ucharrem0,rem1,rem2;

//寄存运算符

charnum;

unsignedchardataStr1[10]={0};

//寄存数据

LCD_Init();

LCD_Write_CMD(0x80);

//设置显示位置(第一行开头)

delay(500);

LCD_Write_DATA('

);

//测试用

while

(1)

key=keyscan();

if(key=='

break;

/*-------------------------------大体运算------------------------------*/

if(!

(key=='

||key=='

))

{

if(flagtrs==1)//进制转换启动条件

Str1[cnt1++]=key;

//能存上了

if(rem1=='

if(key>

&

key<

r'

delay(500000);

cnt1=0;

if((key>

k

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1