MyException - 我的异常网
当前位置:我的异常网» 单片机 » 测速模块老不好,该如何解决

测速模块老不好,该如何解决

www.myexceptions.net  网友分享于:2013-02-29  浏览:5次
测速模块老不好
我弄好的测速模块,通过光电开关MOC70T3检测速度,然后把输出端接到定时\计数器T1端口,我用的是自动重装初值方式,可是一切弄好后却不测速,5秒输出一次,并显示
我的程序如下:
;下面程序为计算电机转速测量
;要计算一分钟的转数即60秒的转速,由于应用12齿轮的,因此计算5秒钟的就是1分钟的转数


  DCOUNT EQU 03AH ;测出数来的 千位X10+百位
  COUNT EQU 03BH ;测出数来的 十位X10+个位
  JISHU EQU 042H ;计数器每发生一次溢出JISHU就会增1


ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0DINGSHI
ORG 001BH
LJMP T1JISHU
ORG 0030H

MAIN:
MOV TMOD,#61H ;定时\计数模式设计
;T1设置为计数模式的方式2,自动重装初值,初值在改为放的
;T0设置为定时模式的方式1,16位定时\计数模式
;其TMOD的二进制值是 0110 0001
MOV TH0,#03CH ;为定时器装入初值
MOV TL0,#0B8H
MOV TH1,#156 ;为计数器装入初值
MOV TL1,#156
MOV IE,#08AH ;开启IE中断控制寄存器,开启了,定时\计数T0,T1


MOV R1,#100 ;定时器延时5秒的循环次数
MOV P1,#0FFH
MOV P2,#0F0H ;P2口的0—3管脚接数码管的选通端
MOV DCOUNT,#00H
MOV COUNT,#00H

SETB TR0 ;开启中断
SETB TR1


XUNHUAN3:
MOV A,DCOUNT
MOV B,#10
DIV AB
MOV 030H,A ;030H里放入了测量的千位的值
MOV 031H,B ;031H里放入了测量的百位的值

MOV A,COUNT
MOV B,#10
DIV AB
MOV 032H,A ;032H里放入了测量的十位的值
MOV 033H,B ;033H里放入了测量的各位的值

MOV A,030H
MOV DPTR,#TAB
MOVC A,@A+DPTR ;查表取出要显示数的数码管码值
MOV P2,#0F1H ;选通数码管1
MOV P0,A ;通过数码管显示数值
MOV 034H,A ;034H里保存数码管的码值

MOV A,031H
MOV DPTR,#TAB
MOVC A,@A+DPTR ;查表取出要显示数的数码管码值
MOV P2,#0F2H ;选通数码管2
MOV P0,A ;通过数码管显示数值
MOV 035H,A ;035H里保存数码管的码值

MOV A,032H
MOV DPTR,#TAB
MOVC A,@A+DPTR ;查表取出要显示数的数码管码值
MOV P2,#0F4H ;选通数码管3
MOV P0,A ;通过数码管显示数值
MOV 036H,A ;036H里保存数码管的码值

MOV A,033H
MOV DPTR,#TAB
MOVC A,@A+DPTR ;查表取出要显示数的数码管码值
MOV P2,#0F8H ;选通数码管4
MOV P0,A ;通过数码管显示数值
MOV 037H,A ;037H里保存数码管的码值


LCALL DUANDELY1 ;DUANDELY1延时10ms
MOV P2,#0F1H ;选通数码管1
MOV P1,034H
LCALL DUANDELY1
MOV P2,#0F2H ;选通数码管2
MOV P1,035H
LCALL DUANDELY1
MOV P2,#0F4H
MOV P1,036H
LCALL DUANDELY1
MOV P2,#0F8H
MOV P1,037H

LJMP XUNHUAN3



;下面是延时子程序

DUANDELY1:
MOV R6,#10
DUANDELY2:
MOV R7,#123
NOP
DUANDELY3:
DJNZ R7,DUANDELY3
DJNZ R6,DUANDELY2
RET


;下面是中断子程序

T0DINGSHI: ;TO定时\计数器,作为定时器使用
PUSH ACC
PUSH DPH
PUSH DPL
PUSH PSW
CLR TR0 ;关中断
MOV TH0,#03CH ;定时50ms的初值
MOV TL0,#0B0H
SETB TR0 ;开中断
DJNZ R1,EXIT0
MOV R1,#100 ;循环100次,定时5秒
MOV A,TL1 ;5秒后读取计数器里面的值
SUBB A,#156
MOV COUNT,A ;减去初值就是十位X10+个位的值
MOV DCOUNT,JISHU
MOV JISHU,#00H ;5秒后读取计数器记了几个100的值,即千位X10+百位
EXIT0:
POP PSW
POP DPL
POP DPH
POP ACC
RETI


T1JISHU: ;T1定时\计数器,作为计数器使用
PUSH ACC
PUSH DPH
PUSH DPL
PUSH PSW
INC JISHU ;不用清空TL1,它每次都会自动重装,且够100则加1
POP PSW
POP DPL
POP DPH
POP ACC
RETI


TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH
   
END

我的光电开关MOC70T3的接法如下

他们的在齿轮转时电压是输出4.7到4.0V之间
单片机我用的是AT89S52


------解决方案--------------------
汇编不熟。
要是C的话,还能帮看看。
帮顶。

文章评论

要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
程序员必看的十大电影
程序员必看的十大电影
总结2014中国互联网十大段子
总结2014中国互联网十大段子
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
编程语言是女人
编程语言是女人
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
我是如何打败拖延症的
我是如何打败拖延症的
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员的鄙视链
程序员的鄙视链
如何成为一名黑客
如何成为一名黑客
程序员和编码员之间的区别
程序员和编码员之间的区别
老程序员的下场
老程序员的下场
为什么程序员都是夜猫子
为什么程序员都是夜猫子
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
一个程序员的时间管理
一个程序员的时间管理
 程序员的样子
程序员的样子
Java程序员必看电影
Java程序员必看电影
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
10个调试和排错的小建议
10个调试和排错的小建议
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
那些争议最大的编程观点
那些争议最大的编程观点
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
每天工作4小时的程序员
每天工作4小时的程序员
程序员应该关注的一些事儿
程序员应该关注的一些事儿
旅行,写作,编程
旅行,写作,编程
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
代码女神横空出世
代码女神横空出世
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
漫画:程序员的工作
漫画:程序员的工作
程序员都该阅读的书
程序员都该阅读的书
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有