濮阳做网站的,企业网站托管趋势,淮安做网站的公司有哪些公司,张扬网站建设51单片机应用从零开始#xff08;一#xff09;-CSDN博客 51单片机应用从零开始#xff08;二#xff09;-CSDN博客 51单片机应用从零开始#xff08;三#xff09;-CSDN博客 51单片机应用从零开始#xff08;四#xff09;-CSDN博客 详解 KEIL C51 软件的使用建立工程… 51单片机应用从零开始一-CSDN博客 51单片机应用从零开始二-CSDN博客 51单片机应用从零开始三-CSDN博客 51单片机应用从零开始四-CSDN博客 详解 KEIL C51 软件的使用·建立工程-CSDN博客 详解 KEIL C51 软件的使用·设置工程·编绎与连接程序-CSDN博客 前面我们通过对P3口的控制实现了流水灯的操作下面我们来进行加减乘除运算的学习。
1. 用 P0 口、P1 口分别显示加法和减法运算结果
#includereg51.h
void main(void)
{ unsigned char m,n; m43; //即十进制数 2x161143 n60; //即十进制数 3x161260 P1mn; //P11030110 0111B,结果 P1.3、P1.4、P1.7 口的灯被点亮P0n-m; //P0170001 0001B,结果 P0.0、P0.4 的灯被熄灭}
2. 用 P0、P1 口显示乘法运算结果 51单片机的P0口和P1口是用来进行输入输出的通用口可以通过程序来进行控制。如果要使用P0和P1口来显示乘法运算结果可以采用以下步骤 定义变量定义两个变量m和n分别用来存储乘数和被乘数。 通过P0口输入数据使用P0口进行输入操作将乘数和被乘数分别输入到变量m和n中。 进行乘法运算使用乘法指令MUL将m和n相乘将结果存入寄存器中。 将乘法结果存到P1口中使用P1口进行输出操作将乘法结果从寄存器中读取通过P1口输出。
下面是代码实现的具体步骤
#includereg51.h //包含单片机寄存器的头文件
void main(void)
{ unsigned char m,n; unsigned int s; m64; n71; sm*n; //s64*714544,需要 16 位二进制数表示高 8 位送 P1 口低 8 位送 P0 口//由于454417*256192H3*16*16*16H2*16*16H1*16H0 //两边同除以 256可得 17192/256H3*16H2H1*16H0/256 //因此高 8 位 16 进制数 H3*16H2 必然等于 17即 4544除以 256 的商//低 8 位 16 进制数 H1*16H0 必然等于 192即 4544 除以256 的余数P1s/256; //高 8 位送 P1 口 P11711H0001 0001B, P1.0 和 P1.4口灭其余亮P0s%256; //低 8 位送 P0 口 , P3192c0H1100 0000B,P3.1,P3.6,P3.7 口灭其余亮
}
3. 用 P1、P0 口显示除法运算结果
#includereg51.h //包含单片机寄存器的头文件
void main(void)
{ P136/5; //求整数P0((36%5)*10)/5; //求小数while(1) ; //无限循环防止程序“跑飞”}
4. 用自增运算控制 P0 口 8 位 LED 流水花样
#includereg51.h //包含单片机寄存器的头文件
/******************************************************
函数功能延时一段时间
******************************************************/
void delay(void)
{ unsigned int i; for(i0;i20000;i) ;
}
/******************************************************
函数功能 主函数
******************************************************/
void main(void)
{ unsigned char i; for(i0;i255;i) //注意 i 的值不能超过 255 { P0i; //将 i 的值送 P0 口delay(); //调用延时函数}
} 更多推荐 时光の尘_千题千解·Java面试宝典,Linux学习,C学习-CSDN博客