新人报道--发个小小测速计
jun662011/12/16电子技术 IP:广东
进坛子就得发个有技术的帖子 折煞我们这些菜鸟啊,就把曾经的曾经的DIY5位测速计拿来给大家露个脸 还望大家支持,早日成为KC的鬼子

好了 开工………………

五位速速计主要是来测我的电机主轴的速度,带一个红外发射接收的反射头,已经成型了的
废话不多说 上原理图
T(RZI[L_C[01TTJDERG$K_P.jpg

源代码 欢迎山寨欢迎复制

#include <reg51.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int  
bit FLAG=0;
uchar code seg[]={ 0x0C,0xDD,0x34,0x94,0xC5,0x86,0x06,0x9D,0x04,0x84, };      
     //0,1,2,3,4,5,6,7,8,9
uchar disbuf[]={0,0,0,0,0};
sbit led1=P3^0;
sbit led2=P3^1;
sbit led3=P3^2;
sbit led4=P3^3;
sbit led5=P3^5;
uint discount=0;
uint timecount=0;//定时的次数
uint x;

void delay(void){  
unsigned char i=10;
while(i--);
}
void t1_serv() interrupt 3
{
  TH1=236;//(65536-tm)/256;uint tm=5000;//5000 wei dingshide shijian
  TL1=120;//(65536-tm)%256;  244/72/304
  timecount++;    
//200 次为1秒计数  600则相对于3秒钟的计数,那么测1min时则要乘以20
    if(timecount==600)
     {
   FLAG=1;
   TR0=0;    //关闭定时器
   timecount=0;
  }  
}    
void main()
{
  
   uint i=0;
   TMOD=0x15;
   TH0=0;
   TL0=0;
   TH1=244;//(65536-tm)/256;
   TL1=72;//(65536-tm)%256;
   TR0=1;
   TR1=1;
   ET0=1;
   ET1=1;
   EA=1;
   while(1)
  {
   if(FLAG==1)
    {
   FLAG=0;
   x=TH0<<8|TL0;
   x=x*20;   //对应上面定时器的值
   /******** 数据修正,由于晶振的偏差,所以需要更精准的转速需要在这里进行数据修正
   比如在我测试的时候晶振是12.031416M,那么他的偏差就是1500转/min时少1,那么我就在
   下面进行加1处理,加600是因为考虑到4舍5入的道理,比如当测到1400转时很接近1500了
   那么应该加1的,但1400/1500是为0没有起到修正的作用,所以1500×60%=900时可以考虑
   加1,那么数据需要加600刚好达到1500.所以加600的4舍5入值。见下修正值。其他晶振值
   时可以通过类似方法进行修正。
   ****************/
    x=x+(x+600)/1500 ;// 数据修正
   for(i=0;i<5;i++) disbuf=0;
     i=0;  
    while(x/10)      /*数字逐个赋值给数组*/
  {
       disbuf=x%10;
    x=x/10;
    i++;
   }            /*    */
    disbuf=x;
    TH0=0;
       TL0=0;
    TR0=1;
      
     }
    led1=0;  
P1=seg[disbuf[0]];
led5=1;  
delay();   //延时
    led5=0;  
    P1=seg[disbuf[1]];
    led4=1;
delay();   //延时
    led4=0;  
    P1=seg[disbuf[2]];
    led3=1;
delay();   //延时
    led3=0;
    P1=seg[disbuf[3]];
    led2=1;
delay();   //延时
    led2=0;
    P1=seg[disbuf[4]];
    led1=1;
delay();   //延时
    
    
   }
  
}
+50  科创币    潜水员    2011/12/17 鼓励开源,还算不错的作品
来自:电子信息 / 电子技术
22
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
jun66 作者
13年1个月前 IP:未同步
344936
占位上点实物图
IMAG0320.jpg IMAG0319.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jun66作者
13年1个月前 IP:未同步
344940
IMAG0336.jpg
+100
科创币
jrcsh
2011-12-17
漂亮
+100
科创币
thallium2012
2011-12-17
厉害 鼓励这样的新人
+100
科创币
caoyuan9642
2011-12-17
很好。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jun66作者
13年1个月前 IP:未同步
344941
有什么问题大家提啊 不怎么会说话
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jun66作者
13年1个月前 IP:未同步
344946
回 4楼(laser63588) 的帖子
还好了 现在打板便宜了,自己焊洞洞板太丑了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jun66作者
13年1个月前 IP:未同步
344960
回 6楼(wzh19940105) 的帖子
这个这个……谢谢帮顶啊,我就单片机那点出息 嘿嘿
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jun66作者
13年1个月前 IP:未同步
345079
回 8楼(jrcsh) 的帖子
希望指正,我测量的方法是通过单片机的定时器来做的,定时3秒钟,然后计3秒钟的触发次数再乘以20得到每分钟的转速,我不知道你说的不严密指的那部分,如果要计数60秒的触发次数是不现实的,因为这样的画数码管的值会不断的改变而且速度很快你基本上看不到数字的,目前大部分都是通过这种计数方式的,这种方式就是在开始和结尾段不是很准确,但在中间部分还是很准确的,我测试过用示波器发出的校正的1K方波。得到的值是59999 理论值是60000 也就是说误差只有1/60000吧,这个误差我相信大家都可以接受吧。当然还希望楼上帮忙指正下。谢谢了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jun66作者
13年1个月前 IP:未同步
345092
回 10楼(狩%猎者) 的帖子
谢谢帮顶,套件没有,打样倒是有多的,PM楼主了,
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jun66作者
13年1个月前 IP:未同步
345105
谢谢帮顶 祝你早日升级成功
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jun66作者
13年1个月前 IP:未同步
345111
你这个要求我这个现成的不能实现 不过可以改造下应该可以,装两个红外头,公用一个T0,然后计算他出发两次的时间,这样是最简单的,但也有问题就是因为共用一个T0所以只有第一红外管只能触发一次,当误触发了一次就导致中断时间错误,不知道你听懂没,还有一种就是直接用两个计数器,但我没用过 顺便问下 你准备让两个的间距弄多远呢 还有你那个速度一般是达到多少M/S的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jun66作者
13年1个月前 IP:未同步
345122
按1000来算就是1000/0.1=10Khz这个频率对单片机12M来说还是没什么问题的。有时间我帮你弄下
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jun66作者
13年1个月前 IP:未同步
345144
回 19楼(zgchen) 的帖子
理论上可以的 但问题还是要看你的安装位置,因为红外发射式的 他只能感应到3-5cm左右了 对于那么大的家伙这个距离很近的 能安装吗,
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
jun66
笔友
文章
6
回复
138
学术分
0
2011/12/16注册,8年1个月前活动

很懒,

主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}