版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、0=运行,1=停止,但内部低速RC仍运行。0=普通模式,系统为高速时钟1=低速模式,系统为内部低速时钟CPUM1:0: CPU运行模式控制位00:普通模式10:绿色模式5、系统模式之间的转换:(1) 、01:睡眠(省电)模式11:保留(2)、普通模式转低速模式FCLKMD=1;设置系统时钟为内部低速时钟FSTPHX=1; /停止外部高速时钟以省电低速模式转普通模式若外部高速仍运行,若外部高速已停止,(3)、普通或低速模式FCPUM0=1;FCPUM1=0;FCLKMD=0;FSTPHX=0;DELAY(20);FCLKMD=0;进入睡眠(省电)模式设置回普通模式即可先启动外部高速/再延时20毫
2、秒设置回普通模式/(此句有时可省略)松瀚SN8P2711学习笔记、系统时钟SN8P2711是具有高速时钟和低速时钟的微控制器,高速时钟由外部振荡电路或内置16MHZ高速RC振荡电路(IHRC 16MHZ)提供,外部高速时钟又分为晶振和RC振荡及外部时钟输入。1、外部高速:晶振一般高速为12M,中速为4M,低速为32K。RC振荡一般小于10M,电容一般为 50P-100P,通过改变 R来改变频率。夕卜部时钟输入作为系统时钟信号,由编译选项HIGH-CLK中的RC选项来选择,外部时钟输入,信号由XIN脚输入,XOUT作为普通IO 口。2、内部高速内部高速16MHZRC振荡器由编译选项IHRC-16
3、M来控制,在高速模式下,指令周期FCPU=FOSC/N, N=1-16,N由FCPU编译选项来选择。在低速模式下,指令周期FCPU=FOSC/4。3、内部低速时钟3V单片机内部低速时钟为16KHZ, 5V单片机内部低速时钟为 32KHZ。内部低速钟可作为低速模式的系统时钟,也是看门狗定时器的时钟。4、OSCM寄存器是一个振荡器控制寄存器,控制着振荡器的状态和系统模式STPHX:外部高速振荡器控制位CLKMD:系统高低速模式控制位(4)、进入绿色模式并使能 TC0的唤醒功能FTC0IEN=0; FTC0ENB;关定时器0及其中断功能TCOM=0X20;定时器0选择内部时钟 FCPU/64;TC0
4、C=0X74;/TC0 初值 10 毫秒FTC0IRQ=0;清中断请求FTC0GN=1;使能唤醒FTC0ENB=1;开始计数FCPUM0=0;FCPUM1=1;/进入绿色模式6、唤醒睡眠(省电)模式的唤醒是通过外部触发(P0 口的电平转换)实现。绿色模式可由外部触发(P0 口的电平转换)及内部触发(TC0溢出)实现。唤醒时间=1/FOSC*2048+振荡器稳定时间。二、IO 口的初始设置1、 若作为输入:则往 PnM寄存器相应位写 0,若外部无上拉电阻,则需使能相应位的内部上拉电阻,例如:P0M=0X00;/P0 口全作为输入端口FP01M=0;/P0.1口作为输入端口P0UR=0XFF;/P
5、0 口全部使能内部上拉电阻2、 若作为输出:则往 PnM寄存器相应位写1,例如:P5M=0XFF;/P5 口作为输出端口FP53M=1;/P53作为输出端口3、在输出模式下,往 IO 口写1和0P0=0XFF; P5=0X00;/P0 口全写 1, P5 口全写 0P01=0;/P01 置 0P0.4仅作为输入引脚,无上拉电阻。三、看门狗时钟源为内部低速 RC振荡器16KHZ(3V), 32KHZ(5V),看门狗溢出时间=8192/RC频率3V溢出时间为512毫秒,5V溢出时间为256毫秒WDTR=0X5A;/喂狗(清看门狗计数器)般在程序一开始就喂狗,然后在主程序中定时喂狗,若程序跑飞,看门
6、狗功能可以让程 序复位。若要使用看门狗功能则需在编译选项中设置。四、AD转换功能1、P4 口作为12位AD 口和普通IO 口复用,若作为 AD转换通道,则需作如下几方面 设置:(1) 、使能ADC控制位 FADENB=1;此句到首次开始 AD转换须间隔100微秒(2) 、设置为输入端口 如:FP40M=0;/P40作为AD输入通道(3 )、设置为纯模拟输入 如:P4CON=0X01;/P40作为纯模拟输入(4) 、禁止相应位的内部上拉电阻如:P4UR=0X00;/P40必须禁止内部上拉(5) 、设置AD转换速率:ADR寄存器的ADCKS1,ADCKS0 时钟源选择位00=FCPU/16;01=
7、FCPU/8; 10=FCPU; 11=FCPU/2如:ADCKS1=1; ADCKS0=0; 时钟源为 CPU时钟,不能直接往 ADR寄存器写(6) 、设置ADM寄存器选择通道及使能 ANI通道如:ADM=0X90;/选择P40为AD转换通道并使能(7) 、如使用内部参考电压则设置寄存器VREFH中的VHS1,VHS0;11=VDD,10=4V,01=3V,00=2VVREFH中的ADC内部参考电压控制位 EVHENB=0为使能,1为禁止如:VREFH=0X03;/选择内部参考电压 VDD以上是AD转换前的初始设置,如需开始转换则如下:(8) 、查询方式FADS=1;/开始AD转换While
8、 (FEOC=0);等待转换完成标志为 1FEOC=0;及时清除转换完成标志Ad_h8=ADB;/ADB存放12位AD值的高8位(也是 8位AD/的8位数据)Ad_l4=ADR&0X0F;/ADR的低四位存放 AD值的低4位(9)、中断方式FADCIRQ=0;FGIE=1;FADCIEN=1;FADS=1;在中断函数里If (FADCIRQ)FADCIRQ=0;Ad_h8=ADB;Ad_l4=ADR&0X0F;如需重复AD采样则重复此第 8项即可。/清AD中断标志/总中断使能/AD中断使能/开始AD转换/清AD中断标志/ADB存放12位AD值的高 8位(也是 8位 AD/的8位
9、数据)/ADR的低四位存放AD值的低4位2、注意事项ADC分辨率与使用的参考电压有关,如使用内部参考电压为4V,3V,2V贝U分辨率为8位,如使内部考电压为 VDD或使用外部参考电压则分辨率为12位。五、TC01、定时器功能的初始化设置 (1)、先关定时器 如:FTC0ENB=0;关定时器0(2 )、禁止定时器中断,清定时器中断标志 如:FTC0IEN=0;FTC0IRQ=0;(3) 、选择时钟源及分频数及自动加载功能 如:FTC0CKS=0;/选择内部时钟,否则为外部计数器模式FTC0X8=0;选择内部FCPU时钟,否则为 FOSC系统时钟FTC0RATE1=1; /FCPU/64 , TC
10、0RATE2:0=010 (事件计数器模式除外)FALOAD0=1;使能自动加载也可以直接写TC0M=0X24;(4 )、装定时器初值2、PWMTC0C=0X64;TC0R=0X64;(5)、开启中断,使能定时器FTC0IEN=1;FGIE=1;FTC0ENB=1;功能定时器初值使能定时中断/使能总中断/开启定时器PWM功能的时钟源为 TC0,TC1 ,输出,8位计数器范围可为256,的值(TCnC)与TCnR中的值比较,若相等则为0即溢出时,产生的信号由 PWM0OUT (P54), PWM1OUT(P53)64, 32, 16,由 ALOADn 和 TCnOUT 控制,计数器PWM开始输出
11、低电平,当 TCnC的值PWM开始输出高电平,占空比为 TCnR/256,/64,/32,/16 。1设置计数器的范围,2设置系统时钟频率 3TCnR的值来PWM的频率控制可通过三个方面改变,设置定器器的时基(FCPU的分频)。占空比用户可在任何时候通过改变 实现,计数器每次溢出 TCnIRQ都将被置位,与 PWM同频率。设置PWM频率,00=范围 0-255FALOAD0, FTC0OUT.01 =范围 0-6310=范围 0-3211=范围0-16例如:PWM0由P54输出,夕卜部高速时钟30/256, PWM输出频率为为 FCPU/4, TC0RATE2-0TC0M=0X60;Date_
12、buf=30;TC0C=Date_buf;TC0R=Date_buf;FTC0OUT=0;FALOAD0=0;FPWM0OUT=1;FTC0ENB=1;4MHZ , FCPU=FOSC/4,PWM时钟源来自外部振荡器,TC01KHZ, PWM为 110, TC0C=TC0R=30。/设置TC0的时钟分频数为 FCPU/4计数值缓存/设置PWM 占空比为 30/256/设置PWM占空比的范围即频率输出占空比为 的速率(时基)/使能PWM输出到P54,并禁止P54输入输出功能/使能TC0Date_buf+;TC0R=Date_buf;六、C语言编程/改变缓存的值从而改变TC0R的值 TCnR是只写
13、寄存器1、位变量特殊功能寄存器的位变量在头文件中定义时,一般都在位变量前面加F,在编写程序时不要忘记。用户位变量一般通过定义结构体的方法来实现。没有 bit指令。如下:struct bitDefineunsigned char bit0:1;/uchar 可要可不要unsigned char bit1:1;unsigned char bit2:1;unsigned char bit3:1;unsigned char bit4:1;unsigned char bit5:1;unsigned char bit6:1;unsigned char bit7:1;;struct bitDefine fl
14、ag1,flag2;/准备位变量#define time_10ms_fg(flag1.bit0)#define error_ad_fg(flag1.bit1)#define work_en(flag1.bit2)#define work_over_fg(flag1.bit3)#define key_down_fg(flag1.bit4)#define long_key_fg(flag1.bit5)#define stop_work_fg(flag1.bit6)#define start_work_fg(flag1.bit7)2、中断函数中断函数的形式为:_interrupt name (void)最前面如果加上 void编译会出错中断函数只有一个入口地址,也就是说只能有一个中断函数,通过在中断函数中检测中断请求寄存器INTRQ中的各标志位来判断是何种中断,从而进行相应的中断程序处理,中 断标志位检测的顺序即为优先级顺序。进入中断后应尽快处理然后退出,以减少主程序的等待时间。&数据数据类型长度 char ,uchar ,int ,uint 均为 8 位,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 稀土后处理工班组安全测试考核试卷含答案
- 铸管制芯工安全知识竞赛评优考核试卷含答案
- 渔船机驾长常识评优考核试卷含答案
- 海参池塘养殖培训
- 茶叶拼配师安全素养评优考核试卷含答案
- 矿石破碎筛分工操作知识能力考核试卷含答案
- 桥梁工程培训
- 老年人入住老人教育培训制度
- 海上作业安全培训
- 酒店客房清洁保养制度
- 市政设施巡查及维护方案
- 大型活动安保工作预案模板
- 2025年文化遗产数字化保护与开发:技术创新与经济效益研究报告
- 2026中国电信四川公用信息产业有限责任公司社会成熟人才招聘备考题库及答案详解参考
- 南瑞9622型6kV变压器差动保护原理及现场校验实例培训课件
- 统编版(2024)七年级上册道德与法治期末复习必背知识点考点清单
- 山西焦煤考试题目及答案
- 2026年春节放假前员工安全培训
- (2025版)成人肺功能检查技术进展及临床应用指南解读课件
- 《春秋》讲解课件
- 青少年抑郁障碍的护理与康复训练
评论
0/150
提交评论