电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

51单片机测电机转速LCD显示

51单片机测电机转速LCD显示_第1页
1/13
51单片机测电机转速LCD显示_第2页
2/13
51单片机测电机转速LCD显示_第3页
3/13
主程序 * 文件名称: Jiuzhouxuese.c 转速计的设计(LCD 显示)的主程序 * 原 理: T1 计数,T0 计时,电动机每转动一周产生 16 个脉冲,T1 采集一分钟 内的脉冲数,后即可计算出转速 * 版本信息: 2011-10-23 ---------------------------------------------------------------*/ #include "LCD1602.h" #include #define uint unsigned int #define uchar unsigned char bit flag; //计满 1 秒钟标志位 uchar count=100; //储存定时器 T0中断次数 uint Speed; //储存电机转速 uchar DispBuffer[4];//存放转换成液晶显示字符(ASCII)的数组 /*------------------------------------------------------------ 功能:主函数 说明:使用晶振为12MHz 的芯片,定时0.01秒。计时器初值为C=65536-0.01/10^(-6)=0D8F0H ---------------------------------------------------------------*/ void main(void) { TMOD=0x51; //T1 工作于计数模式 1,T0 工作于计时模式1; TH0=0xd8; //定时器 T0 赋初值 TL0=0xf0; EA=1; //开总中断 ET0=1; //定时器 T0 中断允许 TR0=1; //启动定时器 T0 while(1) { TR1=1; //计数T1 启动 TH1=0; //计数T1 高8 位赋初值0 TL1=0; //计数T1 低8 位赋初值0 flag=0; //时间还未满1 秒钟 while(flag==0) //时间未满等待 Speed=(TH1*256+TL1)*60/16; //计算速度,每周产生16 个脉冲 } } /*------------------------------------------------------------- 函数功能:定时器 T0 的中断服务函数 --------------------------------------------------------------*/ void Time0(void ) interrupt 1 using 1 //定时器T0 的中断编号为 1,使用第 1 组工作寄存器 { count--; //T0 每中断 1 次,count 减 1 LCD_Initial();//液晶初始化 if(count%4==0) {DispBuffer[0]=Speed/1000+0x30; //将显示数据并分解出千位转换成 ASCII 码 } if (count%4==1) {DispBuffer[1]=Speed%1000/100+0x30;// 将显示数据并分解出百位转换成 ASCII 码 } if(count%4==2) {DispBuffer[2]=Speed%100/10+0x30;//将显示数据并分解出十位转换成 ASCII 码 } if(count%4==3) { DispBuffer[3]=Speed%10+0x30 ; // 将显示数据并分解出个位转换成ASCII 码 } LCD_Prints(1,0,DispBuffer); //LCD 显示数据 w...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

51单片机测电机转速LCD显示

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部