当前位置: 首页 > news >正文

公司网站关键词优化网站开发demo版本

公司网站关键词优化,网站开发demo版本,china cd wordpress,html网站模版目录硬知识定时器初始化函数测试基本功能测试main.c中断服务函数实验现象模拟PWM信号main.c实验现象STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 摘自《STC库函数使用参考》 定时器初始化函数 Timer_Inilize TIM_… 目录硬知识定时器初始化函数测试基本功能测试main.c中断服务函数实验现象模拟PWM信号main.c实验现象STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 摘自《STC库函数使用参考》 定时器初始化函数 Timer_Inilize TIM_InitTypeDef的定义见于文件timer.H. typedef struct {u8 TIM_Mode; //工作模式u8 TIM_Polity; //优先级设置u8 TIM_Interrupt; //中断允许u8 TIM_CIkSource; //时钟源u8 TIM CIkOut; //可编程时钟输出u16 TIM_Value; //装载初值u8 TIM_Run; //是否运行 }TIM_InitTypeDef;TIM_Mode定时器的工作模式 TIM_Polity中断的优先级 TIM_Interrupt中断允许或禁止 TIM_CIkSource定时器的时钟源选择 TIM_CIkOut定时器溢出时取反对应IO输出高速时钟 TIM_Value一个16位的初值。 TIM_Run初始化后是否运行定时器 测试 基本功能测试 main.c #include ./Drivers/config.h #include ./Drivers/delay.h#include ./Drivers/timer.h #include ./Drivers/GPIO.h/*------------------------------------------------------------------*/ /* --- STC MCU International Limited -------------------------------*/ /* --- STC 1T Series MCU RC Demo -----------------------------------*/ /* --- Mobile: (86)13922805190 -------------------------------------*/ /* --- Fax: 86-0513-55012956,55012947,55012969 ---------------------*/ /* --- Tel: 86-0513-55012928,55012929,55012966 ---------------------*/ /* --- Web: www.GXWMCU.com -----------------------------------------*/ /* --- QQ: 800003751 ----------------------------------------------*/ /* If you want to use the program or the program referenced in the */ /* article, please specify in which data and procedures from STC */ /*------------------------------------------------------------------*//************* 功能说明 **************本程序演示3个定时器的使用。定时器0做16位自动重装10us定时不中断从P3.5高速输出脉宽10us 50KHZ时钟信号。用户可以修改时间从而修改频率也可以允许中断但注意时间不要太短一般10us以上。定时器1做16位自动重装1ms定时 中断从P3.4高速输出脉宽1ms 500HZ时钟信号。定时器2做16位自动重装20ms定时中断从P3.0高速输出脉宽20ms 25HZ时钟信号。同时中断里从P1.0取反输出25HZ时钟信号。******************************************//************************ IO口配置 ****************************/ void GPIO_config(void) {GPIO_InitTypeDef GPIO_InitStructure; //结构定义GPIO_InitStructure.Mode GPIO_OUT_PP; //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PPGPIO_InitStructure.Pin GPIO_Pin_4 | GPIO_Pin_5; //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7, 或操作GPIO_Inilize(GPIO_P3,GPIO_InitStructure); //初始化GPIO_InitStructure.Pin GPIO_Pin_0; //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7, 或操作GPIO_Inilize(GPIO_P1,GPIO_InitStructure); //初始化 }/************************ 定时器配置 ****************************/ void Timer_config(void) {TIM_InitTypeDef TIM_InitStructure; //结构定义TIM_InitStructure.TIM_Mode TIM_16BitAutoReload; //指定工作模式, TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMaskTIM_InitStructure.TIM_Polity PolityLow; //指定中断优先级, PolityHigh,PolityLowTIM_InitStructure.TIM_Interrupt DISABLE; //中断是否允许, ENABLE或DISABLETIM_InitStructure.TIM_ClkSource TIM_CLOCK_1T; //指定时钟源, TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_ExtTIM_InitStructure.TIM_ClkOut ENABLE; //是否输出高速脉冲, ENABLE或DISABLETIM_InitStructure.TIM_Value 65536UL - ((double)MAIN_Fosc * 10/1000000.); //初值,TIM_InitStructure.TIM_Run ENABLE; //是否初始化后启动定时器, ENABLE或DISABLETimer_Inilize(Timer0,TIM_InitStructure); //初始化Timer0 Timer0,Timer1,Timer2TIM_InitStructure.TIM_Mode TIM_16BitAutoReload; //指定工作模式, TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMaskTIM_InitStructure.TIM_Polity PolityLow; //指定中断优先级, PolityHigh,PolityLowTIM_InitStructure.TIM_Interrupt ENABLE; //中断是否允许, ENABLE或DISABLETIM_InitStructure.TIM_ClkSource TIM_CLOCK_1T; //指定时钟源, TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_ExtTIM_InitStructure.TIM_ClkOut ENABLE; //是否输出高速脉冲, ENABLE或DISABLETIM_InitStructure.TIM_Value 65536UL - ((double)MAIN_Fosc * 1/1000.); //初值,TIM_InitStructure.TIM_Run ENABLE; //是否初始化后启动定时器, ENABLE或DISABLETimer_Inilize(Timer1,TIM_InitStructure); //初始化Timer1 Timer0,Timer1,Timer2TIM_InitStructure.TIM_Interrupt ENABLE; //中断是否允许, ENABLE或DISABLE. (注意: Timer2固定为16位自动重装, 中断固定为低优先级)TIM_InitStructure.TIM_ClkSource TIM_CLOCK_12T; //指定时钟源, TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_ExtTIM_InitStructure.TIM_ClkOut ENABLE; //是否输出高速脉冲, ENABLE或DISABLETIM_InitStructure.TIM_Value 65536UL - ((double)MAIN_Fosc/12 * 20/1000.); //初值TIM_InitStructure.TIM_Run ENABLE; //是否初始化后启动定时器, ENABLE或DISABLETimer_Inilize(Timer2,TIM_InitStructure); //初始化Timer2 Timer0,Timer1,Timer2 }/******************** 主函数**************************/ void main(void) {GPIO_config();Timer_config();EA 1;while (1){} }中断服务函数 /********************* Timer0中断函数************************/ void timer0_int (void) interrupt TIMER0_VECTOR {}/********************* Timer1中断函数************************/ void timer1_int (void) interrupt TIMER1_VECTOR {}/********************* Timer2中断函数************************/ void timer2_int (void) interrupt TIMER2_VECTOR {P10 ~P10; }实验现象 模拟PWM信号 修改timer.c中的timer0_int函数 /********************* Timer0中断函数************************/ void timer0_int (void) interrupt TIMER0_VECTOR {extern u16 PWM_high,PWM_low; //中间变量用户请勿修改。if(P35){TH0 (u8)(PWM_low 8); //如果是输出高电平则装载低电平时间。TL0 (u8)PWM_low;}else{TH0 (u8)(PWM_high 8); //如果是输出低电平则装载高电平时间。TL0 (u8)PWM_high;} }main.c #include ./Drivers/config.h #include ./Drivers/delay.h#include ./Drivers/GPIO.h #include ./Drivers/timer.h/************* 功能说明 **************本程序演示使用定时器做软件PWM。定时器0做16位自动重装中断从T0CLKO高速输出PWM。本例程是使用STC15F/L系列MCU的定时器T0做模拟PWM的例程。PWM可以是任意的量程。但是由于软件重装需要一点时间所以PWM占空比最小为32T/周期最大为(周期-32T)/周期, T为时钟周期。PWM频率为周期的倒数。假如周期为6000, 使用24MHZ的主频则PWM频率为4000HZ。******************************************//************* 本地常量声明 **************/#define PWM_DUTY 6000 //定义PWM的周期数值为时钟周期数假如使用24MHZ的主频则PWM频率为6000HZ。#define PWM_HIGH_MIN 32 //限制PWM输出的最小占空比。用户请勿修改。 #define PWM_HIGH_MAX (PWM_DUTY-PWM_HIGH_MIN) //限制PWM输出的最大占空比。用户请勿修改。/************* 本地变量声明 **************/u16 PWM_high,PWM_low; //中间变量用户请勿修改。 u16 pwm; //定义PWM输出高电平的时间的变量。用户操作PWM的变量。/************* 本地函数声明 **************//************* 外部函数和变量声明 *****************/void GPIO_config(void) {GPIO_InitTypeDef GPIO_InitStructure; //结构定义GPIO_InitStructure.Mode GPIO_OUT_PP; //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PPGPIO_InitStructure.Pin GPIO_Pin_5; //指定要初始化的IO, 或操作GPIO_Inilize(GPIO_P3, GPIO_InitStructure); //P3.5初始化为推挽输出 }/************************ 定时器配置 ****************************/ void Timer_config(void) {TIM_InitTypeDef TIM_InitStructure; //结构定义TIM_InitStructure.TIM_Mode TIM_16BitAutoReload; //指定工作模式, TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMaskTIM_InitStructure.TIM_Polity PolityHigh; //指定中断优先级, PolityHigh,PolityLowTIM_InitStructure.TIM_Interrupt ENABLE; //中断是否允许, ENABLE或DISABLETIM_InitStructure.TIM_ClkSource TIM_CLOCK_1T; //指定时钟源, TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_ExtTIM_InitStructure.TIM_ClkOut ENABLE; //是否输出高速脉冲, ENABLE或DISABLETIM_InitStructure.TIM_Value 65536UL - PWM_HIGH_MIN; //初值,TIM_InitStructure.TIM_Run ENABLE; //是否初始化后启动定时器, ENABLE或DISABLETimer_Inilize(Timer0,TIM_InitStructure); //初始化Timer0 Timer0,Timer1,Timer2 }/**************** 计算PWM重装值函数 *******************/ void LoadPWM(u16 i) {u16 j;if(i PWM_HIGH_MAX) i PWM_HIGH_MAX; //如果写入大于最大占空比数据则强制为最大占空比。if(i PWM_HIGH_MIN) i PWM_HIGH_MIN; //如果写入小于最小占空比数据则强制为最小占空比。j 65536UL - PWM_DUTY i; //计算PWM低电平时间i 65536UL - i; //计算PWM高电平时间EA 0;PWM_high i; //装载PWM高电平时间PWM_low j; //装载PWM低电平时间EA 1; }/******************** 主函数**************************/ void main(void) {GPIO_config();Timer_config();EA 1;P35 0; //对于STC15W408S系列要输出低或者设置成推挽或OD否则不正常pwm (u16)(PWM_DUTY * 0.25); //给PWM一个初值这里为25%占空比LoadPWM(pwm); //计算PWM重装值while (1){} }实验现象 PWM频率 定时器时钟频率 / PWM_DUTY 30MHz/60005000Hz 30MHz / 6000 5000 Hz30MHz/60005000Hz
http://www.zqtcl.cn/news/111158/

相关文章:

  • 网站不备案做优化小程序开发前景怎么样
  • 美丽说网站优化百度关键词优化
  • 同性男做的视频网站赶集网招聘最新招聘附近找工作
  • 做挖机配件销售的网站oa办公系统软件哪家好
  • 聊城设计网站商务网站的特点
  • 厦门做个网站多少钱工程建设范围
  • 百度推广官方网站在哪里制作网页
  • 济南集团网站建设方案沈阳手机网站制作
  • 网站备案号注销的结果做网站的外包能学到什么
  • 在线购物网站开发项目网站建设电话推广话术
  • 网站主体信息太原站扩建
  • 西平县住房和城乡建设局网站空间商网站
  • p2p网站建设cms一键生成图片
  • 甘肃省第八建设集团公司网站能够做物理题的网站
  • 团购网站建设方案建筑工程网校官网
  • 佛山建站网站模板小公司管理方法
  • 常德住房和城乡建设局网站做风险代理案源的网站
  • 手机网站开发人员选项wordpress加载媒体库
  • 做钓鱼网站用哪种编程语言张家界有实力seo优化费用
  • 如何做一个主题网站做网站必须有框架么
  • 建设网站需要什么知识上海高端网页设计
  • 电子商务网站建设基本流程公司网站建设平台
  • 域名没过期 网站打不开怎么办素马设计顾问讲解价格
  • 怎么做非法彩票网站贵州网站开发哪家便宜
  • 青岛市医疗保险网站wordpress七牛云
  • 哪个浏览器可以做网站查询网站的外链
  • 浅析社区网站的建设有了网站源码 怎么建设网站
  • 苏州网站排名优化系统网页设计师
  • 网站开发定制推广杭州河南省的网页制作
  • 北京随喜设计网站国内好的seo网站