松翰单片机SN8P2711A产生pwm程序,急
松翰单片机SN8P2711A产生pwm程序,急!在线等啊,那位大侠帮帮忙啊,给个程序看一下!
只要松翰的,51的我自己做过
松翰单片机SN8P2711A产生pwm程序,急
答案:2 悬赏:10 手机版
解决时间 2021-02-28 17:33
- 提问者网友:酱爆肉
- 2021-02-28 05:27
最佳答案
- 五星知识达人网友:野味小生
- 2021-02-28 05:58
给个51单片机的给你参考下
*---------------
文件名称: PWM.C
功能 :单片机脉冲方式产生PWM信号
----------------*/
#include // 引用标准库的头文件
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define COUNT0 XBYTE [0x0000] // 8254计数器0寄存器地址
#define COUNT1 XBYTE [0x0200] // 8254计数器1寄存器地址
#define COUNT2 XBYTE [0x0400] // 8254计数器2寄存器地址
#define COMWORD XBYTE [0x0600] // 8254控制寄存器地址
void time0_int () interrupt 1 using 1
{
TR0=0; // 关闭T0
TH0=-(20000/256);
TL0=-(20000%256); //重置20ms计数值
COMWORD=0x30; //1MHz时钟作为计数时钟,计数1000次后实现1ms高电平
COUNT0=0xE0;
COUNT1=0x03;
COMWORD=0x70; //1MHz时钟作为计数时钟,计数2000次后实现2ms高电平
COUNT0=0xD0;
COUNT1=0x07;
COMWORD=0xB0;//1MHz时钟作为计数时钟,计数3000次后实现32ms高电平
COUNT0=0xB0;
COUNT1=0x0B;
TR0=1; //启动T0
}
//主函数
void main ()
{
EA=1; // 开CPU总中断
ET0=1; // 开T0定时器中断
TMOD=0x01; // 开定时器中断
TH0=-(20000/256); //20ms定时器计数初值
TL0=-(20000%256);
COMWORD=0x30;
COUNT0=0; //赋低位字节
COUNT0=0; //赋高位字节
COMWORD=0x70;
COUNT0=0; //赋低位字节
COUNT0=0; //赋高位字节
COMWORD=0xB0;
COUNT0=0; //赋低位字节
COUNT0=0; //赋高位字节
TR0=1; //启动定时器0
While (1); //无限次循环
}
*---------------
文件名称: PWM.C
功能 :单片机脉冲方式产生PWM信号
----------------*/
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define COUNT0 XBYTE [0x0000] // 8254计数器0寄存器地址
#define COUNT1 XBYTE [0x0200] // 8254计数器1寄存器地址
#define COUNT2 XBYTE [0x0400] // 8254计数器2寄存器地址
#define COMWORD XBYTE [0x0600] // 8254控制寄存器地址
void time0_int () interrupt 1 using 1
{
TR0=0; // 关闭T0
TH0=-(20000/256);
TL0=-(20000%256); //重置20ms计数值
COMWORD=0x30; //1MHz时钟作为计数时钟,计数1000次后实现1ms高电平
COUNT0=0xE0;
COUNT1=0x03;
COMWORD=0x70; //1MHz时钟作为计数时钟,计数2000次后实现2ms高电平
COUNT0=0xD0;
COUNT1=0x07;
COMWORD=0xB0;//1MHz时钟作为计数时钟,计数3000次后实现32ms高电平
COUNT0=0xB0;
COUNT1=0x0B;
TR0=1; //启动T0
}
//主函数
void main ()
{
EA=1; // 开CPU总中断
ET0=1; // 开T0定时器中断
TMOD=0x01; // 开定时器中断
TH0=-(20000/256); //20ms定时器计数初值
TL0=-(20000%256);
COMWORD=0x30;
COUNT0=0; //赋低位字节
COUNT0=0; //赋高位字节
COMWORD=0x70;
COUNT0=0; //赋低位字节
COUNT0=0; //赋高位字节
COMWORD=0xB0;
COUNT0=0; //赋低位字节
COUNT0=0; //赋高位字节
TR0=1; //启动定时器0
While (1); //无限次循环
}
全部回答
- 1楼网友:荒野風
- 2021-02-28 07:26
可以。
有专门的编译器,在官网下载,www.sonix.com.cn。
最新的版本是sn8_c_studio_v144。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯