历史上的今天
今天是:2024年12月10日(星期二)
2019年12月10日 | 51单片机直流电机调速源程序
2019-12-10 来源:51hei
单片机源程序如下:
#include "reg52.h"
sbit IN1=P1^1;
sbit IN2=P1^2;
sbit IN3=P1^3;
sbit IN4=P1^4;
unsigned char pwm_val_right=0;
unsigned char push_val_right=0;
unsigned int time=0;
unsigned char pwm_val_left=0;
unsigned char push_val_left=0;
bit right_moto_stop=1;
sbit right_moto_pwm=P2^0;
bit left_moto_stop=1;
sbit left_moto_pwm=P2^1;
void delay(unsigned int i)
{
unsigned int k;
for(k=0;k<7000;k++)
for(i=0;k}
void pwm_out_right_moto(void)
{
if(right_moto_stop)
{
if(pwm_val_right<=push_val_right)
right_moto_pwm=1;
else
right_moto_pwm=0;
if(pwm_val_right>=100)
pwm_val_right=0;
}
else right_moto_pwm=0;
}
void pwm_out_left_moto(void)
{
if(left_moto_stop)
{
if(pwm_val_left<=push_val_left)
left_moto_pwm=1;
else
left_moto_pwm=0;
if(pwm_val_left>=100)
pwm_val_left=0;
}
else right_moto_pwm=0;
}
void time0_init()
{
TMOD=0X01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
TR0=1;
ET0=1;
EA=1;
}
void forward(unsigned char i)
{
push_val_right=i;
push_val_left=i;
IN1=0;
IN2=1;
IN3=1;
IN4=0;
}
void forward1(unsigned char l)
{
push_val_right=l;
push_val_left=l;
IN1=1;
IN2=0;
IN3=0;
IN4=1;
}
void time0()interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
ET0=1;
TR0=1;
time++;
pwm_val_right++;
pwm_out_right_moto();
pwm_val_left++;
pwm_out_left_moto();
}
void main()
{
unsigned char i,k;
time0_init();
while(1)
{
for(i=10;i<100;i++)
{
forward(i);
delay(10000);
}
for(k=100;k<=100;k--)
{
forward(k);
delay(10000);
}
for(i=10;i<100;i++)
{
forward1(i);
delay(10000);
}
for(k=100;k<=100;k--)
{
forward1(k);
delay(10000);
}
}
}
史海拾趣
|
关于STM32,TI,NXP的ARM Cortex-m3学习板申请体会 这三家的都申请过,有一些想法 ST最大方,板子,光盘,连接线一应俱全。 并且ST搞过好几次免费申请活动,每次免费送的套件数量还比较大。 拿到套件后就能直接上手练习了。 TI其次,申请的TI套件,使用手册里明明说的是有两块板子,可是我只收到 ...… 查看全部问答> |
|
代码如下: SOCKET Sock = INVALID_SOCKET; // Datagram window socket SOCKADDR_IN source_sin; &n ...… 查看全部问答> |
|
在CRC8中出现了误码但没发现的概率是1/256,CRC16的概率是1/65536,而CRC32的概率则是1/2^32,那已经是非常小了,所以一般在数据不多的情况下用CRC16校验就可以了,而在整个文件的校验中一般用CRC32校验。 如何理解,是否要用概率论的模型去解释? ...… 查看全部问答> |
|
之前关于EVC下图形编程画二维曲线问题已经有了进展,现在刚画出简单的二维曲线,就是随机折线那样的,主要通过两个随机数nRandomX = rand() % 10;nRandomY = rand() % 10; 主要代码如下: BOOL CDraw2DGraphDlg::OnInitDialog() {   ...… 查看全部问答> |
|
我的解决方法是用1117-3.3,相信这个芯片大家都有。它的引脚和BL相同,但板上封装是sot89,我手头只有sot223,我把1脚和3脚向里折了一下,注意不要折断,然后再焊上就可以了。这时板子上D2不要焊,L1用焊锡直接连上就可以了。 现在板子的电压是3.3V ...… 查看全部问答> |
|
Ver 0.1 - Jeffrey1.MSP430 入门2.如何为我的应用选择最合适的MSP430 芯片?3.与MSP430 的引导加载程序通信的开发工具4.MSP430 需配合何种晶振工作?5.使用哪款MSP430 编程器可以用来烧断JTAG 熔丝?6.要实现MSP430 编程,应如何连接JTAG?7 ...… 查看全部问答> |
|
1设计要求 2设计方案 3选便宜的看看,效率和下边那个是什么 4原理图 在选择方案时会出现相关LED厂家产品的选择很方便,可以参考修改设计,找到更加合适方案 … 查看全部问答> |




