郭天祥 十天搞定单片机 (1)基础知识和点亮发光二极管
把手伸向了经典之作郭天祥。这个教程2018年就买了,一直没有学完。写学习笔记就要督促自己好好学习!
- 什么是单片机
在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。
- 51 单片机
Intel, MCS-51系列,集成8位CPU,4K ROM,128K RAM,4个8位并口,1个全双工串行口,2个16位定时/计数器。寻址范围64K,并又控制功能较强的布尔处理器。
- 电平特性
单片机用的是TTL电平,高 +5V,低 0V ; 计算机的串口, RS232电平,高 -12V,低 +12V。所以在计算机和单片机通讯时(烧录软件)要添加转换芯片max 232
- 二进制的逻辑运算
- 与,符号·,&
- 或,符号+,|
- 非,符号:上面一横
- 异或:符号⊕,相同为0,不同为1
- 80C51系列介绍
80C51是MCS-51系列中的经典品种,其他厂商以8051为基核开发的都叫80C51系列。试验板是
STC89C52RC40C-PDIP0721CV4336
STC: 厂商
89:89系列
C:CMOS工艺
52:51,54,55,58,516,5后面代表程序存储空间大小,2*4K=8K
40: 所能支持的晶振的最高频率是40M Hz
C: commercial, 商业级,还有I,industrial,工业级
DIP:封装格式
P-DIP:双列直插式
0721:07年第21周生产
- 总线型和非总线型:总线型可以看到P0,P1,P2。。。每组都有8位
- 看P3口的接口定义
- 8051的内部结构
- 总线:分为内部总线和外部总线,外部总线三种:数据总线DB,地址总线AB,控制总线CB
- CPU:由运算和控制逻辑组成,还包括中断系统和部分外部特殊功能寄存器
- RAM:存放可以读写的数据
- ROM:存放程序和原始数据
- C51语言中的基本数据类型
- 有无符号:有符号的数,最高位是符号位,1为负数,0为正数
- 浮点型:float,
SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM
S 代表符号位,标E的位,表示E后面的数字,M表示前面的数字
- Double:
SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM
- C51的数据类型扩充定义
- Sfr: 特殊功能寄存器声明
- Sfr16: sfr的16位数据声明
- Sbit: 特殊功能位声明
- Bit:位变量声明
- 例如:sfr SCON=0X98;
- Sbit OV=PSW^2; //把PSW寄存器的第二位定义为OV,以后想操作这个位时使用OV就可以了
- C51包含的头文件
- 通常有reg51.h, reg52.h, math.h, ctype.h, stdio.h, stdlib.h, absacc.h
- 常用的有reg51.h, reg52.h 定义特殊功能寄存器和位寄存器; math.h, 定义了常用的数学运算
- 使用时写#include<reg51.h> (例子)就可以了
- C51的运算符
- 基本的加减乘除、大于小于
- &&逻辑与
- ||逻辑或
- !逻辑非
- >> , << 位右移,位左移 (用0来补空位,还有一个循环右移、循环左移)
- & 按位与
- | 按位或
- ^ 按位异或
- ~按位取反
- C51的基本语句
- If
- While
- for
- Switch/ case
- 中断服务程序
- I/O口定义
- 单片机最小系统能运行起来的条件:电源;晶振;复位电路(程序从头运行)
- 每个C语言文件至少有一个main函数, void main() {}
- 学习目标
- 对单片机的I/O口进行操作
- 定时器的用法
- 中断:外部中断,定时器中断;串口中断
- 串口通信:单片机之间,单片机和计算机之间
- 电路图绘制软件:altium Designer
- 参考书:C语言,单片机C语言。。。
- Keil软件的使用
- 先新建一个project
- 选择使用的芯片, Atmel 89C52
- 新建一个file
- 保存,注意保存为.c的后缀
- 选择target1 下,点击source group, 右键,选择 add file to source group
- 编写程序
- 位操作方法
- 总线操作方法
想要第二个灯亮,就是第二个为0,从7位到0位依次是1111 1101, 写成16进制就是fd
- 编译
- 选择生成hex文件,再编译就会生成hex文件,这个就是烧录的软件
- 这个单片机支持串口下载程序,要用STC_ISP来烧软件
- 打开软件后,修改使用的芯片,串口号,波特率,打开hex文件
- 下载程序要“冷启动”,即先下载软件,再上电
- 看电路原理图
- 限流电阻的计算
- 锁存器的使用:
- DIOLA可以看到是从89C52连出来的
- 查看芯片手册有真值表
- L表示低电平,H表示高电平,X表示任意,Z是高阻态,介于高低电平之间,Q0是上一次的值
- 之所以用一个锁存器,是为了防止发光二极管闪烁
总结
以上是生活随笔为你收集整理的郭天祥 十天搞定单片机 (1)基础知识和点亮发光二极管的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 《《《翻译》》》avod 三维生成与目标
- 下一篇: 《九阴真经:iOS黑客攻防秘籍》新书发布