资源简介
直流电机控制程序,可以学习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
- 上一篇:蓝屏分析大全分析蓝屏原因
- 下一篇:学生成绩管理系统制作教程(含代码)
相关资源
- 用Proteus仿真的sht11电路
- 基于51单片机水量检测c代码+proteus仿真
- 智能温度传感器Proteus+Keil含功能思路
- 51单片机密码锁PROTEUS仿真
- 交通灯控制电路设计,proteus仿真
- 单片机PIC16F887模拟电话设计程序含P
- 单片机水塔水位控制系统课程设计p
- 027 简易电子秤 LCD1602显示 超重报警
- 基于proteus的跑马灯仿真分析
- 51单片机温度报警器设计程序及prote
- 客车超载proteus仿真
- 基于PROTEUS的单片机多路温度采集系统
- 基于Proteus八路抢答器的设计与仿真
- 基于52单片机自动空调加PROTEUS仿真
- 8086Proteus报警器
- Proteus播放音乐
- proteus仿真16*16点阵屏显示汉字4个
- 嵌入式系统图形界面 GUI 基于51单片机
- LCD12864里面包括源代码和使用Proteus仿
- PROTEUS仿真单片机最小系统
- proteus+8086 IO口读写实现
- Proteus 7.5 sp3 破解文件 v2.1.2
- MSP430单片机通过proteus仿真DS18B20程序
- ds12887+1602显示万年历proteus7.5仿真
- 电子琴----基于Proteus仿真8086.zip
- DS18B20温度传感器的proteus仿真.rar
- 12864LCD无字库proteus仿真).rar
- 可以录制曲子的八音阶电子琴.pdsprj
- 单片机proteus8255A芯片扩展
- Proteus8086+8255直流电机仿真
评论
共有 条评论