基于51单片机的简易计算器
经历了一番学习,成功做出了一个简易的计算器,并且在程序开头加了一个小密码。我用的单片机是STC89C52,单片机类型不同,电路图也是不一样的。
一.设计思路
1.1LCD1602的电路图
该芯片引脚,
sbit RS = P3^5; //液晶引脚定义
sbit RW = P3^6;
sbit EN = P3^4;
#
1.2主函数思路
主函数的思路图:
1.3主函数程序
main()
{
uchar i,num,sign,s;
uchar temp[16];
bit firstflag;
float a=0,b=0;
Lcd_Init();
DelayMs(10);
LcdWrite_cmd(0x01);
LcdWrite_string(5,0,"WELCOM !");
LcdWrite_string(3,1,"LI HUA HUI");
for(s=0;s<25;s++)
DelayMs(200);
LcdWrite_cmd(0x01);
mima();
DelayMs(200);
LcdWrite_string(0,1," ");//清除该行
LcdWrite_string(0,1,"Right Open!>>>>");//密码正确显示的信息
for(s=0;s<25;s++)
DelayMs(200);
LcdWrite_cmd(0x01);
while(1)
{
num=KeyPro();
if(num!=0xff)
{
if(i==0)
LcdWrite_cmd(0x01);
if(('+'==num) || ('-'==num) || ('*'==num) || ('/'==num) || ('='==num) || (i==16))
{
i=0;
LcdWrite_char(0,1, num);//应该输入字符,而不是字符串
if(firstflag==0)
{
sscanf(temp,"%f",&a);
firstflag = 1;
}
else
{
sscanf(temp,"%f",&b)