基于proteus的51单片机仿真实例十八、用单片机端口演示数据的加法和减法运算结果
来源:互联网 发布:推广软件返现金 编辑:程序博客网 时间:2024/05/17 22:26
1、通过上一节的实例,我们了解到即使相同的数据,如果采用不同的数据类型来表示,最终的运行结果也可能有很大的区别。
在用C51进行程序设计时,对于变量的数据类型选择有如下经验:
1)尽量预算一下变量的数据变化范围,根据变量长度来选择变量类型。尽量选择长度短的数据类型来定义变量。这样不但可以提高代码效率,还能节省CPU时间,减少内存的消耗。
2)尽量使用无符号类型的变量,如果用到负数,则尽可能把符号和数据分开定义,可以用一个位变量来表示数值的正负。
3)如果程序中不需要浮点数,则尽量避免使用浮点数。要知道,浮点数要占用32位数据空间,而51单片机的数据处理能力是8位,不难看出,51单片机处理浮点数会浪费大量时间。
2、本例使用单片机的P0口和P1口分别显示两个无符号字符型数据的加法和减法的运算结果
3、在kei c51中新建工程文件ex6,输入如下的程序代码,编译并生成ex6.hex文件
//实例6:使用P0口和P1口分别显示加法和减法的运算结果
#include <reg51.h> //包含单片机寄存器定义的头文件
void main(void)
{
unsigned char num1,num2,add,sub; //定义无符号型字符变量,注意这里的变量都有比较明确的含义
//num1,num2表示数1和数2;add表示两数相加后的和,sub表示两数
//相减后的差。这样定义变量可以很清晰地表示出变量的意义
num1 = 100; //将数1赋值
num2 = 50; //将数2赋值
{
unsigned char num1,num2,add,sub; //定义无符号型字符变量,注意这里的变量都有比较明确的含义
//num1,num2表示数1和数2;add表示两数相加后的和,sub表示两数
//相减后的差。这样定义变量可以很清晰地表示出变量的意义
num1 = 100; //将数1赋值
num2 = 50; //将数2赋值
add = num1 + num2; //数1+数2所得的和保存到变量add中
sub = num1 - num2; //数1-数2所得的差保存到变量sub中
sub = num1 - num2; //数1-数2所得的差保存到变量sub中
P0 = add; //P0显示两数相加后的和
P1 = sub; //P1显示两数相减后的差
P1 = sub; //P1显示两数相减后的差
while(1) //无限循环,防止程序跑飞。在单片机的C语言程序中,主函数中的这个
{ //无限循环函数是必须的,建议尽量不要省略
//之前有些程序中没有这个无限循环函数,是为了演示方便,实际使用中
} //必须要有这个无限循环函数
}
{ //无限循环函数是必须的,建议尽量不要省略
//之前有些程序中没有这个无限循环函数,是为了演示方便,实际使用中
} //必须要有这个无限循环函数
}
4、在proteus中绘制仿真电路图ex6.dsn,电路图如下所示。将上面编译好的ex6.hex文件载入AT89C51。
5、启动仿真,程序运行结果如下图所示:我们可以通过手工计算两数相加和相减后的结果与运行结果进行对照检查。
0 0
- 基于proteus的51单片机仿真实例十八、用单片机端口演示数据的加法和减法运算结果
- 基于proteus的51单片机仿真实例十九、用单片机端口演示数据的乘法运算结果
- 基于proteus的51单片机仿真实例二十、用单片机端口演示数据的除法运算结果
- 基于proteus的51单片机仿真实例二十二、C51逗号运算符演示实例
- 基于proteus的51单片机仿真实例二十三、C51条件运算符演示实例
- 基于proteus的51单片机仿真实例二十四、C51中位运算符演示实例
- 基于proteus的51单片机仿真实例二十一、C语言的自增和自减运算演示实例
- 基于proteus的51单片机仿真实例二十八、C语言的if条件语句演示实例
- 基于proteus的51单片机仿真实例二十五、C51中移位位运算符演示实例
- 基于proteus的51单片机仿真实例二、关于proteus
- 基于proteus的51单片机仿真实例二十七、C语言的语句演示实例
- 基于proteus的51单片机仿真实例四十二、C语言的二维数组演示实例
- 基于proteus的51单片机仿真实例四十三、C语言的字符串数组演示实例
- 基于proteus的51单片机仿真实例四十四、C语言的结构体演示实例
- 基于proteus的51单片机仿真实例四十五、C语言的共用体演示实例
- 基于proteus的51单片机仿真实例四十六、C语言的枚举类型演示实例
- 基于proteus的51单片机仿真实例四十七、C语言的指针演示实例
- 基于proteus的51单片机仿真实例四十八、C语言的指针数组演示实例
- Python语言开发环境配置--Python(3)
- 孤独的数列
- MarkDown 学习笔记
- Python中Unicode字符串(转自慕课网)
- 基于proteus的51单片机仿真实例十七、用不同的数据类型控制LED灯的闪烁频率
- 基于proteus的51单片机仿真实例十八、用单片机端口演示数据的加法和减法运算结果
- markdown 数学公式 tips
- Github全面详解-11创建分支
- 运行Python程序的5种方式--Python(4)
- 基于proteus的51单片机仿真实例十九、用单片机端口演示数据的乘法运算结果
- 基于proteus的51单片机仿真实例二十、用单片机端口演示数据的除法运算结果
- Maven项目的pom.xml依赖下载失败或是取消之后如何重新更新
- Coursera ML笔记 -----week9-2 推荐系统
- 520. Detect Capital