讲稿1.docx
- 文档编号:24376573
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:27
- 大小:1.11MB
讲稿1.docx
《讲稿1.docx》由会员分享,可在线阅读,更多相关《讲稿1.docx(27页珍藏版)》请在冰豆网上搜索。
讲稿1
<
前言
课程目的:
本课程围绕PIC18Fxxx微处理器,介绍PIC单片机系统的前沿发展趋势,介绍其设计方法,使学生学会PIC单片机应用系统的硬件开发和软件编程技术。
课程采用讲课与实验相结合的方式。
着重培养学生的实际动手能力,通过熟悉开发环境与开发流程、编程实践等实验,使学生能够掌握PIC单片机应用系统设计的基本方法。
学生基础:
学过C语言、微机原理、51单片机等
课程计划:
36学时理论18(分为4章介绍)实践18(主要3个综合实验)
考核方式和评分标准;
平时(占10%)
作业及实验(占40%
期末笔试(50%)
第一章概述
PIC单片机的诞生
1989年,Microchip公司成立之后生产出第一款8位单片机至今已跃居8位单片机年出口量全球第一。
主要原因:
高度的稳定性及可靠性
抗干扰能力强
1.1PIC单片机的分类
1.2PIC18F系列单片机的特点
本课程的介绍以PIC18FXXX系列为主,芯片采用16位RISC指令集,芯片内部含有丰富的外部接口功能。
一、高性能RISCCPU
1.哈佛总线结构
PIC18F系列单片机的程序、数据和堆栈三者各自采用互相独立的地址空间
2.2MB的程序存储器
PC为21位宽,最大可寻址221=2MB
000000H~1FFFFFH
3.4KB的数据存储器
使用SRAM,用12位地址寻址
可以访问212=4KB空间000H~FFFH
4.执行速度高达10MIPS
哈佛总线结构和指令流水线机制
5.DC~40MHz时钟输入
6.4~10MHz带PLL锁相环有源晶振/时钟输入
7.16位宽指令,8位宽数据通道
8.指令特色
●寻址方式简单
–寄存器间接寻址、立即数寻址、直接寻址和位寻址
●指令数少
–PIC18FXX8单片机只有58条指令
9.带优先级的中断
–高优先级中断向量——000008H
–低优先级中断向量——000018H
10.8×8单周期硬件乘法器
–提高了计算能力
–减少乘法运算法则所需代码长度
二、外围功能模块特性
芯片内部含有10位ADC、内部EEPROM存储器、比较输出、捕捉输入、PWM输出、I2C和SPI接口、CAN接口、USART、Flash程序存储器读/写等强大功能。
1.3开发工具
Microchip公司为用户提供了完善的软硬件支持,软件包括MPLABIDE集成开发环境及MPLABC18编译器,硬件包括在线调试器ICD2和目标板。
1.418Fxx系列芯片选型
第2章PIC18FXXX单片机基本结构与功能
2.1基本组成与外部引脚
PIC18FXXX系列封装形式
结构框图
2.2振荡器结构
系统的正常运行需要时钟的支持,18F系列单片机4个系统时钟产生一个指令时钟,即指令周期是系统时钟的4倍。
两套时钟输入管脚:
OSC1和OSC2(系统时钟输入)
T1osc和T2osc(实时时钟)
提供8种不同的时钟配置模式,使得设计灵活,满足不同需求。
例如:
RC模式可以降低成本
LP模式可以降低系统功耗
HS4可以降低高速晶振带来的电磁干扰
1.振荡方式
(由振荡器选择位FOSC2、1、0决定)
●LP—低功耗晶体振荡器方式
●XT—晶体/陶瓷振荡器方式
●HS—高速晶体/陶瓷振荡器方式
●HS4—带PLL使能的高速晶体/陶瓷振荡器方式
●RC—阻容振荡器方式
●RCIO—带I/O引脚使能的外部阻容振荡器方式
●EC—外部时钟方式
●ECIO—带I/O引脚使能的外部时钟方式
配置寄存器:
位
7:
6
5
4:
3
2
1
0
功能
-
OSCSEN
-
FOSC2
FOSC1
FOSC0
OSCSEN:
系统时钟开关使能位
1:
时钟切换被禁止,主振荡器作为时钟源
0:
振荡器切换使能
FOSC2-FOSC0:
振荡器选择位
例如:
111:
RC
110:
HS4
101:
EC
2.晶体/陶瓷振荡器方式
LP、XT、HS、HS4方式
OSC1:
振荡器晶体输入引脚
OSC2:
振荡器晶体输出引脚
3.RC振荡器(RC/RCIO)
适用场合:
成本低、对定时器要求不是很高的场合
RC振荡器的频率和哪些因素有关:
电源电压VDD、振荡电阻、电容C、工作温度等
说明:
–RC方式下,振荡频率可通过OSC2引脚4分频输出
–若不需4分频输出Fosc,推荐采用RCIO,以节省电流
4.外部时钟输入(EC/ECIO)
●相同:
–OSC1接外部时钟
●区别:
–EC振荡频率可通过OSC2引脚4分频获得
–ECIOOSC2变成一个附加的通用I/O脚
5、HS4方式
●作用:
–通过锁相环设定时钟频率为晶振频率的4倍
●条件:
–ConfigurationBits配置为HS时,锁相环电路才可以使能
–否则系统时钟直接来自于OSC1
6、振荡器转换特性
1.怎样转换?
–在系统与TMR1之间进行
2.条件:
–低频晶振连至定时器TMR1振荡器引脚
–TMR1的振荡器使能
3.注意:
–单片机擦除后,时钟转换功能被禁止
位
7:
6
5
4:
3
2
1
0
功能
-
-
-
-
-
SCS
由软件控制
OSCCON寄存器的系统时钟转换位SCS
SCS=0系统时钟源来自主振荡器
SCS=1系统时钟源来自TMR1的振荡器
注意:
–任何复位都会使SCS清零
–转换系统时钟源时,定时器TMR1的振荡器必须使能T1OSCEN=1
–转换系统时钟源时,振荡器转换使能位OSCSEN为0
2.3复位系统
多种复位系统:
1.上电复位POR(PowerOnReset)
2.人工复位
–在MCLR引脚加入一个低电平信号
3.正常状态下,WDT超时溢出复位
4.可编程掉电锁定复位(PBOR)
5.RESET指令复位
6.堆栈上溢出/下溢出复位
●上半部分电路
–负责产生复位锁存器的S信号,即负责在复位锁存器的/Q端送出低电平
●下半部分电路
–负责产生复位锁存器的R信号,即负责在复位锁存器的/Q端送出高电平
(一)上电复位(POR)
当芯片供电电源电压VDD上升到一定值时,即产生一个上电复位脉冲
(二)/MCLR复位
(三)上电延时定时器PWRT
●可用于上电过程中电源电压上升过慢的情形
●工作于一个独立的RC振荡器,并提供约72ms的延时时间
●一旦开启PWRT,芯片检测到上电复位后将使芯片持续保持在复位状态,直到定时结束。
(四)起振定时器OST
●针对外部晶体振荡模式,即芯片配置为LP、XT或HS模式
●当上电复位延时结束后,芯片并没有马上脱离复位状态,而是开始对外部的振荡波形进行脉冲计数,直到计满1024个振荡波形后,芯片才真正结束整个复位过程。
(五)PLL锁相延时
●当PLL使能时,才有锁相延时
●作用:
–提供一个足够PLL锁定到主振荡器频率的固定时间
●PLL锁相延时时间的典型值为2ms,紧跟在起振定时之后
(六)掉电锁定复位
●可以为单片机提供电源跌落的预警信号
–一旦发现VDD下降到某一个门槛值,就使单片机及时复位以免系统失控
●门限电压VBOR是在芯片设计时固定的,典型值4V左右,一般3.8V~4.2V
●PIC18系列的BOR模块判别门限电压是可编程的(PBOR)
●一旦VDD 位 7: 6 5: 4 3 2 1 0 功能 - - BORV1 BORV0 BOREN PWRTEN BORV1-BORV0: 欠电压复位电压值 11: 2.0V 10: 2.7V 01: 4.2V 00: 4.5V BOREN: 欠电压复位使能位 1: 使能 0: 禁止 PWRTEN: 上电延时定时器使能 1: 禁止 0: 使能 2.4硬件乘法器 PIC18F单片机: 内嵌一个8*8的硬件乘法器 可以在一个指令周期内完成8*8无符号数乘法运算,结果保存在一个16位的寄存器里(PRODH: PRODL),不影响状态寄存器ALUSTA的标志位 优势: 提高计算能力减少代码量 例如: 一个8*8无符号数乘法的例子 MOVFARG1,W MULWFARG2 2.5存储器系统 ☐Flash程序存储器 ☐数据存储器 ☐EEPROM数据存储器 为何在单片机内要同时集成这两种存储器呢? 分析: EEPROM比Flash读写次数更多,寿命更长。 Flash比EEPROM的存储单元结构简单,造价低廉,占用硅片面积小,便于集成大容量。 Flash存储器适合烧写那些改动不太频繁的用户程序或参数 EEPROM存储器适合存储那些经常变动而掉电又不能丢失的数据 数据存储器和Flash程序存储器采用分离的总线结构,因而可以同时被访问。 1.程序存储器结构 包含: 堆栈空间中断入口程序空间 2.堆栈 ☐特点: 31层×21位的独立空间 用一个5位长度的堆栈指针进行操作 ☐STKPTR——堆栈指针寄存器 STKPTR寄存器包含: 堆栈指针值、堆栈满状态位和堆栈下溢出状态位 位 7 6 5 4 3 2 1 0 功能 STKFUL STKUNF - SP4 SP3 SP2 SP1 SP0 STKFUL堆栈满标准位 0: 堆栈满 1: 堆栈未满 STKUNF堆栈下溢出标志位 0: 堆栈下溢 1: 堆栈未下溢 SP4: SP0堆栈指针值 说明: 堆栈指针的值可以为0~31 所有复位之后,堆栈指针都将被初始化为00000b 压栈时堆栈指针增加,弹栈时堆栈指针减少,复位时堆栈指针为0 用户可以读写堆栈指针的值 堆栈指针00000b无对应的RAM,只是复位的默认值 堆栈上溢出和堆栈下溢出 (1)堆栈上溢出 当压栈到31次时,即STKPTR=31 STKFUL将置1 堆栈溢出使能位STVREN 1: 使芯片复位。 复位后STKFUL仍为1,STKPTR的值为0 0: 在第31次压栈时,STKFUL=1。 但不会使芯片复位,STKPTR=31 (2)堆栈下溢出 当弹栈次数足以使堆栈清空时,STKUNF将置1 在STVREN使能的情况下,下一次弹栈将向PC返回0同时使STKUNF置位,然后芯片复位。 STKPTR=0 堆栈上溢出和下溢出复位取决于STVREN 0: 则发生上溢出和下溢出时将使STKFUL和STKUNF置位,但不会使芯片复位 1: 则发生上溢出和下溢出时将使STKFUL和STKUNF置位,然后使芯片复位 STKFUL和STKUNF只能通过上电复位或软件清除 3.程序计数器PC 作用: 用于存放下一条将要执行的指令地址 宽度: 21位,需要3个8位的寄存器存放 PCL可以通过指令直接读写,PCH不能直接读写,需要通过PCLATH寄存器,PCU也不能直接读写,需要通过PCLATU寄存器。 ROM中指令存放形式: 程序存储器以字节为地址单位 一条指令在程序存储器中占2或4字节 ⏹绝大部分为单字指令 ⏹双字指令的操作码只有4个: ⏹MOVFF、CALL、GOTO和LFSR PC在程序存储器中按字寻址 ⏹若当前为单字指令,下一条指令的PC为PC+2 ⏹若当前为双字指令,下一条指令的PC为PC+4 一条指令的最低有效位总是存储在程序存储器的偶地址中 指令周期及指令流水线 时钟周期最基本的时序单位 单片机的OSC1引脚产生的时钟信号,经内部时钟4分频之后,形成4个不重叠的方波信号Q1~Q4指令周期,一个指令周期内部包含4个时钟周期。 5.数据存储器结构 用12位地址进行寻址,可以访问4KB空间(000H~FFFH): 248/448000H~2FFH768B 448/458000H~5FFH1536B 整个RAM区分成16个Bank(0~15): 每个Bank为256B 利用BSR<3: 0>选择Bankn(直接寻址) 12位RAM地址的形成: (1)利用BSR 格式: MOVLBK 操作数: K∈[0,255] 功能: K→BSR 例如: MOVLB0X35 结果: BSR=0X35(Bank5) (2)利用指令MOVFF实现 格式: MOVFFfs,fd 操作数: [000h,FFFh] 功能: (fs)→fd 双字双周期指令 可以实现片内RAM单元之间的数据传送 通用寄存器GPR: 248/448060H~2FFH 258/458060H~5FFH 特殊功能寄存器SFR: 主要分布在Bank15 6.数据存储区的间接寻址 (1)FSR——文件选择寄存器 实际上是指向RAM区域的一个指针 FSR寄存器有3组: FSR0: FSR0H和FSR0L FSR1: FSR1H和FSR1L FSR2: FSR2H和FSR2L (2)INDF寄存器组 INDF0、INDF1和INDF2 它们不是物理寄存器: INDF寄存器在单片机内没有真正的存储空间,它仅仅是一个假想的、不存在的寄存器单元 当寻址INDF时,实际上是访问以FSR内容为地址的RAM单元 说明: 通过FSR,可对INDF间接读/写: 读INDF寄存器,结果为00H写INDF寄存器,将是空操作 读/写INDF寄存器组的结果均将启动间接寻址,即把相应FSR寄存器中的值作为RAM的地址使用 NDF与FSR配合使用 当一条指令向INDF0寄存器写入数值时,该值将被写入到由FSR0所指向的RAM地址单元。 同理当对INDF0进行读操作时,是把FSR0所指定的RAM地址单元中的内容读出来。 FSR是一个地址指针,在执行指令的过程中,其值可以改在实际运用中,除了INDF外,还有4个地址寄存器与FSR密切相关: INDFn间接寻址后FSRn寄存器不改变 POSTDECn间接寻址后FSRn寄存器自动减少 POSTINCn间接寻址后FSRn寄存器自动增加 PREINCn间接寻址前FSRn寄存器自动增加 PLUSWn间接寻址后不改变W和FSR寄存器的值 应用实例: movlw0x05;Valuetocompare lfsrFSR1,0x000;SetFSRtofirstRAMlocation LOOPclrfPOSTINC1;Clearlocation,incrementFSR1 cpfsgtFSR1H;FSR1H>5? gotoLOOP;NO,loop : ;YES,nextinstruction 第3章中断系统 3.1中断系统简介 中断矢量有2个入口地址: ⏹高优先级中断矢量000008H ⏹低优先级中断矢量000018H 中断源: ⏹基本中断源或内部中断源 ⏹特殊中断源或称为外部中断源 内部中断源: INT0、INT1和INT2引脚上的外部中断,TMR0溢出中断,PORTB端口电平变化中断 外部: TMRI/TMR3溢出中断,TMR2匹配中断,CCP模块中断,主控同步串行口中断,A/D转换中断,USART发送/接收中断。 13个控制寄存器: 1.中断控制寄存器INTCON、INTCON2和INTCON3 2.外围模块中断请求寄存器PIR、PIR2、PIR3 3.外围模块中断使能寄存器PIE、PIE2、PIE3 4.外围模块中断优先级寄存器IPR、IPR2和IPR3 5.复位控制寄存器RCON 说明 1.每个中断源都有3个位来控制它的操作 标志位: 表明有中断发生TMR0IF 使能位: 允许响应中断TMR0IE 优先级位: 选择中断优先级的高低TMR0IP 2、高优先级的中断源可以中断低优先级的中断 在一个中断被响应后,中断总使能位被清0 ⏹当IPEN=0时,就是清GIE位 ⏹当IPEN=1时,就是清GIEH和GIEL位中的一个 3、中断响应过程: 某一中断源发出中断请求后,置位中断请求标志位,向CPU提出中断申请,单片机查询到中断标志位后,如果该中断使能,CPU将暂停当前程序而转向该中断服务程序,进入中断服务程序之前,CPU必须在现行指令执行完毕后,将断点地址压入堆栈。 保护现场和断点,转入中断服务子程序: ⏹查清发出中断请求的具体中断源 ⏹清除相应的中断请求标志位 中断处理完毕后,恢复现场和恢复断点。 3.2中断控制寄存器 1.中断控制寄存器INTCON 2.中断请求寄存器PIR 3.中断使能寄存器PIE 4.中断优先级寄存器IPR 5.复位控制寄存器RCON 1.中断控制寄存器INTCON 可读/写寄存器,含有各种使能位、优先级和标志位 ⏹INT0、INT1和INT2外部中断 ⏹TMR0溢出中断 ⏹PORTB端口电平变化中断 有3个: INTCON,INTCON1,INTCON2 GIE/GIEH IPEN为0: 选择GIE全局中断使能位 IPEN为1: 选择GIEH高优先级中断使能位 PEIE/GIEL IPEN为0: : 选择PEIE外设中断使能位 IPEN为1: : 选择GIEL低优先级中断使能位 RBIE: RB端口电平变化中断使能位 RBIF: RB端口电平变化中断标准位,RBBit7~4的输入电平一旦有变化,就将标志位RBIF置1 TMR0IE: TMR0溢出中断使能位 TMR0IF: TMR0溢出中断标志位 INT0IE: INT0外部中断使能位 INT0IF: INT0外部中断标志位 2、RCON寄存器介绍 位 7 6 5 4 3 2 1 0 功能 IPEN IPEN——中断优先级使能位 1使能 0禁止 其他位与复位控制相关 3、PIE寄存器介绍 位 7 6 5 4 3 2 1 0 功能 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE PSPIE: 从并口读写中断使能位 ADIE: ADC中断中断使能位 RCIE: UART接收中断使能位 TXIE: UART发送中断标志位 PIE2PIE3 4、IPR寄存器介绍 位 7 6 5 4 3 2 1 0 功能 PSPIP ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TMR1IP PSPIP: 从并口读写中断优先级选择位 ADIP: ADC中断中断优先级选择位 RCIP: UART接收中断优先级选择位 TXIP: UART发送中断优先级选择位 IPR2IPR3 5、PIR寄存器介绍 位 7 6 5 4 3 2 1 0 功能 PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF PSPIF: 从并口读写中断标志位 ADIF: ADC中断中断标志位 RCIF: UART接收中断标志位 TXIF: UART发送中断标志位 PIR2PIR3 3.3中断应用实例 利用PORTB口电平中断实现独立式按键检测 利用PORTB口电平中断实现独立式按键检测。 RB4-RB7: 作为按键输入,采用电平检测。 RD0-RD7: 作为输出,驱动LED显示。 程序如下: #include #defineA1RB4 #defineA2RB5 #defineA3RB6 #defineA4RB7 相关子程序如下: VoidinterruptHI_ISR(void); Voidini(void); Voiddelay10ms(); 初始化程序如下: Voidini(void) { INTON=0;清中断 TRISB=0XF0;RB4-RB7设为输入 PORTB=0; TRISD=0;RD口为输出 PORTD=0; RBIE=0;RB电平中断使能 PORTB=PORTB;读RB口,为电平变化创造条件 GIE=0;开全局中断 } } 主程序如下: voidmain(void) { init(); while (1) { PORTC=PORTC; 其他代码; } } 中断程序如下: VoidinterruptHI_ISR(void) {GIE=0; if((RBIE)&&(RBIF)) { delay10ms(); PORTB=PORTB; if(A1=0)PORTD=1; if(A2=0)PORTD=2; if(A3=0)PORTD=3; if(A4=0)PORTD=4; RBIF=0; } GIE=1; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 讲稿