02-51单片机的C语言基础与最小系统

news/2024/12/15 6:33:44/

C语言基础

一个简单的单片机C程序要有什么

#include<reg51.h>
void main()
{while(1){}
}

C语言中常用语句略,if,while,do…while,for,switch…case

函数略

C-51的数据类型扩充定义

sfr:特殊功能寄存器声明sfr 变量名=地址值;

*特殊功能寄存器在reg51.H这个头文件里面都帮我们定义好了,所以平时我们就不要自己去定义寄存器的名字。

sbit:特殊功能位声明sbit 变量名=地址值;

*在给某个引脚取名的时候经常会用到。

bit:位变量声明

*用来定义位数据变量

例:

sfr SCON= 0X98;sbit LED= P0^2;

51单片机最小系统

最小应用系统

51单片机的最小应用系统,至少有这三个外围电路:电源电路、复位电路、时钟电路。

1.电源电路的作用不用多说。

2.复位电路是为了保证单片机上电之后从一个确定的状态开始工作。就像计算器的清零按钮一样。

3.时钟电路用于产生单片机工作所需要的时钟信号,唯一的时钟信号控制下的时序可以保证单片机各部件同时工作。就比如你只用单片机点亮一个LED,你不需要时钟模块,当你要这个LED有规律闪烁的时候,时钟模块就起到了它的作用。
<a class=51单片机最小应用系统" />

最小应用系统+下载模块

下载模块是为了把hex文件烧录到单片机上的。市面上的单片机最小系统板都有下载模块,要不然你代码弄不到硬件上。下载模块的原理就是TXD、RXD通过各种方式,和电脑进行通信。

下面是USB转串口的示意图
在这里插入图片描述
也可以利用RS232接口和计算机直接进行串口通信,但个人感觉不太方便,现在很多电脑都没这个接口了。
在这里插入图片描述

开发软件安装与工程建立

KEIL安装与使用

微信公众号搜一下,非常简单,需要破解,这个软件主要是方便写代码。

你用vscode+platformIO也可以,这玩意开源的。

刚学51、stm32的时候我还习惯用KEIL,后来需要学esp32、Arduino这些东西的时候,就比较偏向platformIO了。ARM版KEIL和51版KEIL同时安装在一台电脑上,就挺麻烦的。Arduino又没有项目管理功能。

protues的安装与使用

微信公众号搜一下,电脑配置够的话装新不装旧。使用方法必应搜一下,protues8.x、7.x的使用方法都差不多。

protues是一个电路仿真软件。不仅能仿真8051,也能仿真stm32\esp32\arduino\树莓派的一些功能,但是无线通信功能protues确实仿真不了。

个人感觉新版本就是能仿真的硬件更多一点,但是体积也大。如果只学51的话,装最古老的版本就够了。我现在装的是protues8.16,最新版已经更到8.17了。

后记

最小系统图是我从STC89C52的数据手册(datasheet)里截的,C52是C51的一个增强版本,多一些特殊功能而已。

AT89C52和STC89C52使用上的区别不大,AT是国外公司Atmel生产的,数据手册只有英文版,并且已经停产了。STC是国内公司宏晶科技生产的,有中文版数据手册,读起来更方便。

89是人家公司内部的生产线编号。STC89系列比AT89系列,在存储器容量、下载方式等方面要强一点。AT89C52是经典,STC89C52是后来者居上。

51、stm32、esp32等MCU(微控制器单元)的开发,最快的学习方式就是读数据手册,因为当一个新技术出成课本录成视频的时候,它已经变成经典了。


http://www.ppmy.cn/news/1555230.html

相关文章

从万维网到人工智能:改变生活的11项技术里程碑

1984 年 1 月 24 日&#xff0c;苹果公司推出了 Macintosh 128K&#xff0c;从此永远改变了个人电脑的面貌。 史蒂夫・乔布斯&#xff08;Steve Jobs&#xff09;这款小巧且用户友好的电脑向全世界引入了图形用户界面&#xff0c;标志着个人技术发展历程中的一个关键时刻。 从…

笔墨游戏 蒙养生活 了解林曦老师的中国画美育直播课

你觉得&#xff0c;美是什么?一张画&#xff0c;一个雕塑&#xff0c;一段音乐      是&#xff0c;也不仅仅是这样      “美者&#xff0c;甘也”美&#xff0c;是一种甘甜的味道      是对生活的兴味与体验它关乎一种畅达而自如的人生在林曦老师的中国画美育课…

【0x000A】HCI_Reject_Connection_Request命令详解

目录 一、命令概述 二、命令格式及参数说明 2.1. HCI_Reject_Connection_Request命令格式 2.2. 参数说明 2.2.1. BD_ADDR&#xff08;蓝牙设备地址&#xff09; 2.2.2. Reason&#xff08;拒绝原因&#xff09; 三、返回事件及参数说明 3.1. 返回参数 3.2. 生成的事件…

Flink一些常用API的使用(Flink中的Source以及Flink中的一些常用算子)

文章目录 一、Source1、预定义Source2、自定义Source【重要】3、Kafka Source【重要】 二、Transformation-转换算子1、union和connect-合并和连接2、Side Outputs&#xff08;侧道输出&#xff09;--分流 一、Source 1、预定义Source 基于本地集合的source&#xff08;Colle…

Vue前端开发-axios对象实例创建和配置的过程

在Vue 3中&#xff0c;由于所有的组件都可能去请求数据&#xff0c;因此&#xff0c;针对axios模块的配置应该是全局性的&#xff0c;在进行axios模块的全局配置之前&#xff0c;需要了解axios实例的创建、配置对象和响应对象的结构内容&#xff0c;接下来我们分别来进行介绍。…

opencv腐蚀和膨胀

腐蚀的核心在于把图片中白色的细微线条去除,膨胀则会将白线条扩大 # 导入OpenCV库&#xff0c;用于图像处理 import cv2 import numpy as np # 从matplotlib库中导入pyplot模块&#xff0c;用于绘制图像 from matplotlib import pyplot as plt # 创建一个名为window…

金融信息分析基础(1)

1.金融数据 金融数据分为&#xff1a;交易数据&#xff08;低频数据&#xff0c;高频数据&#xff0c;超高频数据&#xff09;&#xff0c;报表数据&#xff08;财务报表&#xff0c;研报&#xff09;&#xff0c;金融社交媒体数据 低频数据&#xff1a; 以日、周、月、季、年…

分布式中的CAP定理和BASE理论与强弱一致性

分布式中的CAP定理和BASE理论与强弱一致性 CAP定理 CAP定理&#xff0c;也称为布鲁尔定理&#xff08;Brewer’s Theorem&#xff09;&#xff0c;是由加州大学伯克利分校的Eric Brewer教授在2000年提出的&#xff0c;并由麻省理工学院的Seth Gilbert和Nancy Lynch于2002年正…