资源简介
直流电机控制程序,可以学习proteus仿真,包含c文件及protues文件

代码片段和文件信息
// PWM 控制 DC电机转速
// 晶振为12M
// 利用定时器控制产生占空比可变的 PWM 波
// 按K1,PWM值增加,则占空比增加电机转快
// 按K2,PWM值减小,则占空比减小电机转慢。
// 当PWM值增加到最大值(255)或减小到最小值(1)时,蜂鸣器将报警。
#include < reg51.h >
sbit K1 =P1^0 ; //增加键
sbit K2 =P1^1 ; //减少键
sbit K3 =P1^2 ; //转向选择键
sbit PWMUOT =P3^0 ; //PWM波输出
sbit turn_around =P3^1 ; //转向控制输出
sbit BEEP =P3^2 ; //蜂鸣器
unsigned int PWM;
void Beep(void);
void delay(unsigned int n);
void main(void)
{
TMOD=0x11;//设置T0、T1为方式1(16位定时器)
TH0=0 ; //65536us延时常数(t=(65536-TH)/fosc/12)
TL0=0;
M ; //脉宽调节,高8位
TL1=0;
EA=1; //开总中断
ET0=1; //开T0中断
ET1=1; //开T1中断
TR0=1 ; //T0定时允许
while(1)
{
if(K3==0&&K1==1&&K2==1)//转向控制
{
turn_around=!turn_around;
}
while(K3==0);//检测K3是否释放
do{
PWM++ ;
if(PWM>0xfe)//防止PWM计数溢出
{
PWM=0xff;
}
if(PWM==0xff)Beep() ;
delay(3000);
}
while(K1==0&&K2==1);
do{
PWM-- ;
if(PWM<1)//防止PWM计数溢出
{
PWM=1;
}
if(PWM==1)Beep() ;
delay(3000);
}
while(K1==1&&K2==0);
}
}
void timer0() interrupt 1 using 2// 定时器0中断服务程序.
{
TR1=0 ; //T1禁止
TH0=0 ; //置T0定时常数
TL0=0 ;
TH1=PWM ; //置T1定时常数
TL1=0;
TR1=1 ; //T1允许
PWMUOT=0 ; //PWM波输出0
}
void timer1() interrupt 3 using 3 // 定时器1中断服务程序
{
TR1=0 ; //T1禁止
PWMUOT=1 ; //PWM波输出1
}
void Beep(void) //蜂鸣器子程序
{
unsigned char i;
for (i=0;i<100;i++)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 107833 2008-11-08 23:57 1 直流电机控制\Last Loaded pwm.DBK
文件 106991 2008-11-09 10:46 1 直流电机控制\Last Loaded pwm1.DBK
文件 106991 2008-11-09 10:54 1 直流电机控制\pwm.DSN
文件 840 2002-12-28 18:00 1 直流电机控制\pwm.PWI
文件 792 2008-11-09 10:58 1 直流电机控制\pwm1.PWI
文件 4310 2008-11-09 10:53 1 直流电机控制\pwm2
文件 3462 2008-12-28 19:30 1 直流电机控制\pwm2.c
文件 696 2008-11-09 10:53 1 直流电机控制\pwm2.hex
文件 64 2008-11-09 10:53 1 直流电机控制\pwm2.lnp
文件 4415 2008-11-09 10:53 1 直流电机控制\pwm2.LST
文件 7906 2008-11-09 10:53 1 直流电机控制\pwm2.M51
文件 4337 2008-11-09 10:53 1 直流电机控制\pwm2.OBJ
文件 1476 2008-12-25 23:28 1 直流电机控制\pwm2.Opt
文件 162 2008-12-25 23:28 1 直流电机控制\pwm2.plg
文件 2045 2008-12-25 23:28 1 直流电机控制\pwm2.Uv2
文件 6376 2005-03-22 15:22 1 直流电机控制\STARTUP.A51
文件 14049 2008-11-09 10:53 1 直流电机控制\STARTUP.LST
文件 749 2008-11-09 10:53 1 直流电机控制\STARTUP.OBJ
目录 0 2013-06-05 12:16 1 直流电机控制
----------- --------- ---------- ----- ----
373494 19
- 上一篇:蓝屏分析大全分析蓝屏原因
- 下一篇:学生成绩管理系统制作教程(含代码)
相关资源
- 51单片机PWM程序,占空比、周期可调整
- proteus仿真 AT89C51输出各种波形
- 00
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- proteus_24C08—有注释(proteus里面使用的
- DS18B20分布式多点测温的Proteus仿真
- 基于proteus的单片机仿真--交通灯控制
- 带时间温度显示的室内灯光控制系统
- 51多机通信(内附Proteus及.hex文件)
- IIC proteus仿真实验
- 8086交通灯 Proteus原理图及程序
- 单片机仿真软件proteus6.7免安装绿色版
- 关于proteus仿真arm7出现错误的问题
- 基于PROTEUS的ARM7显示系统设计与仿真实
- STM32+1602液晶proteus仿真.zip
- AT89C51+ADC0808 PROTEUS仿真
- 单片机驱动4相步进电机proteus仿真
- proteus元件库对照表 (整理清晰)
- 微机原理 十字路口交通灯控制 prot
- 中央空调室内智能温控器设计论文、
- 基于51单片机的交通灯设计
- 基于AT89C51的十字路口交通灯设计pro
- Proteus单片机仿真大全几百个part4
- Proteus升压电路仿真
- keil调试仿真技巧-从入门到精通
- 十字路口交通灯.pdsprj
- 12864液晶Proteus模型
- 数电设计 交通灯控制逻辑电路设计
- Proteus仿真的单片机控制步进电机及液
评论
共有 条评论