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

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

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

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

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

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

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

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

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

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

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

#include<reg51.h> //包含单片机寄存器的头文件
/****************************************************** 
函数功能:延时一段时间
******************************************************/ 
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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/155246.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微机原理_10

一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案。&#xff09; 1,将二进制数110110.01转换为十六进制为(&#xff09; A. 66.1H B. 36.4H C. 66.4 D. 36.2 2,一台计算机的字长是4个字节,含义是(&#xff09; A.能处理的最大…

基于STM32微控制器的巡线小车控制研究

## 一、引言 巡线小车是一种常见的智能车型&#xff0c;通常用于参加各类智能车比赛或者教学实验。本文将基于STM32微控制器对巡线小车进行控制研究&#xff0c;主要包括硬件设计和软件编程两个方面。通过该研究&#xff0c;将实现让巡线小车沿着指定轨迹巡线行驶&#xff0c;并…

LEEDCODE 220 存在重复元素3

class Solution { public:int getId(int a, int valuediff){// 值// return a/(valuediff1);return a < 0 ? (a ) -) / (valuediff 1) - 1 : a / (valuediff 1);}public: unordered_map<int, int> bucket;bool containsNearbyAlmostDuplicate(vector<int>&am…

基于SSM的学生疫情信息管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

多维时序 | MATLAB实现PSO-GRU-Attention粒子群优化门控循环单元融合注意力机制的多变量时间序列预测

多维时序 | MATLAB实现PSO-GRU-Attention粒子群优化门控循环单元融合注意力机制的多变量时间序列预测 目录 多维时序 | MATLAB实现PSO-GRU-Attention粒子群优化门控循环单元融合注意力机制的多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MAT…

python趣味编程-5分钟实现一个谷歌恐龙游戏(含源码、步骤讲解)

Python 恐龙游戏是为想要学习 Python 的初学者创建的。该项目系统使用了 Pygame 和 Random 模块。 Pygame 是一组跨平台的 Python 模块,专为编写视频游戏而设计。 Python 中的 Dino Game有一个任务记录,其中包含图片文档和 Python 内容(dino.py)。 GUI 使用 pygame 库。

<MySQL> 什么是数据库索引?数据库索引的底层结构是什么?

目录 一、什么是数据库索引? 1.1 索引的概念 1.2 索引的特点 1.3 索引的适用场景 1.4 索引的使用 1.4.1 创建索引 1.4.2 查看索引 1.4.3 删除索引 二、数据库索引的底层结构是什么&#xff1f; 2.1 数据库中的 B树 长啥样&#xff1f; 2.2 B树为什么适合做数据库索…

Windows环境VSCode配置OpenCV-项目配置(二)

修改c_cpp_properties.json {"configurations": [{"name": "windows-gcc-x64","includePath": ["${workspaceFolder}/**","D:/mingw64/mingw64/include","D:/openCV_win/build/install/include","…

C语言之深入指针及qsort函数(五)(详解介绍)

C语言之深入指针 在这篇博客看不懂的可以看看这篇C语言之深入指针&#xff08;四&#xff09;在上篇博客中介绍了&#xff1a; 函数指针变量函数指针数组简易计算器的实现\ 文章目录 C语言之深入指针1 回调函数2 qsort函数的使用2.1 使用冒泡排序排序整型数组2.2 使用qsort函数…

web 前台页面内弹出框(一)

本文已经不推荐在使用了&#xff0c;有更加优秀的 &#xff0c;详情参考layui弹出层 前端当前页面编辑一些数据时&#xff0c;往往会用到弹出窗口&#xff0c;但每个页面单独修改有显得比较麻烦&#xff0c;因此&#xff0c;可以建立一个公用的方法&#xff0c;去掉用就可以了&…

分类预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多特征分类预测

分类预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果…

基于STM32的循迹小车项目实战

循迹小车是一种能够沿着预定路线行驶的智能小车&#xff0c;通过巡线传感器检测路面的线路&#xff0c;并根据检测结果调整行驶方向。本项目将基于STM32微控制器实现一个简单的循迹小车&#xff0c;通过学习和实践&#xff0c;帮助初学者熟悉STM32的开发流程和掌握循迹小车的实…

IntelliJ IDEA启动一个普通的java web项目的配置

原创/朱季谦 这是我很久以前刚开始用IntelliJ IDEA时记录的笔记&#xff0c;应该是五年前的一篇笔记了。正好赶上最近离职了&#xff0c;可以有比较多的时间把以前的记录整理一下&#xff0c;可以让刚接触到IntelliJ IDEA的童鞋学习如何在IntelliJ IDEA引入一个单机版的jar形式…

flutter跨端开发for Web、Windows QA (持续补充中)

flutter跨端开发for Web、Windows Q&A Q1 开发环境运行web 解决跨域问题 问题描述 : 常见于本地调试项目 本地项目 10.125.10 如图所示 请求项目接口 解决方案&#xff1a; 开发环境运行web 解决跨域问题 flutter run -d chrome --web-browser-flag "--disable-web-s…

利用OpenCV做个熊猫表情包 二

之前写了一篇 利用OpenCV做个熊猫表情包吧_Leen的博客-CSDN博客 回想起来觉得有点太弱了&#xff0c;意犹未尽&#xff0c;每次使用需要自己去手动截取人脸&#xff0c;清除黑边什么的才能使用demo去合成表情&#xff0c;于是有空的时候就改进了一下&#xff0c;让它利用open…

SpringBoot整合Quartz示例

数据表 加不加无所谓,如果需要重启服务器后重新执行所有JOB就把sql加上 如果不加表 将application.properties中的quartz数据库配置去掉 自己执行自己的逻辑来就好,大不了每次启动之后重新加载自己的逻辑 链接&#xff1a;https://pan.baidu.com/s/1KqOPYMfI4eHcEMxt5Bmt…

除了chatGPT网站外,国内有些可以使用的AI网站 文心一言 讯飞星火 豆包 通义千问 人工智能网站 AI网站

2023年随着人工智能技术的不断发展&#xff0c;AI网站如ChatGPT等越来越受到人们的关注。这些网站具有多种作用&#xff0c;可以帮助人们更方便地获取信息、解决问题&#xff0c;甚至进行创作。 首先&#xff0c;AI网站可以提供智能问答服务。与传统的搜索引擎相比&#xff0c…

ClickHouse的表引擎

1 表引擎的使用 表引擎是ClickHouse的一大特色。可以说&#xff0c; 表引擎决定了如何存储表的数据。包括&#xff1a; 数据的存储方式和位置&#xff0c;写到哪里以及从哪里读取数据。支持哪些查询以及如何支持。并发数据访问。索引的使用&#xff08;如果存在&#xff09;。是…

Python大数据之linux学习总结——day09_hive调优

hive调优 hive官方配置url: https://cwiki.apache.org/confluence/display/Hive/ConfigurationProperties hive命令和参数配置 hive参数配置的意义: 开发Hive应用/调优时&#xff0c;不可避免地需要设定Hive的参数。设定Hive的参数可以调优HQL代码的执行效率&#xff0c;或帮…

ClickHouse SQL操作

基本上来说传统关系型数据库&#xff08;以MySQL为例&#xff09;的SQL语句&#xff0c;ClickHouse基本都支持&#xff0c;这里不会从头讲解SQL语法只介绍ClickHouse与标准SQL&#xff08;MySQL&#xff09;不一致的地方。 1 Insert 基本与标准SQL&#xff08;MySQL&#xff09…