PIC单片机学习笔记

2019-04-15 11:59发布

视频内容来自哔哩哔哩-【单片机】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