资源简介
新西达电调 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
相关资源
- RN8302B智能电表芯片程序基于STC12系列
- 51单片机蜂鸣器音乐实验(致爱丽丝)
- 基于51单片机和Proteus仿真的波形发生
- 用51单片机解析GPS数据的源代码程序
- 分享一个51单片机做的简易示波器
- 51单片机空闲和掉电模式应用带程序
- 利用51单片机计数器测频率最简程序
- 51单片机驱动继电器例程+pretues仿真
- 51单片机A4988驱动源码
- 51单片机ADC0832_1602 proteus仿真源程序加
- 51单片机ADC0832电压测量液晶1602显示的
- 51单片机 MPU6050读取并通过串口输出
- nrf24L01双向通信程序51单片机
- 基于AT89C51单片机的电子计价秤的设计
- 51单片机用433M无线模块控制程序
- at89c51单片机开发板原理图
- 51单片机可显示频谱电子琴
- 基于51单片机的modbus rtu 通信测试程序
- 51单片机交通灯汇编程序
- 基于51单片机的简单计算器数码管显示
- 51单片机485(modbus协议)通信程序
- 基于AT89c51单片机的数字温度测量及显
- 51单片机播放音乐、电子琴、快进
- 51单片机1602+ADIIC+按键
- 基于51单片机和lcd1602的adc0804测电压电
- 如何利用51单片机输出PWM波
- 51单片机数字时钟-proteus仿真文件及
- MCS-51单片机实用子程序库
- 89C51FFT蝶形算法
- 基于51单片机定时器实现的数字时钟
评论
共有 条评论