STC系列单片机技术应用课件

上传人:汽*** 文档编号:569382107 上传时间:2024-07-29 格式:PPT 页数:40 大小:535.50KB
返回 下载 相关 举报
STC系列单片机技术应用课件_第1页
第1页 / 共40页
STC系列单片机技术应用课件_第2页
第2页 / 共40页
STC系列单片机技术应用课件_第3页
第3页 / 共40页
STC系列单片机技术应用课件_第4页
第4页 / 共40页
STC系列单片机技术应用课件_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《STC系列单片机技术应用课件》由会员分享,可在线阅读,更多相关《STC系列单片机技术应用课件(40页珍藏版)》请在金锄头文库上搜索。

1、上次课内容回顾STC系列单片机技术应用STC15系列单片机内部结构图STC系列单片机技术应用8.3.1 STC系列单片机片内RAM的使用 STC15F2K60S2单片机片内SRAM有2KB (比普通8051系列单片机增加了1792或1920字节) 编址:000H7FFH 基本内存:低128B,直接或内部间接寻址 扩展内存:高128B,内部间接寻址 SFR:与扩展内存同地址,直接寻址 扩充内存:增加的1792B(100H-7FFH),外部间接寻址。与片外RAM怎么区分?STC系列单片机技术应用内部RAM的使用 AUXR的字节地址为8EH,可进行位寻址,AUXR的格式如下:EXTRAM= 0,访问

2、内部RAMEXTRAM=1,访问外部RAMSTC系列单片机技术应用1.I/O1.I/O口控制寄存器 STC15系列单片机有P0、P1、P2、P3、P4、P5,使用I/O口时,应先设置对应的端口模式配置寄存器PxM1、PxM0(x05). 8.4 STC8.4 STC系列单片机输入/ /输出口STC系列单片机技术应用8.5 STC15系列单片机中断系统8.5.1 中断系统结构 STC15F2K60S2系列单片机提供14个中断源1、外部中断5个:INT0,INT1, INT2, INT3,INT42、定时计数器2个:T0,T1,另T2,T3,T4被屏蔽3、串行口4个:串口1、串口2、串口3、串口4

3、 4、A/D转换中断 1个5、低压检测LVD中断 1个6、SPI中断 1个STC系列单片机技术应用8.6 STC158.6 STC15系列单片机定时器/ /计数器 定时器/计数器工作原理与传统8051相同,其核心部件是加1计数器,实质是对输入脉冲进行计数。 STC系列单片机技术应用8.6.1 8.6.1 定时器/ /计数器的控制寄存器 STC15系列单片机内部集成了5个16位定时器/计数器(T0、T1、T2、T3、T4) ,有定时和计数2种工作方式 ,由TMOD 、AUXR、T4T3M控制。 其中T0、T1的工作方式由TMOD控制, T2、T3、T4工作方式由AUXR、T4T3M寄存器控制。S

4、TC系列单片机技术应用辅助寄存器AUXR(地址为8EH,复位值为01H)各位定义如下:位号D7D6D5D4D3D2D1D0位名称T0x12T1x12UART_MUART_M0x60x6T2RT2_C/TT2x12EXTRAMS1S21)Tnx12:定时器n速度控制位。 0:定时器0的速度与传统8051单片机定时器速度相同,即12分频,12T模式。 1:定时器0的速度是传统8051单片机定时器速度的12倍,即不分频,1T模式。STC系列单片机技术应用3)T2_C/ :(D3)定时器2工作方式选择。 0:定时器(计数脉冲从内部系统时钟输入; 1:计数器(计数脉冲从P3.1/T2引脚输入)。2)T2

5、R:(D4)定时器2运行控制位。 0:不允许定时器2运行; 1:允许定时器2运行。位号D7D6D5D4D3D2D1D0位名称T0x12T1x12UART_MUART_M0x60x6T2RT2_C/TT2x12EXTRAMS1S2STC系列单片机技术应用UART_M0x6用于控制UART串口的速度。S1S2为串行口1波特率发生器选择位。 EXTRAM用于设置是否允许使用内部1024字节的扩展RAM。位号D7D6D5D4D3D2D1D0位名称T0x12T1x12UART_MUART_M0x60x6T2RT2_C/TT2x12EXTRAMS1S2STC系列单片机技术应用T2H/RL_TH2:定时器2

6、重装值寄存器高字节 (地址为0D6H,复位值为00H)位号D7D6D5D4D3D2D1D0位名称T2L/RL_TL2:定时器2重装值寄存器低字节 (地址为0D7H,复位值为00H)位号D7D6D5D4D3D2D1D0位名称STC系列单片机技术应用8.6.2 8.6.2 定时器/ /计数器的工作方式 T0、T1有4种工作模式 ,而T2、T3、T4工作方式只有固定的模式0,可作定时器、计数器用,它们的内部结构如下: STC系列单片机技术应用8.6.3 8.6.3 定时器/ /计数器的编程应用例1 使用T0作10ms定时中断对P1.0取反,T0工作在模式0,fsys=6MHz,为1T模式。T0工作在

7、模式0是16位自动重装模式 定时初值计算:(216x)1/6us10ms, 初值 x15A0H STC系列单片机技术应用使用定时器设计程序如下:AUXR DATA 8EHORG 0000LJMPMAINORG 000BHLJMPTM00ORG 0100HMAIN:MOV SP,#6FHMOV TMOD,#00MOV AUXR,#80H;1T模式MOV TL0,#0A0HMOV TH0,#15H SETBET0SETBTR0SETBEA SJMP $TM00: CPL P1.0RETIENDSTC系列单片机技术应用C51程序设计#include void main( ) TMOD=0; AUXR

8、=0X80;/1模式 TH0=0X15; TL0=0XA0; ET0=1;TR0=1; EA=1; while(1);void time0( ) interrupt 1 P10=!P10;STC系列单片机技术应用例2 2 要求在1T模式下,用定时器T2产生时钟频率38.4KHz输出(fsys=18.432MHz) 。 T2产生时钟频率从P3.0/T2CLKO引脚输出 T2工作在模式0是16位自动重装模式 T2定时器的定时初值: (216x)/18.432us1/(238.4)ms 初值 x0FF10H STC系列单片机技术应用使用定时器设计程序如下:AUXRDATA 8EH;INT_CLKO

9、DATA 8FH;T2HDATA 0D6HT2LDATA 0D7HT2CLKOBITP3.0;寄存器和位定义ORG0000ORLAUXR,#04H;T2x121MOVT2L,#10HMOVT2H,#0FFHORLAUXR,#10H;启动T2MOVINT_CLKO,#04;T2CLKO1 SJMP$ENDSTC系列单片机技术应用8.4 STC158.4 STC15系列单片机片上A/DA/D转换器的使用STC15系列单片机片内8路A/D转换器,可作为温度检测、电池电压检测、频谱检测、按键扫描等用。 8.4.1 8.4.1 片上A/DA/D转换器工作原理与A/D转换有关的特殊功能寄存器如下表(P.1

10、67):STC系列单片机技术应用1 STC15F2K60S2片内A/D内部结构STC系列单片机技术应用STC15F2K60S2的ADC组成多路选择开关比较器逐次比较寄存器10位DAC转换结果寄存器(ADC_RES和ADC_RESL)ADC控制寄存器ADC_CONTRSTC系列单片机技术应用STC15F2K60S2的ADC转换原理STC15F2K60S2的ADC是逐次比较型模数转换器。逐次比较型ADC由一个比较器和D/A转换器构成,通过逐次比较逻辑,从最高位(MSB)开始,顺序地对每一输入电压与内置D/A转换器输出进行比较,经多次比较,使转换所得的数字量逐次逼近输入模拟量对应值。STC系列单片机

11、技术应用(2)参考电压源STC15F2K60S2单片机ADC模块的参考电压源是输入工作电压Vcc,一般不用外接参考电压源。如果Vcc不稳定(例如电池供电的系统中,电池电压常常在5.3V-4.2V之间漂移), 则可以在8路A/D转换的一个通道外接一个稳定的参考电压源,计算出此时的工作电压Vcc,再计算出其他几路A/D转换通道的电压。STC系列单片机技术应用2 2A/DA/D功能设置寄存器P1ASFP1ASF P1ASF是将P1口设置为A/D模拟功能的特殊功能寄存器,字节地址为9DH,不能进行位寻址,复位时为00H。P1ASF格式说明如下: 例如:把P1.6用做A/D转换器使用时, 将P1ASF.

12、6设置为1即可(注意不可位寻址)编语言指令:ORL P1ASF, #40H C语言语句:P1ASF |= 0x40;STC系列单片机技术应用3 3A/DA/D转换控制寄存器ADC_CONTRADC_CONTRADC_CONTRADC_CONTR是选择通道和启动A/D转换的特殊功能寄存器,字节地址为BCH,不能进行位寻址。ADC_ CONTR格式说明如下: (1) CHS2、CHS1、CHS0是模拟输入通道选择位, CHS2CHS1CHS0模拟输入通道选择000选择P1.0作为A/D输入来用001选择P1.1作为A/D输入来用010选择P1.2作为A/D输入来用011选择P1.3作为A/D输入来

13、用100选择P1.4作为A/D输入来用101选择P1.5作为A/D输入来用110选择P1.6作为A/D输入来用111选择P1.7作为A/D输入来用STC系列单片机技术应用(2) ADC_START是A/D转换启动控制位。 (3) ADC_FLAG是A/D转换结束标志位,要由软件清0。 (4) SPEED1、SPEED0是A/D转换速度选择控制位,转换速度设置如下: STC系列单片机技术应用STC15F2K60S2单片机A/D转换模块的时钟外部晶体时钟或内部R/C振荡器所产生的系统时钟,不使用时钟分频寄存器CLK_DIV对系统时钟分频后所产生的供给CPU工作所使用的时钟。优点:不仅可以让ADC用

14、较高的频率工作,提高A/D的转换速度;而且可以让CPU用较低的频率工作,降低系统的功耗。需要注意设置ADC_CONTR控制寄存器的语句执行后,要经过4个CPU时钟的延时,其值才能够保证被设置进ADC_CONTR控制寄存器。STC系列单片机技术应用(5) ADC_POWER是电源控制位。 1时,接通A/D转换器电源; 0时,关闭A/D转换器电源。 说明建议进入空闲模式前,将ADC电源关闭,即ADC_POWER =0。启动A/D转换前一定要确认ADC电源已打开,A/D转换结束后关闭ADC电源可降低功耗,也可不关闭。初次打开内部ADC转换模拟电源,需适当延时,等内部模拟电源稳定后,再启动A/D转换。

15、建议启动A/D转换后,在A/D转换结束之前,不改变任何I/O口的状态,有利于提高A/D转换的精度。STC系列单片机技术应用4. CLK_DIV.5是ADRJ位ADRJ=0,10位A/D高8位放入ADC_RES,低2位存放在ADC_RESL。A/D计算公式如下: 取10位结果理论计算值 =210*(Vin/Vcc) 取8位结果理论计算值 =28*(Vin/Vcc)ADRJ=1,10位A/D高2位放入ADC_RES,低8位存放在ADC_RESL。A/D计算公式如下: 取10位结果理论计算值 =210*(Vin/Vcc)STC系列单片机技术应用ADRJ=0时,ADC_RES7:0存放高8位ADC结果

16、,ADC_RESL1:0存放低2位ADC结果。位名称寄存器D7D6D5D4D3D2D1D0ADC_RES98765432ADC_RESL10CLK_DIVADRJ=0STC系列单片机技术应用ADRJ=1时,ADC_RES1:0存放高2位ADC结果,ADC_RESL7:0存放低8位ADC结果。位名称寄存器D7D6D5D4D3D2D1D0ADC_RES98ADC_RESL76543210CLK_DIVADRJ=1STC系列单片机技术应用如果STC15F2K60S2单片机的10位A/D转换结果的高8位存放在ADC_RES中,低2位存放在ADC_RESL的低2位中,模/数转换结果计算公式如下:取10位

17、结果 (ADC_RES7:0,ADC_RESL1:0) = 1024Vin/Vcc取8位结果 ADC_RES7:0 = 256Vin / Vcc Vin为模拟输入通道输入电压,Vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压。STC系列单片机技术应用与A/D转换中断有关的寄存器中断允许控制寄存器IE中的EADC位(D5位)用于开放ADC中断EA位(D7位)用于开放CPU中断中断优先级寄存器IP中的PADC位(D5位)用于设置A/D中断的优先级 在中断服务程序中,要使用软件将A/D中断标志位ADC_FLAG(也是A/D转换结束标志位)清0。STC系列单片机技术应用2、STC15F2K

18、60S2单片机ADC模块的使用编程要点打开ADC电源,第一次使用时要打开内部模拟电源(设置ADC_CONTR)。适当延时,等内部模拟电源稳定。一般延时1ms以内即可。设置P1口中的相应口线作为A/D转换通道(设置P1ASF寄存器)。STC系列单片机技术应用选择ADC通道(设置ADC_CONTR中的CHS2CHS0)。根据需要设置转换结果存储格式(设置CLK_DIV中的ADRJ位)。查询A/D转换结束标志ADC_FLAG,判断A/D转换是否完成,若完成,则读出结果(结果保存在ADC_RES和ADC_RESL寄存器中),并进行数据处理。STC系列单片机技术应用读取转换结果注意:如果是多通道模拟量进

19、行转换,则更换A/D转换通道后要适当延时,使输入电压稳定,延时量取20s200s即可,与输入电压源的内阻有关。如果输入电压信号源的内阻在10K以下,可不加延时。如果是单通道模拟量转换,则不需要更换A/D转换通道,也就不需要加延时。STC系列单片机技术应用若采用中断方式,还需进行中断设置(EADC置1,EA置1)。在中断服务程序中读取ADC转换结果,并将ADC中断请求标志ADC_FLAG清零。STC系列单片机技术应用8.4.2 8.4.2 片上A/DA/D转换器的使用例1 1 用STC15F2K60S2单片机P1.2口作为模拟输入端,实现A/D转换。程序设计方法:1、设置ADRJ=0 ANL C

20、LK_DIV,#1101 1111B2、打开A/D转换电源 ORL ADC_CONTR,#80H3、选择P1.2口为模拟输入端4、设置转换周期,选择通道5、延时1ms,启动A/D转换6、检测A/D转换是否结束7、如果转换结束,清除标志,停止A/D转换8、读取A/D转换结果STC系列单片机技术应用ADC_CONTR EQU 0BCHADC_RES EQU 0BDHP1ASF EQU 9DHCLK_DIV EQU 97HGET_ADG: ANL CLK_DIV,#0DFH ORL ADC_CONTR,#80H MOV A,#0000 0100B ORL P1ASF,A MOV ADC_CONTR,

21、#1110 0010B ACALL DELL1MS MOV ADC_RES,#0 ORL ADC_CONTR,#0000 1000BNOPWAIT_AD: MOV A,#0001 0000BANL A,ADC_CONTRJZ WAIT_ADANL ADC_CONTR,#1110 0111BMOV A,ADC_RESRET1、设置ADRJ=0 2、打开A/D转换电源 3、选择P1.2口为模拟输入端4、设置转换周期,选择通道5、延时1ms,启动A/D转换,6、检测A/D转换是否结束7、如果转换结束,清除标志,停止A/D转换8、读取A/D转换结果STC系列单片机技术应用例2 用STC15F2K60S2单片机的A/D转换通道(P1.2)扩展4个按键,要求编程实现按键扫描。程序段如下:KEY_IN:ACALLGet_ADC;读A/D转换值(键值) CJNEA,#00,JK1;键值比较判断识别 AJMPPK1;跳转到处理K1键JK1:CJNEA,#80H,JK2 AJMPPK2;跳转到处理K2键JK2:CJNEA,#0AAH,JK3 AJMPPK3;跳转到处理K3键JK3:CJNEA,#0C0H,EXT AJMPPK4;跳转到处理K4键EXT: RET STC系列单片机技术应用

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号