初识51单片机

##江科大51单片机学习

什么是单片机???

  1. 单片机,英文名,Micro Controller Unit,简称MCU(tips:有人会简称它为CPU,但不是如此,CPU其实被集成在MCU中)。
  2. 内部集成了CPU,RAM,ROM,定时器,中断系统,通讯接口等一系列电脑的常用硬件功能。
  3. 单片机的任务时信息采集(依靠传感器),处理(依靠CPU)和硬件设备(例如电机,LED等)的控制。
  4. 单片机跟计算机相比,单片机是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。但在性能上,与计算机相差甚远,但单片机成本低,体积小,结构简单,在生活和工业控制领域大有所用。

单片机的应用领域:

1.智能仪表  2.实时工控  3.通讯设备   4.导航系统   5.家用电器   

在加上单片机之后,该设备由单片机控制,从而变的更加智能。

设备配置---普中51---实验板

  1. 单片机型号:STC89C52RC
  2. 所属系列为:51单片机系列
  3. 公司:STC公司
  4. 位数:8位(8bit)
  5. RAM(随机存储器):256字节  (性质:掉电就丢---工作中的工厂)  类似电脑的内存条
  6. ROM(只读存储器):64KB (Flash) 掉电不丢失---仓库   类似于电脑的硬盘
  7. 工作频率:12MHZ  (后面软件控制程序会用到)

所用到的软件程序:

1.Kell uVision5---用于底层代码编写

2.STC-ISP ---用于代码安装以及调试

对于MCU(单片机)上的标签解读

可以看到它整个为STC89C52RC 40I-PDIP 40 后面的为出厂编码

  1. 89:为系列 STC 12T/6T 8051
  2. C(这是第一个C) 工作电压 : 5.5V~3.8V
  3. 52:8K字节程序空间及512字节RAM空间
  4. 40:工作频率可达到40MHZ(赫兹)
  5. I:工作温度范围: 工业级: -40摄氏度-85摄氏度
  6. PDIP:封装类型  双电直插  插针
  7. 40:管脚数为40个

大体结构图:

具体细节图:

相关细节配件

  1. 中央处理器(CPU):CPU是8051体系结构的核心,主要负责执行程序指令,数据处理,中断处理等任务。程序的编写使用到C/C++语言或是汇编语言,通过编译器(Keil uVision)生成二进制可执行文件,然后通过下载工具(STC-ISP)将程序下载到STC89C52RC中。
  2. RAM:256字节的随机存储器。用来存储程序中的变量和中间结果。编程时,需要定义变量将器存储到RAM中,以便程序可以读写变量的值。
  3. ROM:64KB的Flash存储器,可以用来存储程序代码和数据。在编程时,需要将程序代码和数据存储到Flash中,使得单片机可以读取执行。
  4. 定时器/计时器(Timer):具有3个定时器/计数器;可以用来产生定时中断PWM波形输出等功能。在编程时,需要对定时器/计数器进行初始化配置,并编写中断服务程序来处理定时中断。
  5. 串口(UART):具有一个串口,可以用来进行与外部设备的通信,编程时,需要对串口进行初始化配置,并编写发送和接收函数来进行数据传输。
  6. I/O口:可以用来连接各种外部设备,如LED,LCD,按键,传感器等。在编程时,需要对I/O口进行初始化配置,并编写I/O口的读写函数来控制外部设备的状态。
  7. 中断控制器(INT):具有中断控制器;可以用来管理各种中断源和中断服务程序;编程时,需要对中断控制器进行初始化配置,并编写中断服务程序来处理中断事件。

STC89C52系列单片机最小应用系统

 

对此有:VCC为正极  Gnd为负极---这个图我们是要去记忆的 

我有一个记忆法:左为1,3往下增;右为 0,2--0下加,2上加。

在了解单片机的初始构造后,我们来进行第一次的编辑吧。

1-1 点亮一个LED:

首先,我们了解一下,何为LED?

LED是何物?

  1. 中文名:发光二级管
  2. 外文名:Light Emitting Diode--->即为LED
  3. 简称:LED
  4. 用途:照明,广告灯,指引灯,屏幕(优点:省电,亮度高)

  (画的图有点丑哈)

这里我们可以看到,中间的为D1-D8的LED灯就为下图所示

在左边我们可以看到,有P20-P27这些引脚,它们其实与MCU对应处相连接。

在LED灯左边的为VCC---正极。

那么,为何我要讲这个呢?

因为,LED其实是一个会发光的二极管,那么正极接正极时,负极接负极时则LED便可以发光;那么如果我们将一处接反了,则LED不可能再发光了。是的,这个就是我们的理论基础。

对单片机来说,是TTL型即 5V为正极 高电频  0V 为负极 低电频。

 MCU(单片机)里面有CPU(中央处理器)--->寄存器--->驱动器--->引脚

寄存器(8位)里面可以存储二进制数,1可以被驱动器为高电频,0可以被驱动器为低电频;寄存器控制驱动器,来增大驱动能力。那么,我们想要二极管发光,只需要在我们想要发光的二极管所对应的寄存器的对应空间来设置为0,即可让对应的二极管发光,其它的二极管设置为1即可为熄灭。

Tips:CPU通过控制配置寄存器,来控制硬件电路来执行我们想要完成的功能。

使用Keil uVision

首先在桌面创建一个文件夹称为Keilproject,然后再创建一个文件夹叫为1-1点亮一个LED。

具体细节,请观看Keil uVision的文件创建和使用

#include <REGX52.H>
//引入头文件,使得P2该寄存器被定义void main()
{P2=0xFE;// 1111 1110while(1){}
/*这里P2 的P大写,并且0x是16进制的前缀,不可省略。
FE 转化为二进制为 1111 1110 可以看到最后一个为0 
它对应着第一个LED灯,可以亮,其他是熄灭的状态。
}

只要while中()的不为0,其他整数都为真。

当我们码完了这些行代码,便可以进行下一步保存文件。

  1. 第一步:点击那个类似魔法棒的东西。
  2. 第二步:点击OutPut图标,来到现在此页面。
  3. 第三步:勾选住Creat Hex File---是为了创建HEX-80
  4. 第四步:点击OK,便创建成功。 

最后记得调试一下再下载给单片机。 

TC-ISP

这个软件是SCT公司针对其产品开发使用的。

那么,我们来具体使用。

后面,单片机可以的LED区的第一个灯便开始闪亮。至此,我们的第一个MCU(单片机)的第一次开发便成功了。

(Tips:一定要确定好型号,否则,单片机与我们的主机握手失败,单片机不能下载代码)

1-2 LED灯闪烁

基本创建流程和上图相同,便不再赘述。

我们来讲讲具体实现,相对于自己去写一个时缓代码,STC-ISP友好地提供了相应的代码,我们就不用再自己去造轮子了。

那么,我们来具体看看吧。

注意:8051指令集必须是STC-Y1,应为使用的型号适配这个。 

#include <REGX52.H>
#include <INTRINS.H> //引入该头文件,为的是nop()合法化
void Delay500ms()		//@12.000MHz
{unsigned char i, j, k;_nop_();i = 4;j = 205;k = 187;do{do{while (--k);} while (--j);} while (--i);
}void main(){while(1){P2=0xFE;Delay500ms();P2=0xFF;Delay500ms();}
}

最后,按照以上的顺序再次执行即可看到反复闪烁的LED灯了。

最后,感谢你的观看,谢谢。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat 学习之 Servlet

目录 1 Servlet 介绍 2 创建一个 Servlet 3 web.xml 介绍&#xff08;不涉及 filter 和 listener 标签&#xff09; 3.1 display-name 3.2 welcome-file-list 3.3 servlet 3.4 session-config 3.5 error-page 3.6 context-param 4 ServletContext 5 ServletConfig …

前后端分离vue.js+nodejs学生考勤请假系统 _fbo36

此系统设计主要采用的是nodejs语言来进行开发&#xff0c;采用vue框架技术&#xff0c;框架分为三层&#xff0c;分别是控制层Controller&#xff0c;业务处理层Service&#xff0c;持久层dao&#xff0c;能够采用多层次管理开发&#xff0c;对于各个模块设计制作有一定的安全性…

解决easyExcel模板填充时转义字符\{xxx\}失效

正常我们在使用easyExcel进行模板填充时&#xff0c;定义的变量会填充好对应的实际数据&#xff0c;未定义的变量会被清空&#xff0c;但是如果这个未定义的变量其实是模板的一部分&#xff0c;那么清空了就出错了。 在这张图里&#xff0c;上面的是模板填充后导出的文件&…

探索无限维度的奥秘:Hilbert空间

当我们提到空间&#xff0c;你可能会立即想到周遭的环境——三维世界&#xff0c;其中事物可以向上或向下、左或右、前或后移动。然而&#xff0c;在数学和物理学的世界里&#xff0c;有一种抽象的空间概念&#xff0c;它不仅覆盖了我们的三维空间&#xff0c;还包括了更复杂的…

【Java程序设计】【C00313】基于Springboot的物业管理系统(有论文)

基于Springboot的物业管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的物业管理系统&#xff0c;本系统有管理员、物业、业主以及维修员四种角色权限&#xff1b; 管理员进入主页面&#xff0c;主要功能包…

MATLAB 导出可编辑的eps格式图像

任务描述&#xff1a;部分期刊要求提交可编辑的eps格式图像&#xff0c;方便美工编辑对图像进行美化 我试了直接print或者在figure窗口导出&#xff0c;发现导出的文件放到Adobe AI中并不能编辑&#xff0c;经Google找到解决办法&#xff1a; %EPS exportgraphics(gcf,myVect…

jQuery瀑布流画廊,瀑布流动态加载

jQuery瀑布流画廊&#xff0c;瀑布流动态加载 效果展示 手机布局 jQuery瀑布流动态加载 HTML代码片段 <!-- mediabanner --><div class"mediabanner"><img src"img/mediabanner.jpg" class"bg"/><div class"text&qu…

【数据结构】图——最短路径

最短路径问题&#xff1a;从在带权有向图G中的某一顶点出发&#xff0c;找出一条通往另一顶点的最短路径&#xff0c;最短也就是沿路径各边的权值总和达到最小。 最短路径分为图中单源路径和多源路径。 本文会介绍Dijkstra和Bellman-Ford解决单源路径的问题 Floyd-Warshall解…

iMazing2024Windows和Mac的iOS设备管理软件(可以替代iTunes进行数据备份和管理)

iMazing2024是一款兼容 Windows 和 Mac 的 iOS 设备管理软件&#xff0c;可以替代 iTunes 进行数据备份和管理。以下是一些 iMazing 的主要功能和优点&#xff1a; 数据备份和恢复&#xff1a;iMazing 提供了强大的数据备份和恢复功能&#xff0c;可以备份 iOS 设备上的各种数据…

基于EasyCVR视频汇聚系统的公安网视频联网共享视频云平台建设思路分析(一)

随着社会的发展和科技的进步&#xff0c;视频监控系统在各个领域的应用越来越广泛&#xff0c;视频云平台建设已经成为了行业数字化转型的重要一环。公安网视频汇聚联网共享云的建设需要充分考虑技术、架构、安全、存储、计算等多方面因素&#xff0c;以确保平台的稳定性和可用…

[面试] 什么是死锁? 如何解决死锁?

什么是死锁 死锁&#xff0c;简单来说就是两个或者多个的线程在执行的过程中&#xff0c;争夺同一个共享资源造成的相互等待的现象。如果没有外部干预线程会一直阻塞下去. 导致死锁的原因 互斥条件&#xff0c;共享资源 X 和 Y 只能被一个线程占用; 请求和保持条件&#xf…

从Unity到Three.js(outline 模型描边功能)

指定模型高亮功能&#xff0c;附带设置背景颜色&#xff0c;获取随机数方法。 百度查看说是gltf格式的模型可以携带PBR材质信息&#xff0c;如果可以这样&#xff0c;那就完全可以在blender中配置好材质导出了&#xff0c;也就不需要像在unity中调整参数了。 import * as THRE…

说一下 JVM 有哪些垃圾回收算法?

一、标记-清除算法 标记无用对象&#xff0c;然后进行清除回收。 标记-清除算法&#xff08;Mark-Sweep&#xff09;是一种常见的基础垃圾收集算法&#xff0c;它将垃圾收集分为两个阶段&#xff1a; 标记阶段&#xff1a;标记出可以回收的对象。清除阶段&#xff1a;回收被标…

9.5K Star,又一款超棒开源轻量自动化运维平台

Hi&#xff0c;骚年&#xff0c;我是大 G&#xff0c;公众号「GitHub指北」会推荐 GitHub 上有趣有用的项目&#xff0c;一分钟 get 一个优秀的开源项目&#xff0c;挖掘开源的价值&#xff0c;欢迎关注。 一个好的运维平台就变得非常重要了&#xff0c;可以节省大量的人力和物…

网络原理 HTTP _ HTTPS

回顾 我们前面介绍了HTTP协议的请求和响应的基本结构 请求报文是由首行请求头空行正文来组成的 响应报文是由首行形影头空行响应正文组成的 我们也介绍了一定的请求头之中的键值对的属性 Host,Content-type,Content-length,User-agent,Referer,Cookie HTTP协议中的状态码 我们先…

流式存储音频/视频

目录 流式存储音频/视频 1.1 具有元文件的万维网服务器 1.2 媒体服务器 1.3 实时流式协议 RTSP 使用 RTSP 的媒体服务器的工作过程 流式存储音频/视频 “存储”音频/视频文件不是实时产生的&#xff0c;而是已经录制好的&#xff0c;通常存储在光盘或硬盘中。 传统浏览器…

以程序员的视角,看前后端分离的是否必要?

Hello&#xff0c;我是贝格前端工场&#xff0c;本篇分享一个老生常谈的话题&#xff0c;前后端分离是必然趋势&#xff0c;但也是要区分具体的场景&#xff0c;欢迎探讨&#xff0c;关注&#xff0c;有前端开发需求可以私信我&#xff0c;上车了。 一、什么是前后端分离和不分…

C# OpenCvSharp DNN Image Retouching

目录 介绍 模型 项目 效果 代码 下载 C# OpenCvSharp DNN Image Retouching 介绍 github地址&#xff1a;https://github.com/hejingwenhejingwen/CSRNet (ECCV 2020) Conditional Sequential Modulation for Efficient Global Image Retouching 模型 Model Properti…

css中选择器的优先级

CSS 的优先级是由选择器的特指度&#xff08;Specificity&#xff09;和重要性&#xff08;Importance&#xff09;决定的&#xff0c;以下是优先级规则&#xff1a; 特指度&#xff1a; ID 选择器 (#id): 每个ID选择器计为100。 类选择器 (.class)、属性选择器 ([attr]) 和伪…

C语言每日一题(61)盛最多水的容器

题目链接 力扣 11 盛最多水的容器 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水…