您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页pwm程序

pwm程序

来源:爱够旅游网


pwm程序

#define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long

#include //包括一个52标准内核的头文件 sbit P2_0 = P2^0; //要控制的LED灯 sbit P2_1 = P2^1;

uchar scale;//用于保存占空比的输出0的时间份额,总共10份 char code dx516[3] _at_ 0x003b;//这是为了仿真设置的 //模拟PWM输出控制灯的10个亮度级别 void main(void) // 主程序 {

uint n;

TH1 =(65536-8)/256; //赋T1的预置值,溢出1次是1/1200秒钟 TL1 =(65536-8)%256; TR1=1; //启动定时器

ET1=1; //打开定时器1中断 EA=1; //打开总中断 while(1) //程序循环

{ ;//主程序在这里就不断自循环,实际应用中,这里是做主要工作 for(n=0;n<50000;n++); //每过一会儿就自动加一个档次的亮度 scale++;

if(scale==10)scale=0; } }

//1/1200秒定时器1中断 void timer1() interrupt 3 {

static uchar tt; //tt用来保存当前时间在一秒中的比例位置 // bit t;

TH1 =(65536-8)/256; //赋T1的预置值,溢出1次是1/1200秒钟 TL1 =(65536-8)%256; TF1=0; tt++;

if(tt==10) //每1/120秒整开始输出低电平 { tt=0;

if(scale!=0) //这里加这一句是为了消除灭灯状态产生的鬼影 P2_0=1;//P2_1 =0; }

if(scale==tt) //按照当前占空比切换输出高电平 P2_0 =0; // t=\"P2\"_0;

// P2_0=P2_1;P2_1=t; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务