2016 - 2024

感恩一路有你

单片机如何设计加法计算器 51单片机加法器原理?

浏览量:1950 时间:2023-03-03 17:32:14 作者:采采

单片机如何设计加法计算器 51单片机加法器原理?

51单片机加法器原理?

加法器是基于二进制逻辑关系设计的。假设计算a1 a2,和为C [1: 0],有以下两种关系:

1.当A1和a2都为1时,进位c[1]=1,即逻辑与;

2.当A1和a2只有一个为1时,低阶c[0]=1,即逻辑异或;所以加法器的实现是c[1]=a1和a2,c[0]=a1异或a2。

单片机的简易计算器?

# inclultreg52.hgt//statement包含51个头文件。

# inclultstdio.hgt//declares认为它包含输入和输出功能。

# inclusiventrins。HGT//声明包含位移函数。

#define uchar无符号char //宏定义

#define uint unsigned int //宏定义

#定义检查忙

Sbitrs = P3 5//LCD引脚定义

P3^6

P3^4

sbitwela = P2 7//数码管引脚定义

sbit dula=P2^6

Void DelayMs(int z)// 1ms延迟功能

{

int x,y

for (x=zxgt0x -)

for(y=110ygt0y -)

}

/* * * * * * * * * LED忙碌功能* * * * * * *

位LCD_Check_Busy()

{

#ifdef检查忙

P0= 0xFF

RS=0

RW=1

EN=0

_nop_()

EN=1

返回位(P0放大器0x80)

#否则

返回0

#endif

}

/* * * * * * * * * LED写命令功能* * * * * * * *

void write_com(uchar com)

{

While(LCD_Check_Busy()) //忙就等。

RS=0

RW=0

EN=1

P0= com

_nop_()

EN=0

}

/* * * * * * * * LED写数据功能* * * * * * * *

void write_dat(uchar dat)

{

While(LCD_Check_Busy()) //忙就等。

RS=1

RW=0

EN=1

P0= dat

_nop_()

EN=0

}

/* * * * * * * LED书写字符功能* * * * * * * *

void LCD_Write_Char(uchar x,uchar y,uchar dat)

{

如果(y == 0)

{

write_com(0x80 x)

}

其他

{

write_com(0xC0 x)

}

write_dat(日期)

}

/* * * * * *编写字符串函数* * * * * * * *

void Write_String(uchar x,uchar y,uchar *s)

{

while (*s)

{

LCD_Write_Char(x,y,*s)

s

x

}

}

/* * * * * * LED初始化功能* * * */

void LCD_Init()

{

RW=0

杜拉=0 //关闭数码管的显示。

Wela=0 //关闭数码管显示。

Write_com(0x38) /*显示模式设置*/

戴莱姆斯(5)

Write_com(0x06)/*显示光标移动设置*/

戴莱姆斯(5)

Write_com(0x0C) /*显示开启和光标设置*/

Write_com(0x01) /*显示清晰屏幕*/

}

/*键扫描函数,返回扫描键值*/

Uchar KeyScan() //键盘扫描函数,采用行列反转扫描。

{

无符号字符cord_h,cord_l//行列值中间变量

P3=0x0f //行线输出全为0。

Cord_h=P30x0f //读入列线值。

if(cord_h!=0x0f) //先检查按键是否按下。

{

DelayMs(10) //去反跳

if((P3amp0x0f)!=0x0f)

{

Cord_h=P30x0f //读入列线值。

P3=cord_h|0xf0 //输出前列线的值。

Cord_l=P30xf0 //读入行线值。

while((P3amp0xf0)!=0xf0)//等待释放并输出。

Return(cord_h cord_l)//键盘的最终组合码值。

}

}

Return(0xff) //返回值。

}

无符号char K:回归 1 break//0按相应的键显示相应的代码值。

案例0x ede CHO 3-@ . com r: r: r: r: r: r: r: r: r: r: r: return ;0 break//c

案例0x bb: r: r: r: return 0x ffbreak

}

}

主()

{

无符号字符数,I,符号

Unsigned char temp[16] //最大输入为16。

位优先标志

浮点a=0,b=0

无符号字符

LCD_Init() //初始化LCD屏幕。

DelayMs(10)// Delay用于稳定,可以删除。

Write_com(0x01) //清除屏幕

写入字符串(0,0,

com 符号 字符 Write LCD

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。