资源简介
新西达电调 hw30a 51单片机驱动无刷电机程序
里面有注释,通过两个按钮控制油门的增减

代码片段和文件信息
#include
sbit Ppm=P2^0;
sbit Up=P2^1; //油门控制
sbit Down=P2^2;
sbit Led_Up=P2^3; //油门指示灯
sbit Led_Down=P2^4;
unsigned char k=0;
unsigned char a=0;
void Control()
{
if(Up==0&&k<99) //检测是否加油门
k++;
else if(Down==0&&k>0) //检测是否减油门
k--;
else ;
}
void Led ()
{
if(k==99) //如果油门加到最大,灯亮
Led_Up=0;
else if(k==0) //如果油门减到最小,灯亮
Led_Down=0;
else
{
Led_Up=1;
Led_Down=1;
}
}
/**************************************************************
函数功能:主函数
**************************************************************/
void main(void)
{
EA=1; //开总中断
ET1=1; //定时器T1中断允许
TMOD=0x10; //TMOD=0001 000B,使用定时器T1的模式116位
TH1=0xfc-k*12/256; //定时器T1的高8位赋初值
TL1=0x89-k*12%256; //定时器T1的高8位赋初值
TR1=1; //启动定时器T1
while(1)//无限循环等待中断
{
while(TF1==0) ;
TF1=0;
Control();
Led ();
}
}
/**************************************************************
函数功能:定时器T1的中断服务程序
在此函数中严重禁止使用如下格式赋值!!!!!!!!!!!!!!!
TH1=(65536-k)/256; //定时器T1的高8位赋初值
TL1=(65536-(125-k))%256; //定时器T1的高8位赋初值
不然输出来的计时长度就会变长!!!!!!!!!!!!!!!!!!
**************************************************************/
void Time1(void) interrupt 3 using 0 //“interrupt”声明函数为中断服务函数
{
unsigned char b;
TR1=0; //关闭定时器T1
b=k; //防止在给TH1和TL1赋值时,k发生变动
if(a==0)
{
a=1;
Ppm=1; //高电平
TH1=0xfc-k*12/256; //定时器T1的高8位赋初值
TL1=0x89-k*12%256; //定时器T1的低8位赋初值
}
else if(a==1)
{
a=0;
Ppm=0; //低电平
TH1=0xb7+k*12/256; //定时器T1的高8位赋初值
TL1=0x88+k*12%256; //定时器T1的低8位赋初值
}
else ;
TR1=1; //启动定时器T1
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1036 2013-08-02 11:39 1.hex
文件 35 2013-08-02 11:39 1.lnp
文件 5907 2013-08-02 11:39 1.M51
文件 429 2013-08-02 11:40 1.plg
....... 55684 2013-08-02 11:47 1.uvopt
文件 13219 2013-05-08 20:58 1.uvproj
....... 55686 2013-05-09 12:11 1_uvopt.bak
文件 0 2013-05-08 19:41 1_uvproj.bak
文件 2083 2013-08-02 11:41 23.c
文件 4108 2013-08-02 11:40 23.LST
文件 74133 2013-05-09 11:26 45.DSN
文件 1105 2013-05-09 11:26 45.PWI
文件 75251 2013-05-09 08:02 Last Loaded 45.DBK
文件 1515 2013-08-02 11:45 电调设置.txt
----------- --------- ---------- ----- ----
290191 14
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 51单片机频率计(很简单)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
- 基于51单片机的计算器(C51编写,有
- 51单片机大量源码
- 基于51单片机的交通信号灯程序
- GSM监控系统51单片机设计
- 51单片机定时器/计数器的结构和原理
- MCS-51单片机定时器和计数器区别的理
评论
共有 条评论