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)
{
}
}
{
P1 = 101 / 2; //求商,获取除法运算的整数部分,送到P1口显示
P0 = ((101 % 2) * 10) / 2; //获取除法运算的小数部分,送到P0口显示
while(1)
{
}
}
5、在proteus中新建仿真文件ex9.dsn,电路图如下所示
6、启动仿真,验证输出结果是否正确,输出显示如下图所示