51单片机应用从零开始(五)·加减乘除运算

51单片机应用从零开始(一)-CSDN博客

51单片机应用从零开始(二)-CSDN博客

51单片机应用从零开始(三)-CSDN博客

51单片机应用从零开始(四)-CSDN博客

详解 KEIL C51 软件的使用·建立工程-CSDN博客

详解 KEIL C51 软件的使用·设置工程·编绎与连接程序-CSDN博客

        前面我们通过对P3口的控制实现了流水灯的操作,下面我们来进行加减乘除运算的学习。

1.  用 P0 口、P1 口分别显示加法和减法运算结果

#include 
void main(void) 
{ 
 unsigned char m,n; 
 m=43; //即十进制数 2x16+11=43 
 n=60; //即十进制数 3x16+12=60 
 P1=m+n; //P1=103=0110 0111B,结果 P1.3、P1.4、P1.7 口的灯被点亮
 P0=n-m; //P0=17=0001 0001B,结果 P0.0、P0.4 的灯被熄灭
 }

2.  用 P0、P1 口显示乘法运算结果

        51单片机的P0口和P1口是用来进行输入输出的通用口,可以通过程序来进行控制。如果要使用P0和P1口来显示乘法运算结果,可以采用以下步骤:

  1. 定义变量:定义两个变量m和n,分别用来存储乘数和被乘数。

  2. 通过P0口输入数据:使用P0口进行输入操作,将乘数和被乘数分别输入到变量m和n中。

  3. 进行乘法运算:使用乘法指令MUL将m和n相乘,将结果存入寄存器中。

  4. 将乘法结果存到P1口中:使用P1口进行输出操作,将乘法结果从寄存器中读取,通过P1口输出。

下面是代码实现的具体步骤:

#include //包含单片机寄存器的头文件
void main(void) 
{ 
 unsigned char m,n; 
 unsigned int s; 
 m=64; 
 n=71; 
 s=m*n;  //s=64*71=4544,需要 16 位二进制数表示,高 8 位送 P1 口,低 8 位送 P0 口
         //由于4544=17*256+192=H3*16*16*16+H2*16*16+H1*16+H0 
         //两边同除以 256,可得 17+192/256=H3*16+H2+(H1*16+H0)/256 
         //因此,高 8 位 16 进制数 H3*16+H2 必然等于 17,即 4544除以 256 的商
         //低 8 位 16 进制数 H1*16+H0 必然等于 192,即 4544 除以256 的余数
 P1=s/256; //高 8 位送 P1 口 ,P1=17=11H=0001 0001B, P1.0 和 P1.4口灭,其余亮
 P0=s%256; //低 8 位送 P0 口 , P3=192=c0H=1100 0000B,P3.1,P3.6,P3.7 口灭,其余亮
}

3.  用 P1、P0 口显示除法运算结果

#include //包含单片机寄存器的头文件
void main(void) 
{ 
 P1=36/5; //求整数
 P0=((36%5)*10)/5; //求小数
 while(1) 
 ; //无限循环防止程序“跑飞”
 }

4.  用自增运算控制 P0 口 8 位 LED 流水花样

#include //包含单片机寄存器的头文件
/****************************************************** 
函数功能:延时一段时间
******************************************************/ 
void delay(void) 
{ 
 unsigned int i; 
 for(i=0;i<20000;i++) 
 ; 
} 
/****************************************************** 
函数功能 :主函数
******************************************************/ 
void main(void) 
{ 
 unsigned char i; 
 for(i=0;i<255;i++) //注意 i 的值不能超过 255 
 { 
 P0=i; //将 i 的值送 P0 口
 delay(); //调用延时函数
 } 
}

更多推荐:

时光の尘_千题千解·Java面试宝典,Linux学习,C++学习-CSDN博客

51单片机应用从零开始(五)·加减乘除运算_第1张图片

你可能感兴趣的:(嵌入式学习,51单片机,嵌入式硬件,单片机)