1.本设计采用STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机作为主控制器
2.采用霍尔传感器非接触式测电机转速
3.LCD1602液晶显示当前的转速,转速单位为转/分(RPM)。和显示当前的pwm占空比0~100%。
4.电机的速度可以通过按键调整,也可以开始暂停,正转和反转。
注意:磁铁和霍尔元件最近距离在2mm左右,太近可能会在电机转动时碰到霍尔元件,太远霍尔元件可能会检测不到磁铁。
使用说明:
液晶屏第一行显示电机转速,第二行显示占空比,占空比数值越大,电机转速越快。
系统一共有6个按键,单片机附近的独立按键是系统的复位按键,按下单片机会复位。
下面一排是控制按键:
1键:加速键,可以短按,占空比加1,也可长按,占空比连续加;
2键:减速键,可以短按,占空比减1,也可长按,占空比连续减;
3键:正转切换键,按下后电机正转;
4键:反转切换键,按下后电机反转;
5键:开始暂停键,按一下开始,再按一下暂停。
电路原理图如下:
PCB图+布局图+焊接图:
单片机源程序如下:
#include #define uchar unsigned char #define uint unsigned int void displaym(); void displayj(); sbit en=P2^5; //1602 6管脚 sbit rs=P2^7; //1602端口 4管脚 sbit rw=P2^6;//lcd1602控制端口 5管脚 sbit num1=P1^0; //占空比加1 sbit num2=P1^1; //占空比减一 sbit num3=P1^2; //正传 sbit num4=P1^3; //反转 sbit num5=P1^4; //开始停止切换 sbit beep=P2^4; sbit out=P3^4; //PWM输出用于正传 sbit out1=P3^7; //PWM输出用于反转 uint zhuansu,flag,z1,z2,m,flag_1,zheng,fan,kai,j,su,qian,bai,shi,ge; void delay(uint z)//延时1ms函数 { uint x,y; for(x=0;x } void write_com(uchar com)//向1602写一字节(控制指令) { rs=0; P0=com; delay(5); en=1; delay(10); en=0; } void write_data(uchar date)//向1602写一字节(数据) { rs=1; P0=date; delay(5); en=1; delay(5); en=0; } void init()//初始化函数 { en=0; rw=0; write_com(0x38); //5X7显示 write_com(0x0c); //关闭光标 write_com(0x01); //lcd初始化 TMOD=0x11; //定时器方式1 TH0=0xdc; TL0=0x00; //定时器装入初值 EA=1; //开总中断 ET0=1; //定时器0开中断 TR0=1; EX1=1; IT1=1; //定时器启动 TH1=0xfc; TL1=0x66;//定时100us ET1=1; //定时器1开中断 TR1=1; write_com(0x80); write_data('V'); write_data(':'); write_com(0x87); //第一行显示转速 write_data('m'); write_data('/'); write_data('m'); write_data('i'); write_data('n'); write_com(0xc0); write_data('z'); write_data('k'); write_data('b'); write_data(':'); displaym(); write_com(0xc8); write_data('s'); write_data('d'); write_data(':'); displayj(); } void keyscan() //键盘扫描函数 { if(num1==0) { delay(5); //消除抖动 if(num1==0) { if(m<=199) m++; displaym(); //设定占空比加一 } } if(num2==0) { delay(5); if(num2==0) { if(m>=1) m--; displaym(); //设定占空比减一 } } if(num3==0) { delay(5); if(num3==0) { j=j+1; displayj(); } } if(num4==0) { delay(5); if(num4==0) { j=j-1; displayj(); } } if(num5==0) { delay(5); if(num5==0) { while(num5==0) ; kai=1-kai; } } } void display() { write_com(0x82); zhuansu=zhuansu*30; //将两秒内的计数乘以30得到转每分 su=zhuansu*0.01*2*3.14/2; qian=(su/1000)%100; write_data(qian+0x30); bai=(su/100)%10; write_data(bai+0x30); shi=(su/10)%10; write_data(shi+0x30); write_data('.'); ge=su%10; write_data(ge+0x30); write_com(0xd0); } void displaym() { write_com(0xc4); if(m/200%10!=0) write_data(m/200%10+0x30); //如果占空比百位不为0则显示百位否则显示空格 else write_data(' '); if(m/200%10==0&&m/20%10==0) write_data(' '); else write_data(m/20%10+0x30); //如果占空比小于10 十位正常显示 否则显示空格 write_data(m/2%10+0x30); //显示个位 } void displayj() { write_com(0xcb); if(j/100%10!=0) write_data(m/100%10+0x30); else write_data(' '); if(j/100%10==0&&j/10%10==0) write_data(' '); else write_data(j/10%10+0x30); write_data(j/1%10+0x30); write_com(0xd0); } void main() { flag_1=0; m=100; //占空比为100
上一篇:超详细的单片机交通信号灯控制程序
下一篇:基于51单片机的红外智能风扇程序
推荐阅读
史海拾趣
风华的故事始于1984年,当时广东肇庆风华电子厂成立,最初业务聚焦于收录机装配。一年后,即1985年,国内首条从美国引进的年产1亿只片式多层陶瓷电容器生产线落户风华,标志着公司正式踏入高新技术产业领域。这一举措不仅提升了公司的技术实力,也为后续的发展奠定了坚实基础。
深圳市固得沃克电子有限公司(GOODWORK)的故事始于2004年,当时公司正式成立,专注于半导体分立器件的研发、生产和销售。公司总部设在深圳,并创立了自主品牌“GK”。这一时期的固得沃克,凭借对技术的执着追求和对市场的敏锐洞察,逐步在电子行业站稳脚跟。公司初期虽面临诸多挑战,但凭借团队的坚持和创新精神,逐渐赢得了客户的信赖,为后续的快速发展奠定了坚实基础。
近年来,FRIWO与印度UNO MINDA集团建立了战略合作关系,共同开发印度电动汽车市场。UNO MINDA集团投资1500万欧元收购FRIWO AG的部分股权,这一交易标志着FRIWO在电动汽车领域的进一步拓展。双方合作将结合FRIWO在电源和充电技术方面的优势与UNO MINDA在印度市场的深厚基础,为印度市场提供完整的电驱动系统解决方案。这一合作不仅增强了FRIWO在全球市场的影响力,也为印度电动汽车市场的发展注入了新的活力。
在追求高性能与业务和谐的道路上,Cavium Networks 与 Wind River 公司展开了深度合作。两家公司共同制定了长期的产品研发路线,Wind River 为 Cavium 的 OCTEON II 等多核处理器提供了商业级支持。通过合作,双方共同调整和优化了领先的多核硬件和软件解决方案,为用户提供了世界领先的多核解决方案。这一合作不仅提升了 Cavium Networks 的技术实力和市场地位,也推动了整个电子行业的发展。
随着市场需求的不断增长,博众电气意识到传统的生产方式已经无法满足客户的需求。为了提高生产效率和产品质量,公司决定引进自动化生产线。
在自动化生产线的建设过程中,博众电气投入了大量的人力和物力资源。公司引进了先进的自动化组装设备和检测设备,实现了产线90%以上的自动化生产。这不仅大大提高了生产效率,还降低了人力成本,使得博众电气在市场竞争中更具优势。
在快速发展的电子行业,创新能力是企业保持竞争力的关键。博众电气深知这一点,因此始终注重研发团队的建设和新品开发。
公司组建了一支专业的自动化设备开发团队和一流的新品研发技术团队。这些团队成员都拥有丰富的行业经验和深厚的技术功底,能够迅速响应市场需求,开发出具有竞争力的新产品。
在新品开发方面,博众电气始终坚持创新引领、质量至上的原则。公司不断推出具有创新性和实用性的新产品,赢得了客户的广泛认可和好评。
有不少的在校的大学生写信给我,问在学校里应该学习什么电子知识.就业形势越来越严峻,不光是在中国,全球都一样,全球经济的发展速度放慢,至少会持续几年的时间.… 查看全部问答∨ |
主要的思想就是每来一个脉冲,电容C21的电压会升高一点,但在第一个脉冲来的时候,电容C21的电压还不足以使三极管Q11导通,C21的电压会在若干个脉冲后达到最高值,只要控制好电容的放电时间,就能保持三极管Q11一直导通.. 输出表现在PNP三极管的集电 ...… 查看全部问答∨ |
编译出现如下错误 --------------------Configuration: SDMMC - Win32 (WCE ARMV4I) Release-------------------- Compiling resources... Compiling... StdAfx.cpp c:\\program files\\windows ce tools\\wce500\\2440t6\\mfc\\include\\afxw ...… 查看全部问答∨ |
早就听说单片机很有钱景,所以找了n多个老师才决定学习单片机。 社会上的培训机构只有理论,还浪费时间、钱财、功夫。 偶然机会遇到以为自学成功的并且只有小学四年级文凭的李老师,另外就是他还有自己的23项专利。然后就拜倒在李老师门下。 更 ...… 查看全部问答∨ |
最近做标准字库IC的高通给我们推了他们最新的COG一体化字库方案,说白了就是不用改液晶玻璃设计就能添加增加字库功能。这正是我们这些LCM想要的东东,但有点担心电气安全性和可靠性问题。我们的液晶模块用量很大,以前有过返修的惨痛经历,再也伤不 ...… 查看全部问答∨ |
|
我用的msp430afe253 woid main(void) { WDTCTL = WDTPW +WDTHOLD; DCOCTL = DCO0+DCO1; BCSCTL1 = XT2OFF+RSEL0+RSEL1+ ...… 查看全部问答∨ |
|
大家好 我们的产品开发现在有一个需求,使用AM445X系列cpu直接通过类似spi接口来连接ad芯片采集数据,cpu要跑linux内核 因为外部不想加fpga或者cpld做粘合,所以想问一下,有什么办法能让cpu直接操作ad采集,同时又要保证采样率的准确和稳定性 ...… 查看全部问答∨ |