#include "pwm.h"
//全局变量定义
u8 gtim_h=0;//保存定时器初值高8位
u8 gtim_l=0;//保存定时器初值低8位
u8 gduty=0;//保存PWM占空比
u8 gtim_scale=0;//保存PWM周期=定时器初值*tim_scale
/*******************************************************************************
* 函 数 名 : pwm_init
* 函数功能 : PWM初始化函数
* 输 入 : tim_h:定时器高8位
tim_l:定时器低8位
tim_scale:PWM周期倍数:定时器初值*tim_scale
duty:PWM占空比(要小于等于tim_scale)
* 输 出 : 无
*******************************************************************************/
void pwm_init(u8 tim_h,u8 tim_l,u16 tim_scale,u8 duty)
{
gtim_h=tim_h;//将传入的初值保存在全局变量中,方便中断函数继续调用
gtim_l=tim_l;
gduty=duty;
gtim_scale=tim_scale;
TMOD|=0X01; //选择为定时器0模式,工作方式1
TH0 = gtim_h; //定时初值设置
TL0 = gtim_l;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
}
/*******************************************************************************
* 函 数 名 : pwm_set_duty_cycle
* 函数功能 : PWM设置占空比
* 输 入 : duty:PWM占空比(要小于等于tim_scale)
* 输 出 : 无
*******************************************************************************/
void pwm_set_duty_cycle(u8 duty)
{
gduty=duty;
}
void pwm(void) interrupt 1 //定时器0中断函数
{
static u16 time=0;
TH0 = gtim_h; //定时初值设置
TL0 = gtim_l;
time++;
if(time>=gtim_scale)//PWM周期=定时器初值*gtim_scale,重新开始计数
time=0;
if(time<=gduty)//占空比
PWM=1;
else
PWM=0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
51单片机实验是《单片机原理及应用》课程的重要组成部分。通过实验,学生可以加强理解51单片机的硬件结构,熟练掌握并口、串口、中断系统及定时器/计数器的功能和使用方法,进行基于51系列芯片的扩展功能的设计,开发出简单但完整的应用系统。 在实验中,学生通常会使用到实验箱、编程器、仿真器等设备。实验箱是用来放置单片机芯片和各种外围电路的硬件平台,编程器用于将程序代码烧写到单片机芯片中,仿真器则用于在实验过程中实时监测和调试程序。 实验的具体内容通常包括:彩灯移动实验、LED灯控制实验、数码管显示实验、矩阵键盘输入实验、蜂鸣器控制实验等。这些实验旨在帮助学生掌握单片机的各种基本功能和控制方式,并通过实践操作加深对理论知识的理解。 在实验过程中,学生需要注意以下几点:首先,要保证实验设备的正确连接和电源的稳定;其次,要严格按照实验步骤进行操作,遵循正确的编程规范和调试方法;最后,要认真分析实验结果,总结经验教训,不断提高自己的实践能力和技术水平。
资源推荐
资源详情
资源评论
收起资源包目录
24-DAC数模转换实验.zip (10个子文件)
24-DAC数模转换实验
User
main.c 1KB
App
pwm
pwm.h 240B
pwm.c 2KB
Obj
template.m51 8KB
template 8KB
template.hex 1KB
Public
public.h 241B
public.c 754B
template.uvproj 14KB
template.uvopt 56KB
共 10 条
- 1
资源评论
袁满满满满
- 粉丝: 1325
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功