2.1.1.1-单片机基本理解
很长一段时间以来在word上记了一些笔记,但却一直没能回头复习。再三斟酌,决定将笔记以博客的形式写出来,并借此机会对所学内容进行一次复习,我想应该不用太多时间就能搬运完。
C语言基础将从单片机开始写,直接学习C语言未免过于乏味,但如果通过C语言在单片机上的应用来间接学习C语言,就能让理论与实际充分结合,达到事半功倍的效果。
单片机可以做什么
单片机:CPU、存储器、IO接口、定时器集成到一个硅片上,具有小而完整的微型计算机系统。
单片机使用灵活,经过二次硬件和软件开发,实现不同功能,满足不同需求。
硬件工程师:根据单片机资源设计硬件电路、原理图设计、PCB绘制、硬件功能调试。
软件工程师:单片机C语言基础、程序开发环境、程序的烧录、软件功能调试与测试。
单片机资源有哪些
STC15W104接口资源介绍:
名称 | 资源数量或大小 | 资源作用 |
---|---|---|
工作电压 | 2.4-5.5V | |
程序空间(FLASH ROM) | 4K=4096bytes | 用于存储单片机代码(code) |
SRAM | 128bytes | 用来存储单片机代码中的变量(变量的定义不能大于128字节) |
EEPROM | 1K | 具有掉电保存功能 |
IO | 6个,P3.0-P3.5 | 单片机的输入输出端口。对于AT89C52芯片,P0.0-P0.7、P1.0-P1.7、P2、P3 |
定时器 | 2个 | 精准定时。电子时钟->定时器。 |
串口 | 串口是单片机与外部设备通讯的重要接口。芯片与芯片之间通讯。例WIFI/蓝牙/4G | |
ADC | 稍高端的单片机集成。模拟的实际电压转成数字信号。普通IO接口只识别高低电平,有ADC的IO可识别模拟电压。 | |
DAC | 通过端口输出一个模拟电压。普通IO只输出高低电平,DAC可输出一个模拟电压(0-VCC)的一个任意电压。 | |
SPI/IIC(串行协议) | 都是标准通讯接口。一般用于实现芯片之间通讯。I2C和SPI总线对比 | |
看门狗 | 用来防止代码程序死机与非正常运行。 |
进制的介绍与转换
最小储存单元为bit(比特),存0和1
8个储存元组成1Byte(字节)
二进制:单片机单个IO的配置,使用少,一般用16进制表示。
1 | 表示方法:b00100011 |
十进制:一般使用于单片机算术计算,逻辑计算。
1 | 表示方法:35 |
十六进制:寄存器配置、运算。
1 | 表示方法:0x23 |
C51点亮第一个LED灯
1 | 任务: 点亮无线门磁探测器的LED1 LED2 |
点亮LED灯有以下步骤
STC15W104 工程新建
STC15W104 生成烧录文件
HEX为单片机可识别的文件STC15W104 单片机烧录方法
冷启动烧录:先下载程序再供电
热启动烧录:供电情况下烧录程序点亮LED灯
单片机的高低电平:
1 | 低电平:GND # 低压0V |
单片机的普通IO口只能输出高电平或者低电平:
1 | IO=0 则单片机的IO口输出低电平 0V |
具体操作步骤:
- 安装烧录接口驱动
- 在STC-ISP的“keil仿真设置”中点击“添加型号和头文件到keil中”,选择keil_C51所在文件夹
- 在keil中新建new project,设置项目文件夹与项目文件名,选择项目用到的芯片,建立项目
- 创建主函数文件main.c,并将之加入到project中,再继续编写main.c文件,添加头文件,将头文件修改成使用的型号,型号在keil目录中的INC文件夹中可以找到。
- 编写好主函数之后,点击option for taget,选择output选项卡,点击编译,生成HEX文件。
- 然后回到STC-ISP中,选择芯片,选择烧录器的串口,选择工作晶振频率5.5296Mhz,导入程序文件,连接烧录器和无线门磁探测器,再冷启动烧录。
关于延时函数:nop()函数存在于头文件#include "intrins.h"中,表示一个机械周期,一个机械周期包含12个时钟周期,一个时钟周期的时长为晶振频率的倒数。1个机械周期 = 12个时钟周期 = 12 * (1/f)。(f 为晶振频率)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 MagicConch's Blog!
评论
GiscusLivere