单片机简易计算器C代码Word格式.docx
- 文档编号:16018248
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:20
- 大小:17.10KB
单片机简易计算器C代码Word格式.docx
《单片机简易计算器C代码Word格式.docx》由会员分享,可在线阅读,更多相关《单片机简易计算器C代码Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 简易 计算器 代码