完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
软件我用C语言 照着书弄得 不知道为什么不行 #include #define uchar unsigned char #define uint unsigned int ***it mode=P2^0; ***it direction=P2^1; ***it clk=P2^2; ***it key1=P2^3; ***it key2=P2^4; ***it key3=P2^5; ***it key4=P2^6; ***it lcars=P2^7; ***it lcden=P3^0; uchar code state[3][16]={"speed(n/min):120","direction:ccw"."direction:cw"}; char countkey; unit count_int; unit code zhouqi[]={2500,125,62,12}; unit code speed[]={3,60,120,600}; void delayms(unit x) { unit i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void write_com(uchar com) { lcdrs=0; P1=com; delayms(5); lcden=1; delayms(5); lcden=0; } void write_data(unchar date) { lccdrs=1; P1=date; delayms(5); lcden=1; delayms(5); lcden=0; } void init_lcddisply() { uchar unm; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80+0x00); for(num=0;num<16;num++) { write_date(state[2][num]); delayms(5); } write_com(0x80+0x40); for(num=0;num<16;num++) { write_date(state[0][num]); delayms(5); } } void write_ddat_to_lcd(unchar add,unit dat) { unchar gewei,shiwei,baiwei; gewei=dat%10; shiwei=dat%100/10; baiwei=dat/100; write_com(0x80+add); write_com(0x30+baiwei); write_com(0x30+shiwei); write_com(0x30+gewei); } void keyscan() { uchar i; if(key1=0) { delayms(5); if(key1=0) { while(!key1); countkey++; if(countkey>3) countkey=0; write_dat_to_lcd(0x4d,speed[countkey]; } } if(key==2) { delayms(5); if(key2==0) { while(!key2); countkey--; if(countkey<0) countkey=3; write_dat_to_lcd(0x4d,speed[countkey]; } } if(key3==0) { delayms(5); if(key3==0) { while(!key3); direction=1; write_com(0x80+0x000; for(i=0;i<16;i++) { write_date(state[2]); delayms(2); } } } if(key4==0) { delayms(5); if(key4==0) { while(!key4); direction=0; write_com(0x80+0x000; for(i=0;i<16;i++) { write_date(state[1]); delayms(2); } } } } void main() { countkey=1; mode=1; direction=1; init_lcddisplay(); TMOD=0x02; TH0=255-200; TL0=255-200; EA=1; ET0=1; TR0=1; while(1) { keyscan(); } } void timer0_int(1) interrupt 1 { TR0=0; count_int++; if(count_int>zhouqi[countkey]) { clk=~clk; count_int=0; } TR0=1; } |
|
相关推荐
23个回答
|
|
有没有帮帮我呀
|
|
|
|
我实在是不会整了
|
|
|
|
help~~~~
|
|
|
|
这个太笼统,你还是把问题细化一些吧
|
|
|
|
看了一篇又一偏,没看的懂
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
这是设计要求 我自己弄不出来了 不太理解297 和 298 到底怎么驱动电机的
|
|
|
|
图片好象是两相电机,改变频率调速。你也弄一张清楚一点的图片,怎么看啊!!
|
|
|
|
可以理解为297将一路正弦脉冲转变成ABCD思路脉冲,单四拍,双四拍或者四八拍,具体几拍看别的控制信号,产生的ABCD经过298伺服放大带动电机 。中间的INH和ENA没看懂 |
|
|
|
这个感觉不是很难吧,L298能控制两路电机,并且最少有两种方法能实现调节电机的转速,感觉控制使能引脚是最简单的,但归根到底是利用PWM
|
|
|
|
那个能控制四相电机么 |
|
|
|
WensHuai♪ 发表于 2016-7-1 22:38 嗯 那单片机要怎么控制297呢 程序怎么编 |
|
|
|
二相和四相有什么区别吗? 我不懂啊 我就随便选的电机 |
|
|
|
我没用过四相电机,但是不管几相电机,只是步距角不同吧,这个只是精度上的差异吧,建议你仔细看一下L298的datasheet,功能并不复杂 |
|
|
|
首先你的那个图中貌似就是简单的电机,按照你的设计需求,先选一个步进电机,弄清楚电机的控制方法,然后通电顺序用单片机的引脚去控制(实现正反转),至于速度就可以用L298进行调整了 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
489 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
498 浏览 0 评论
655 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1329 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
558 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11753 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 19:19 , Processed in 1.019030 second(s), Total 108, Slave 90 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号