目录
1. 供电口:
VCC::电源正极
GND:地,可暂时理解为电源负极(地:人为定义的0V电势(电压))
VDD:新手可理解为VCC,而其实它们二者的表示含义差距很小,大多使用在不同对象上
VSS:地,和VDD概念差不多,就大体来说是换个名字
2. TTL电平:
单片机是处理电信号的击成 芯片(MPU),基本上就是缩小版的CPU。大家都知道计算机是只能接收和输出0和1,这0和1就是TTL电平,也叫作电信号。它输出0的方式就是输出0V电压(俗称低电平),而输出1的方式就是输出除0V电压以外且大于0的电压(俗称高电平)
例如:某个单片机正常工作电压是2.6~6.4V,就是VCC口接的最大直流电压。假设我接5V直流电,则0V就是0,5V就是1
3. IO(点灯口):
输入输出口(input / output),就是输入/输出0和1的接口,是最普通的输入/输出口。
IO口的工作模式新手可暂时不用完全掌握有个了解便可,在使用51单片机时注意,P0(ADC)默认是开漏输出(只能直接输出0V),如果需要使用P0点灯则需要上拉电阻
上拉输入(IPU) | 下拉输入(IPD) |
开漏输出(OUT_DD) | 推挽输出(OUT_PP) |
浮空输入(IN_FLOATING) | 模拟输入(AIN) |
复用开漏(AF_OD) | 复AF_PP) |
4. 中断(Extern System):
开小差系统。在写作业时不能被干扰,但是来了电话,则接电话的那一瞬间就是跳入中断。在程序中就是一个特殊的函数来实现。有一个函数是在main函数中不需要重复执行的,但是有特殊情况时又需要执行这个函数,则这个函数就被称为中断服务函数。
STC89C51单片机仿真为例:
// STC8951单片机为例
#include <REGX51.H>
void EXTI0_Init(void);
int main(void)
{
EXTI0_Init();
P2_0 = 0; // 点亮LED1
while (1)
{
}
}
// 有interrupt x 的才为中断服务函数
void EXTI0_IRQHandler(void) interrupt 0
{
P2_0 = ~P2_0; // ~取反 就是进一次此函数则LED1的电平反转一次
}
// 初始化外部中断
void EXTI0_Init(void)
{
IT0 = 1; // Falling edge trigger
IE0 = 0; // Extern Interrupt flag
EX0 = 1; // open Extern Interrupt
EA = 1; // open all Extern Interrupt
PX0 = 1; // priority
}
5. 时钟(晶振):
上图仿真电路有晶振电路(有C1和C2那个)
单片机的手表 ,单片机对外界时间的把握,是程序运行的底层,每条语句的执行都依赖时钟,相当于一个针把珠子(c语句)窜起来。
晶振:单片机运行快慢的评判标准,单位是Hz,值越大,单片机运行越快。(一般12MHz的晶振比4MHz的快)
6. flash寄存器和.hex文件 :
flash是存放程序的寄存器,我们所写的程序就会被下载进flash中。在flash中存储的文件是.hex文件,所以在编译程序时需要勾选生成.hex文件。
① 寄存器:
开关控制器,所有对单片机的操作都是对里面的寄存器发出指令,大白话就是控制里面的开关,选择单片机中的电路(定时器电路,计时器电路,外部中断电路,定时器中断电路,唇口等)
看门狗:
死机重启,如果用户电路卡死就会被看门狗强行复位(重新运行用户程序)
7. 复位(RES / R):
上图仿真电路有晶振电路(有C3那个)
重新运行程序,电路设计时一般连VCC,突然置低点平便可重新运行程序(复位)
水平提升:
while,for,if,switch,相信已经娴熟运用了,那指针传参,结构体使用,结构体传参,结构体指针传参,模块化编程(多开.c文件)等,要不了解一下?
作者希望所有读者能够坚持学下去,发现其中乐趣!敬请期待...