视频内容来自哔哩哔哩-【单片机】PIC单片机F877A视频教程(郭天祥)
1、简介
本视频使用的单片机是PIC16F877A
(公司用的的dsPIC33FJ128GP306)
dsPIC33——16位单片机
中档产品仅有35条汇编语言——意外之喜
哈佛总线结构、RISC——因为其指令与数据是分开存储的,所以PIC的信息处理比较快,可以在执行上一条指令的同时,取下一条指令。
SFR——特殊功能寄存器。包括PIC的动作状态,I/O输入输出的状态,和其他各类程序动作的状态
GPR——General Purpose Registers,13位后的20H-7FH部分,用于寄存程序运行过程中的中间数据、中间状态以及最总结果等
系统重置后,引脚全部默认为输入(输出高阻态)
PSP——Parallel Slave Port,并行传输区
volatile——易变的
方向控制寄存器——TRISA~E,0:表示输出,记为Output;1:表示输入,记为Input(
复位值为0xFF)
D7
D6
D5
D4
D3
D2
D1
D0
数据寄存器——PORTA~E,0:表示输出低电平;1:表示输出高电平
每个端口允许最大
25mA的灌电流和
20mA的拉电流,可以直接驱动LED和继电器。
因每个端口的结构不同,RB口提供的总灌电流和拉电流可大150mA和100mA,其他端口为80mA和50mA。
五个端口驱动电流之和不大于
200mA
TRISn始终控制着PORTn的输入输出方向
2、LED和数码管
ULN2003——反向达林顿(输入高输出低),最大500mA的电流
数码管的动态显示——人眼的视觉暂留
3、LED or 数码管配合按键
按键的软件去抖——延时10ms
配置 TRISE=0;//端口全部为输出
读 if(RB0==0)
写 PORTD=0x01;//PD0输出高电平,其他输出低电平
8、定时器
4个时钟为一个机器周期,预分频器——把机器周期再分频——为了延长定时器的计时时长
与定时器TMR0相关的寄存器:
选项寄存器 OPTION_REG
中断控制寄存器 INTCON
本次不用
RBPU
INTE
DG
T0CS
T0SE
PSA
PS2
PS1
PS0
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
注意:TMR0IF
Note: Interrupt flag bits are set when an interrupt condition occurs regardless of the state of its corresponding enable bit or the global enable bit, GIE (INTCON<7>). User software should ensure the appropriate interrupt flag bits are clear prior to enabling an interrupt
TMR0寄存器——Timer0 Module Register,是一个8位累加计数寄存器,这个不需要用户关心,是自动累加用的
8、TMR1