浅析proteus仿真的转速测量系统.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅析proteus仿真的转速测量系统

基于Proteus仿真的转速测量系统设计 摘要:利用增量式编码器的信号特征、proteus软件的基本功能,设计以AT89C52单片机为控制中心的编码器转速测量电路,详细分析软件实现的方法,并给出c语言程序,利用Proteus软件进行仿真得到预期的测量结果。 本文便是运用AT89C52单片机控制的智能化转速测量仪。电机在运行过程中,需要对其进行监控,转速是一个必不可少的一个参数。本系统基于proteus仿真对电机转速进行测量,并可以和PC机进行通信,显示电机的转速,并观察电机运行的基本状况。 本设计主要用AT89C5作为控制核心,LED数码显像管、、详细介绍了PC机与单片机之间的串行通讯。充分发挥了单片机的性能。其优点硬件电路简单,软件功能完善,控制系统可靠,性价比较高等特点#includereg52.h #includeintrins.h #define uchar unsigned char #define uint unsigned int sbit SIGA=P0^3;//A路信号 sbit SIGB=P0^4;//B路信号 sbit DIREC=P0^5;//方向指示灯 uchar flag,m; uint pcount,temp,temp1,m1; uchar code table[18]={0xc0,0xf9,0xb0,0x99,0x92,0x82,0xf8,0x80, 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xf9,0x0c,}; uchar a[4]=0; uchar *bp; void init(void) { DIREC=1; pcount=0; TMOD=0x01;//定时器0方式1 TH0=0x3c; TL0=0xb0; EA=1; ET0=1;//开中断 IT0=1;EX0=1;TR0=1; } void tim0(void) interrupt 1 using 1//定时器中断程序 { TH0=0x3d; TL0=0xb0; temp1=pcount-temp;//计算T0的时间内脉冲数 temp=pcount; flag=1;//设标志 } void int0(void) interrupt 0 using 0//外部中断程序 { if(SIGB==1)//B信号为高电平 {DIREC=1;//正向运行 pcount++; } else { DIREC=0;//反向运行 pcount--; } } void delayms(uchar ms)//延时程序 { uchar i; while(ms--) {for(i=0;i20;i++);} } void display1(char idata *ap)//显示子程序 { uchar sel,i; P2=0;//关显示 sel=0x08;//选最左边led for(i=0;i4;i++) { P1=table[*ap];//送断码 P2=sel;//送位选码 delayms(500); ap++; P2=0; sel=sel1;//右移一位 } } void chang(int num)//转换子程序 { uchar t; int num1; t=0; if(num0)//取绝对值 {num=-num;} num1=20*num;//转换成每秒脉冲数 for(t=0;t4;t++) { a[t]=num1%10;//取余数送数组a num1=num1/10;//除10 } } void main() { Init(); do{ if(flag==1) { m1=temp1; chang(m1); flag=0;} bp=a[0]; display1(bp); } while(1); } 仿真 在Keil vsion3环境下,新建Keil 项目,选用AT89C52单片机作为工作CPU,新建kcsj.c文件并加载至项目中,在“Option for tonget”中打开“Output”窗口,选择“Creat hex file”选项,工作主频率设定为12MHz。设计程序并进行编译,编译成功后将产生kcsh.hex文件。在proteus中选中AT89C52进行设置,设置单片机工作频率为12MHz,按照正确的路径加载kc

文档评论(0)

jcc001 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档