



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、STC12C5A60S2单片机 PWM程序两个头文件main.c#include <REG51.H>#include <intrins.h>#define U8 unsigned char#define U16 unsigned intvoid DelayMs(U8 ms);void PWM_clock(U8 clock); void PWM_start(U8 module,U8 mode);/延时子程序/void DelayMs(U8 ms) /在 11.0592M 晶振下, stc10f系列 ( 单周期指令) 的ms级延时U16 i;while(ms-)for(i
2、= 0; i < 850; i+); /主函数入口/sfr CCON = 0xD8; /PCA控制寄存器sfr CMOD = 0xD9; /PCA模式寄存器sfr CCAPM0 = 0xDA; /PCA 模块 0 模式寄存器 / 模块 0 对应P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列 )sfr CCAPM1 = 0xDB; /PCA模块 1 模式寄存器 /模块 1 对应P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列 )sfr CL = 0xE9; /PCA定时寄存器低位sfr CH = 0xF9; /PCA定时寄存器高位sfr CCAP0
3、L = 0xEA; /PCA模块 0 的 捕获寄存器低位 sfr CCAP0H = 0xFA;/PCA模块0 的 捕获寄存器高位sfr CCAP1L = 0xEB; /PCA模块1 的 捕获寄存器 低位sfr CCAP1H = 0xFB; /PCA模块1 的 捕获寄存器高位sfr PCA_PWM0 =0xF2; /PCA PWM模式辅助寄存器0sfr PCA_PWM1 = 0xF3; /PCA PWM模式辅助寄存器1sbit CF = 0xDF; /PCA计数溢出标志位sbit CR = 0xDE; /PCA计数器运行控制位sbit CCF1 = 0xD9; /PCA模块1 中断标志sbit
4、CCF0 = 0xD8; /PCA模块0 中断标志/* CCAPOH = CCAPOL = 0XC0; /模块0 输出 占空因数为25%/* CCAPOH = CCAPOL = 0X80; /模块0 输出 占空因数为50%/* CCAPOH = CCAPOL = 0X40; / 模块 0 输出 占空因数为 75% void PWM_clock(U8 clock);void PWM_start(U8 module,U8 mode);void PWM_clock(U8 clock)CMOD |= (clock<<1);CL = 0x00;CH = 0x00;void PWM_start
5、(U8 module,U8 mode,U8 zkb) CCAP0L = 0XC0;CCAP0H = 0XC0; / 模块 0 初始输出 占空因数为 25% CCAP1L = 0XC0;CCAP1H = 0XC0; / 模块 1 初始输出占空因数为 25%if(module=0)switch(mode)case 0: CCAPM0 = 0X42;break; /模块 0 设置为 8 位 PWM输出,无中断case 1: CCAPM0 = 0X53;break; /模块 0 设置为 8 位 PWM输出,下降沿产生中断case 2: CCAPM0 = 0X63;break; /模块 0 设置为 8
6、位 PWM输出,上升沿产生中断case 3: CCAPM0 = 0X73;break; /模块 0 设置为 8 位 PWM输出,跳变沿产生中断default: break;elseif(module=1)switch(mode)case 0: CCAPM1 = 0X42;break; /模块 1 设置为 8 位 PWM输出,无中断case 1: CCAPM1 = 0X53;break; /模块 1 设置为 8 位 PWM输出,下降沿产生中断case 2: CCAPM1 = 0X63;break; /模块 1 设置为 8 位 PWM输出,上升沿产生中断case 3: CCAPM1 = 0X73;
7、break; /模块 1 设置为 8 位 PWM输出,跳变沿产生中断default: break;elseif(module=2)switch(mode)case 0: CCAPM0 = CCAPM1 = 0X42;break; /模块 0 和 1 设置为 8 位 PWM输出,无中断case 1: CCAPM0 = CCAPM1 = 0X53;break; /模块 0 和 1 设置为 8 位 PWM输出,下降沿产生中断case 2: CCAPM0 = CCAPM1 = 0X63;break; /模块 0 和 1 设置为 8 位 PWM输出,上升沿产生中断case 3: CCAPM0 = CCA
8、PM1 = 0X73;break; /模块 0 和 1 设置为 8 位 PWM输出,跳变沿产生中断default: break;CR=1; /PCA 计数器开始计数void PCA_Intrrpt(void) interrupt 7 if(CCF0) CCF0=0;if(CCF1) CCF1=0; /软件清零if(CF) CF=0; /软件清零void main()TMOD|=0x02; /* timer 0 mode 2: 8-Bit reload */TH0=0xff;TR0=1;PWM_clock(2); / PCA/PWM 时钟源为定时器 0 的溢出PWM_start(0,0); /
9、模块 0, 设置为 PWM输出 , 无中断 , 初始占空因素为 25% DelayMs(250);IT0=1; /下降沿触发EX0=1; / 开中断 0EA=1; / 开总中断while(1); /等待中断产生,按下S15 按键产生中断信号#include "reg51.h"#define uchar unsigned char #define uint unsigned intsbit di=P37;uchar jishu=0x00; /用来记录中断的次数void delay(uchar z)uchar i;for(i=0;i<z;i+);/#/ 外部中断 0 子函数void PWM_Select(void) interrupt 0U8 modjishu+; /中断一次加mod=jishu%3;switch(mod)1case 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《小学教师招聘》综合提升试卷含答案详解(培优a卷)
- 国际节水农业示范合作创新创业项目商业计划书
- 动物源性食品新产品创新创业项目商业计划书
- 演出经纪人之《演出经纪实务》综合练习及答案详解(网校专用)
- 押题宝典教师招聘之《幼儿教师招聘》试题及答案详解(夺冠)
- 教师招聘之《幼儿教师招聘》考试黑钻押题附答案详解【考试直接用】
- 2025内蒙古呼伦贝尔选聘政务服务社会监督员9人笔试备考附答案详解(考试直接用)
- 2025年教师招聘之《幼儿教师招聘》题库必背100题附答案详解(突破训练)
- 2025年教师招聘之《小学教师招聘》能力检测试卷及答案详解【全优】
- 2025年教师招聘之《幼儿教师招聘》押题练习试卷及参考答案详解(巩固)
- 2025中国人民抗日战争纪念馆招聘4人考试参考试题及答案解析
- 《住房租赁条例》培训解读课件
- 2025版医疗纠纷委托代理行政复议委托书
- 神经根型颈椎病中医循证实践指南-公示稿
- 北师大版(2024)新教材三年级数学上册课件 3.1 捐书
- 2025年秋季第一学期开学典礼校长致辞:在历史的坐标上接好时代的接力棒(1945→2025→未来:我们的责任接力)
- 意识形态学习辅导课件
- 店面目标管理培训课件
- 2.6戊戌变法课件部编版八年级历史上学期
- 《机械制图》课件(共十一章)-上
- 别墅修复施工方案(3篇)
评论
0/150
提交评论