收藏 分销(赏)

8-2STC15系列单片机技术应用演示幻灯片.ppt

上传人:w****g 文档编号:9810307 上传时间:2025-04-09 格式:PPT 页数:41 大小:517KB 下载积分:12 金币
下载 相关 举报
8-2STC15系列单片机技术应用演示幻灯片.ppt_第1页
第1页 / 共41页
8-2STC15系列单片机技术应用演示幻灯片.ppt_第2页
第2页 / 共41页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,上次课内容回顾,1,STC15系列单片机内部结构图,2,8.3.1 STC系列单片机片内RAM的使用,STC15F2K60S2单片机片内SRAM有2KB,(比普通8051系列单片机增加了1792或1920字节),编址:000H7FFH,基本内存,:低,128B,直接或内部间接寻址,扩展内存,:高,128B,内部间接寻址,SFR,:与扩展内存同地址,直接寻址,扩充内存,:增加的,1792B(100H-7FFH),外部间接寻址。,与,片外,RAM怎么区分?,3,内部RAM的使用,AUXR,的字节地址为8EH,可进行位寻址,AUXR的格式如下:,EXTRAM=0,,访问内部RAM,EXTRAM=1,,访问外部RAM,4,1.I/O口控制寄存器,STC15系列单片机有P0、P1、P2、P3、P4、P5,使用I/O口时,应先设置对应的端口模式配置寄存器PxM1、PxM0(x05).,8.4 STC系列单片机输入/输出口,5,8.5 STC15,系列单片机中断系统,8.5.1,中断系统结构,STC15F2K60S2,系列单片机提供,14,个中断源,1,、外部中断,5,个:,INT0,INT1,INT2,INT3,INT4,2,、定时计数器,2,个:,T0,T1,,,另,T2,T3,T4,被屏蔽,3,、串行口,4,个:串口,1,、串口,2,、串口,3,、串口,4,4,、,A/D,转换中断,1,个,5,、低压检测,LVD,中断,1,个,6,、,SPI,中断,1,个,6,8.6 STC15,系列单片机定时器,/,计数器,定时器/计数器工作原理与传统8051相同,其核心部件是加1计数器,实质是对输入脉冲进行计数,。,7,8.6.1,定时器,/,计数器的控制寄存器,STC15,系列单片机内部集成了,5,个,16,位定时器,/,计数器(,T0,、,T1,、,T2,、,T3,、,T4,),有定时和计数,2,种工作方式,,由,TMOD,、,AUXR,、,T4T3M,控制。其中,T0,、,T1,的工作方式由,TMOD,控制,,T2,、,T3,、,T4,工作方式由,AUXR,、,T4T3M,寄存器,控制。,8,辅助寄存器,AUXR,(地址为,8EH,,复位值为,01H,)各位定义如下:,位号,D7,D6,D5,D4,D3,D2,D1,D0,位名称,T0 x12,T1x12,UART_M0 x6,T2R,T2_C/T,T2x,12,EXTRAM,S1,S2,1)Tnx12:定时器n速度控制位。,0,:定时器0的速度与传统8051单片机定时器速度相同,即,12分频,12T模式,。,1,:定时器0的速度是传统8051单片机定时器速度的12倍,即,不分频,1T模式,。,9,3)T2_C/:(D3)定时器2工作方式选择。,0:定时器(计数脉冲从内部系统时钟输入;,1:计数器(计数脉冲从P3.1/T2引脚输入)。,2),T2R,:(,D4)定时器2运行控制位。,0:不允许定时器2运行;,1:允许定时器2运行。,位号,D7,D6,D5,D4,D3,D2,D1,D0,位名称,T0 x12,T1x12,UART_M0 x6,T2R,T2_C/T,T2x,12,EXTRAM,S1,S2,10,UART_M0 x6,用于控制,UART,串口的速度。,S1S2,为串行口,1,波特率发生器选择位。,EXTRAM,用于设置是否允许使用内部,1024,字节的扩展,RAM,。,位号,D7,D6,D5,D4,D3,D2,D1,D0,位名称,T0 x12,T1x12,UART_M0 x6,T2R,T2_C/T,T2x,12,EXTRAM,S1,S2,11,T2H/RL_TH2,:定时器,2,重装值寄存器高字节,(地址为,0D6H,,复位值为,00H,),位号,D7,D6,D5,D4,D3,D2,D1,D0,位名称,T2L/RL_TL2,:定时器,2,重装值寄存器低字节,(地址为,0D7H,,复位值为,00H,),位号,D7,D6,D5,D4,D3,D2,D1,D0,位名称,12,8.6.2,定时器,/,计数器的工作方式,T0,、,T1,有,4,种工作模式,而,T2,、,T3,、,T4,工作方式只有固定的模式,0,,可作定时器、计数器用,它们的,内部结构,如下:,13,8.6.3 定时器/计数器的编程应用,例1,使用T0作10ms定时中断对P1.0取反,T0工作在模式0,,f,sys=6MHz,为1T模式。,T0工作在,模式0,是16位,自动重装模式,定时初值计算:(2,16,x)1/6us10ms,,初值,x15A0H,14,使用定时器设计程序如下:,AUXR DATA 8EH,ORG0000,LJMPMAIN,ORG,000BH,LJMPTM00,ORG0100H,MAIN:MOV SP,#6FH,MOVTMOD,#00,MOV,AUXR,#80H;,1T模式,MOVTL0,#0A0H,MOVTH0,#15H,SETBET,0,SETBTR0,SETBEA,SJMP$,TM00:CPLP1.0,RETI,END,15,C51,程序设计,#include ,void main(),TMOD=0;,AUXR=0X80,;/1,模式,TH0=0X15;TL0=0XA0;,ET0=1;TR0=1;EA=1;,while(1);,void time0(),interrupt 1,P10=!P10;,16,例2,要求在,1T,模式下,用定时器T2产生时钟频率38.4KHz输出(,f,sys=18.432MHz)。,T2产生时钟频率从P3.0/T2CLKO引脚输出,T2工作在模式0是16位自动重装模式,T2定时器的定时初值:,(2,16,x)/18.432us1/(238.4)ms,初值 x0FF10H,17,使用定时器设计程序如下:,AUXRDATA 8EH;,INT_CLKODATA 8FH;,T2HDATA 0D6H,T2LDATA 0D7H,T2CLKOBITP3.0;寄存器和位定义,ORG0000,ORLAUXR,#04H;T2x121,MOVT2L,#10H,MOVT2H,#0FFH,ORL,AUXR,#10H;启动T2,MOVINT_CLKO,#04;T2CLKO1,SJMP$,END,18,8.4 STC15,系列单片机片上,A/D,转换器的使用,STC15,系列单片机片内,8,路,A/D,转换器,可作为温度检测、电池电压检测、频谱检测、按键扫描等用。,8.4.1,片上,A/D,转换器工作原理,与,A/D,转换有关的特殊功能寄存器如下表(P.167):,19,1,STC15F2K60S2,片内,A/D,内部结构,20,STC15F2K60S2,的,ADC,组成,多路选择开关,比较器,逐次比较寄存器,10,位,DAC,转换结果寄存器(,ADC_RES,和,ADC_RESL,),ADC控制寄存器ADC_CONTR,21,STC15F2K60S2,的,ADC,转换原理,STC15F2K60S2,的,ADC,是逐次比较型模数转换器。,逐次比较型,ADC,由一个比较器和,D/A,转换器构成,通过逐次比较逻辑,从最高位(,MSB,)开始,顺序地对每一输入电压与内置,D/A,转换器输出进行比较,经多次比较,使转换所得的数字量逐次逼近输入模拟量对应值。,22,(,2,)参考电压源,STC15F2K60S2,单片机,ADC,模块的参考电压源是输入工作电压,Vcc,,一般不用外接参考电压源。,如果,Vcc,不稳定(例如电池供电的系统中,电池电压常常在,5.3V-4.2V,之间漂移),则可以在,8,路,A/D,转换的一个通道外接一个稳定的参考电压源,计算出此时的工作电压,Vcc,,再计算出其他几路,A/D,转换通道的电压。,23,2,A/D,功能设置寄存器,P1ASF,P1ASF,是将,P1,口设置为,A/D,模拟功能的特殊功能寄存器,字节地址为,9DH,,不能进行位寻址,复位时为,00H,。,P1ASF,格式说明如下:,例如:,把,P1.,6用做,A/D,转换器使用时,,将,P1ASF.,6设置为1即可(注意不可位寻址),编语言指令:ORL P1ASF,#40H,C语言语句:P1ASF|=0 x40;,24,3,A/D,转换控制寄存器,ADC_CONTR,ADC_CONTR,是选择通道和启动,A/D,转换的特殊功能寄存器,字节地址为,BCH,,不能进行位寻址。,ADC_ CONTR,格式说明如下:,(1)CHS2,、,CHS1,、,CHS0,是模拟输入通道选择位,,CHS2,CHS1,CHS0,模拟输入通道选择,0,0,0,选择,P1.0,作为,A/D,输入来用,0,0,1,选择,P1.1,作为,A/D,输入来用,0,1,0,选择,P1.2,作为,A/D,输入来用,0,1,1,选择,P1.3,作为,A/D,输入来用,1,0,0,选择,P1.4,作为,A/D,输入来用,1,0,1,选择,P1.5,作为,A/D,输入来用,1,1,0,选择,P1.6,作为,A/D,输入来用,1,1,1,选择,P1.7,作为,A/D,输入来用,25,(2)ADC_START,是,A/D,转换启动控制位。,(3)ADC_FLAG,是,A/D,转换结束标志位,要由软件清0。,(4)SPEED1,、,SPEED0,是,A/D,转换速度选择控制位,转换速度设置如下:,26,STC15F2K60S2,单片机,A/D,转换模块的时钟,外部晶体时钟或内部,R/C,振荡器所产生的系统时钟,不使用时钟分频寄存器,CLK_DIV,对系统时钟分频后所产生的供给,CPU,工作所使用的时钟。,优点,:不仅可以让,ADC,用较高的频率工作,提高,A/D,的转换速度;而且可以让,CPU,用较低的频率工作,降低系统的功耗。,需要注意,设置,ADC_CONTR,控制寄存器的语句执行后,要经过,4,个,CPU,时钟的延时,,其值才能够保证被设置进,ADC_CONTR,控制寄存器。,27,(5),ADC_POWER,是电源控制位。,1,时,,接通,A/D,转换器电源;,0,时,,关闭,A/D,转换器电源。,说明,建议进入空闲模式前,将,ADC,电源关闭,即,ADC_POWER=0,。,启动,A/D,转换前一定要确认,ADC,电源已打开,,A/D,转换结束后关闭,ADC,电源可降低功耗,也可不关闭。,初次打开内部,ADC,转换模拟电源,,需适当延时,,等内部模拟电源稳定后,再启动,A/D,转换。,建议启动,A/D,转换后,在,A/D,转换结束之前,不改变任何,I/O,口的状态,有利于提高,A/D,转换的精度。,28,4.,CLK_DIV,.5,是,ADRJ,位,ADRJ=0,,,10,位,A/D,高,8,位,放入,ADC_RES,,,低,2,位,存放在,ADC_RESL,。,A/D,计算公式如下:,取,10,位结果,理论计算值,=2,10,*(Vin/Vcc,),取,8,位结果,理论计算值,=2,8,*(Vin/Vcc,),ADRJ=1,,,10,位,A/D,高,2,位,放入,ADC_RES,,,低,8,位,存放在,ADC_RESL,。,A/D,计算公式如下:,取,10,位结果,理论计算值,=2,10,*(Vin/Vcc,),29,ADRJ=0,时,,ADC_RES7:0,存放高,8,位,ADC,结果,,ADC_RESL1:0,存放低,2,位,ADC,结果。,位名称,寄存器,D7,D6,D5,D4,D3,D2,D1,D0,ADC_RES,9,8,7,6,5,4,3,2,ADC_RESL,1,0,CLK_DIV,ADRJ=,0,30,ADRJ=1,时,,ADC_RES1:0,存放高,2,位,ADC,结果,,ADC_RESL7:0,存放低,8,位,ADC,结果。,位名称,寄存器,D7,D6,D5,D4,D3,D2,D1,D0,ADC_RES,9,8,ADC_RESL,7,6,5,4,3,2,1,0,CLK_DIV,ADRJ=,1,31,如果,STC15F2K60S2,单片机的,10,位,A/D,转换结果的高,8,位存放在,ADC_RES,中,低,2,位存放在,ADC_RESL,的低,2,位中,模,/,数转换结果计算公式如下:,取,10,位结果,(ADC_RES7:0,ADC_RESL1:0)=,1024Vin/Vcc,取,8,位结果,ADC_RES7:0=256Vin/Vcc,Vin,为模拟输入通道输入电压,,Vcc,为单片机实际工作电压,用单片机工作电压作为模拟参考电压。,32,与,A/D,转换中断有关的寄存器,中断允许控制寄存器,IE,中的,EADC,位(,D5,位)用于开放,ADC,中断,EA,位(,D7,位)用于开放,CPU,中断,中断优先级寄存器,IP,中的,PADC,位(,D5,位)用于设置,A/D,中断的优先级,在中断服务程序中,要使用,软件,将,A/D,中断,标志位,ADC_FLAG,(也是,A/D,转换结束标志,位),清,0,。,33,2、STC15F2K60S2单片机ADC模块的使用,编程要点,打开,ADC,电源,第一次使用时要打开内部模拟电源(设置,ADC_CONTR,)。,适当延时,等内部模拟电源稳定。一般延时,1ms,以内即可。,设置,P1,口中的相应口线作为,A/D,转换通道(设置,P1ASF,寄存器)。,34,选择,ADC,通道(设置,ADC_CONTR,中的,CHS2CHS0,)。,根据需要设置转换结果存储格式(设置CLK_DIV中的,ADRJ,位)。,查询,A/D,转换结束标志,ADC_FLAG,,判断,A/D,转换是否完成,若完成,则读出结果(结果保存在,ADC_RES,和,ADC_RESL,寄存器中),并进行数据处理。,35,读取转换结果注意:,如果是多通道模拟量进行转换,则更换A/D转换通道后要适当延时,使输入电压稳定,延时量取20s200s即可,与输入电压源的内阻有关。,如果输入电压信号源的内阻在10K,以下,可不加延时。,如果是单通道模拟量转换,则不需要更换A/D转换通道,也就不需要加延时。,36,若采用中断方式,还需进行中断设置(EADC置1,EA置1)。,在中断服务程序中读取,ADC,转换结果,并将,ADC,中断请求标志,ADC_FLAG,清零。,37,8.4.2,片上,A/D,转换器的使用,例,1,用,STC15F2K60S2,单片机,P1.2,口作为模拟输入端,实现,A/D,转换。,程序设计方法:,1,、设置,ADRJ=0 ANL CLK_DIV,#1101 1111B,2,、打开,A/D,转换电源,ORL ADC_CONTR,#80H,3,、选择,P1.2,口为模拟输入端,4,、设置转换周期,选择通道,5,、延时,1ms,启动,A/D,转换,6,、检测,A/D,转换是否结束,7,、如果转换结束,清除标志,停止,A/D,转换,8,、读取,A/D,转换结果,38,ADC_CONTR EQU 0BCH,ADC_RES EQU 0BDH,P1ASF EQU 9DH,CLK_DIV EQU 97H,GET_ADG:ANL CLK_DIV,#0DFH,ORL ADC_CONTR,#80H,MOV A,#0000 0100B,ORL P1ASF,A,MOV ADC_CONTR,#1110 0010B,ACALL DELL1MS,MOV ADC_RES,#0,ORL ADC_CONTR,#0000 1000B,NOP,WAIT_AD:MOV A,#0001 0000B,ANL A,ADC_CONTR,JZ WAIT_AD,ANL ADC_CONTR,#1110 0111B,MOV A,ADC_RES,RET,1,、设置,ADRJ=0,2,、打开,A/D,转换电源,3,、选择,P1.2,口为模拟输入端,4,、设置转换周期,选择通道,5,、延时,1ms,启动,A/D,转换,,6,、检测,A/D,转换是否结束,7,、如果转换结束,清除标志,停止,A/D,转换,8,、读取,A/D,转换结果,39,例,2,用,STC15F2K60S2,单片机的,A/D,转换通道,(P1.2),扩展,4,个按键,要求编程实现按键扫描。,程序段如下:,KEY_IN:ACALLGet_ADC;,读,A/D,转换值,(,键值,),CJNEA,#00,JK1;,键值比较判断识别,AJMPPK,1,;,跳转到处理,K,1键,JK1:CJNEA,#80H,JK2,AJMPPK,2,;,跳转到处理,K,2键,JK2:CJNEA,#0AAH,JK3,AJMPPK,3,;,跳转到处理,K,3键,JK3:CJNEA,#0C0H,EXT,AJMPPK,4,;,跳转到处理,K,4键,EXT:RET,40,作业:编程实现利用,STC15F260S2,单片机,ADC,通道,2,采集外部模拟电压信号,,8,位精度,采用查询方式或循环方式进行转换,转换结果用,8,盏,LED,灯指示。,41,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服