我试了几次都传不上图去,我把管脚定义说一下吧。
P1.0—P1.4接5个对地键,分别作为:顺时针、逆时针、停止、加速和减速按键。
P3.0接L294的IN1,P3.1接IN2。P3.7接ENA,也就是PWM输出口。
另外你也可以用P0和P2口接LED或者LCD显示屏。
晶振就用单片机流行的12MHz就行了。
我这是用C语言写程序Keil编译。
#include<reg51.h>
sbit MA = P3^0;
sbit MB = P3^1;
sbit PWM = P3^7;
bit KeyFree;
unsigned char PWM_OUT;
void Delay(unsigned char); //声明延时函数
unsigned char KeyScan(void);
void keyProcess(unsigned char);
main()
{
TMOD = 0x01;
TH0 = - 50000 /256;
TL0 = - 50000 % 256;
IE = 0x82;
TR0 = 1;
while (1)
{
keyProcess(KeyScan());
}
}
void T0_INT () interrupt 1 //定时器函数控制PWM输出
{
TH0 = -5000 / 256;
TL0 = -5000 % 256;
PWM=1; //设置PWM输出
Delay(PWM_OUT);
PWM=0;
Delay(100-PWM_OUT);
}
void Delay(unsigned char x)
{
uchar i;
while(x--) for(i = 0;i < 200; i++);
}
unsigned char KeyScan(void)
{
P1|=0x1f;
if((P1&0x1f)!=0x1f)
{
Delay(10); //延时去抖
if((P1&0x1f)!=0x1f)
{
return P1&0x1f;
}
}
return P1&0x1f;
}
void keyProcess(uint key)
{
if(key==0x1f) /*******************/
{ /* */
KeyFree=1; /* 软件松手检测 */
} /* */
else /* */
{ /* */
if(KeyFree==1) /* */
{ /*******************/
KeyFree=0;
/*******************************************/
switch (key)
{
case 0x1e : {
MA=1;
MB=0;
break;}
case 0x1d : {
MA=0;
MB=1;
break;}
case 0x1b : {
PWM_OUT =0;
break;}
case 0x17 : {
if(PWM_OUT!=90){
PWM_OUT+=30;}
break;}
case 0x0f : {
if(PWM_OUT!=30&&PWM_OUT!=0){
PWM_OUT-=30;}
break;}
}
/*******************************************/
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
xiaoche.zip_stm8s903.h
共180个文件
c:37个
h:25个
obj:24个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 61 浏览量
2022-09-19
19:36:58
上传
评论
收藏 568KB ZIP 举报
温馨提示
51单片程序,编写的是小车的程序,模拟小车,
资源推荐
资源详情
资源评论
收起资源包目录
xiaoche.zip_stm8s903.h (180个子文件)
电机调速_uvopt.bak 59KB
电机调速_uvproj.bak 14KB
电机调速_Opt.Bak 3KB
电机调速.opt.bak 2KB
电机调速_Opt.Bak 2KB
电机调速.Uv2.bak 2KB
电机调速.Uv2.bak 2KB
电机调速_Uv2.Bak 2KB
电机调速_Uv2.Bak 2KB
电机调速.Uv2.bak 2KB
电机调速_Uv2.Bak 2KB
电机调速.Uv2.bak 2KB
电机调速.opt.bak 2KB
电机调速_Opt.Bak 2KB
电机调速.opt.bak 2KB
电机调速.opt.bak 1KB
stm8s_it.c 14KB
main.c 12KB
复件 nRF905.c 10KB
复件 nRF905.c 10KB
Motor.c 9KB
nRF905.c 9KB
nRF905.c 9KB
nRF905.c 9KB
电机调速.c 7KB
电机调速.c 7KB
Motor.c 6KB
复件 MotorState.c 5KB
Tim.c 4KB
_main.c 4KB
_main.c 4KB
AD.c 3KB
confuguration.c 3KB
A_USART.C 2KB
Uart.c 2KB
Uart.c 2KB
MotorState.c 2KB
SMG.c 2KB
SMG.c 2KB
Uart.c 2KB
Uart.c 2KB
SMG.c 2KB
SMG.c 2KB
MotorState.c 2KB
_main.c 2KB
辅助资料.c 2KB
辅助资料.c 2KB
辅助资料.c 2KB
Delay.c 743B
Delay.c 743B
Delay.c 743B
main.c 597B
_main.c 528B
Last Loaded 直流电机.DBK 148KB
Last Loaded 直流电机.DBK 148KB
Last Loaded 直流电机.DBK 148KB
直流电机.DSN 162KB
直流电机.DSN 162KB
直流电机.DSN 162KB
iostm8s903k3.h 127KB
stm8s_it.h 7KB
IDEstm8s903.h 3KB
stm8s_type.h 3KB
Motor.h 3KB
MAIN_header.h 3KB
AD.h 914B
Uart.h 619B
Uart.h 619B
nRF905.h 562B
nRF905.h 555B
nRF905.h 555B
Uart.h 354B
Uart.h 354B
SMG.h 352B
SMG.h 352B
SMG.h 338B
Tim.h 338B
MotorState.h 302B
MotorState.h 298B
Motor.h 288B
A_usart.h 263B
Delay.h 170B
Delay.h 170B
Delay.h 170B
电机调速.hex 5KB
电机调速.hex 4KB
电机调速.hex 2KB
电机调速.hex 2KB
motor.IAB 304KB
motor.IAD 3KB
motor.IMB 72KB
motor.IMD 1KB
电机调速.lnp 118B
电机调速.lnp 99B
电机调速.lnp 91B
电机调速.lnp 72B
nRF905.LST 17KB
nRF905.LST 17KB
nRF905.LST 17KB
电机调速.LST 15KB
共 180 条
- 1
- 2
资源评论
小贝德罗
- 粉丝: 71
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 传热 - 化工原理实验Python代码
- wallhaven-d68gdg_3840x2160.png
- DS18b20.DSN
- 创建MySQL Workbench中的Connections(连接).pdf
- 基于单片机的非接触智能测温系统设计硬件电路设计
- 110套html5模板+精品整站源码+16套小程序源码+20套java源码带文档+面试题
- Matlab实现LSTM-Adaboost长短期记忆网络Adaboost集成学习时间序列预测(股票价格预测)(完整源码和数据)
- 上市公司企业短期并购绩效和长期并购绩效数据集合(2008-2022).txt
- 简单菜谱_0.3.zip
- C++ UML建模,采用starUML工具
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功