基于proteus的51单片机仿真实例二十、用单片机端口演示数据的除法运算结果
2017-04-30 07:41
741 查看
1、在单片机中进行除法运算,要尽量避免直接使用实型变量,因为实型变量占用字节多,非常耗费CPU的时间,所以尽量用整形数据来代替,比如可以先用除法运算获得整数部分,然后用求余运算获得余数,再对余数进行运算。
2、本例实现一个除法运算,所得上的整数部分送P1口显示,小数部分送P0口显示。
3、实现方法,本例计算101除以2的结果。先用除法运算商的整数部分(101/2=50),然后用求余运算得出余数(101%2=1),若直接用除法运算1/2,则得0(C51中整形数据除法运算获得的小数部分被自动舍去),因此,在这里需要将1乘以10,然后用所得的积除以2,即(101%2)*10/2,结果即为小数部分的数字。
4、在keil c51中新建项目ex9,编写如下程序代码,编译并生成ex9.hex文件
//实例9:用P0,P1口显示除法运算的结果
#include <reg51.h> //头文件包含
void main(void)
{
P1 = 101 / 2; //求商,获取除法运算的整数部分,送到P1口显示
P0 = ((101 % 2) * 10) / 2; //获取除法运算的小数部分,送到P0口显示
while(1)
{
}
}
5、在proteus中新建仿真文件ex9.dsn,电路图如下所示
6、启动仿真,验证输出结果是否正确,输出显示如下图所示
2、本例实现一个除法运算,所得上的整数部分送P1口显示,小数部分送P0口显示。
3、实现方法,本例计算101除以2的结果。先用除法运算商的整数部分(101/2=50),然后用求余运算得出余数(101%2=1),若直接用除法运算1/2,则得0(C51中整形数据除法运算获得的小数部分被自动舍去),因此,在这里需要将1乘以10,然后用所得的积除以2,即(101%2)*10/2,结果即为小数部分的数字。
4、在keil c51中新建项目ex9,编写如下程序代码,编译并生成ex9.hex文件
//实例9:用P0,P1口显示除法运算的结果
#include <reg51.h> //头文件包含
void main(void)
{
P1 = 101 / 2; //求商,获取除法运算的整数部分,送到P1口显示
P0 = ((101 % 2) * 10) / 2; //获取除法运算的小数部分,送到P0口显示
while(1)
{
}
}
5、在proteus中新建仿真文件ex9.dsn,电路图如下所示
6、启动仿真,验证输出结果是否正确,输出显示如下图所示
相关文章推荐
- 基于proteus的51单片机仿真实例十九、用单片机端口演示数据的乘法运算结果
- 基于proteus的51单片机仿真实例十八、用单片机端口演示数据的加法和减法运算 4000 结果
- 基于proteus的51单片机仿真实例二十一、C语言的自增和自减运算演示实例
- 基于proteus的51单片机仿真实例二十三、C51条件运算符演示实例
- 基于proteus的51单片机仿真实例四十八、C语言的指针数组演示实例
- 基于proteus的51单片机仿真实例四十九、C语言数组的指针演示实例
- 基于proteus的51单片机仿真实例十七、用不同的数据类型控制LED灯的闪烁频率
- 基于proteus的51单片机仿真实例四十二、C语言的二维数组演示实例
- 基于proteus的51单片机仿真实例二十七、C语言的语句演示实例
- 基于proteus的51单片机仿真实例二十八、C语言的if条件语句演示实例
- 基于proteus的51单片机仿真实例二十五、C51中移位位运算符演示实例
- 基于proteus的51单片机仿真实例五十五、外部中断1演示实例
- 基于proteus的51单片机仿真实例四十六、C语言的枚举类型演示实例
- 基于proteus的51单片机仿真实例二十二、C51逗号运算符演示实例
- 基于proteus的51单片机仿真实例四十五、C语言的共用体演示实例
- 基于proteus的51单片机仿真实例四十七、C语言的指针演示实例
- 基于proteus的51单片机仿真实例六、运行你的第一个仿真实例
- 基于proteus的51单片机仿真实例二十六、“万能逻辑电路”实验
- 基于proteus的51单片机仿真实例三十一、C语言的while循环语句
- 基于proteus的51单片机仿真实例二、关于proteus