找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3366|回复: 0
打印 上一主题 下一主题
收起左侧

请各位大神看看智能输液监控系统的程序哪错了

[复制链接]
跳转到指定楼层
楼主
各位大神看看我做的智能输液监控系统的程序哪错了?现在还没加控制电机模块,只用显示出检测到的液滴滴速就行。但是在proteus仿真显示器没反应怎么回事
;滴速定时5s得出的T1计数值再乘以12就是1分钟的滴数,可是为什么不显示呢?
DS:
MOV  TMOD , #51H;定时器T0定时方式一,T1计数方式一(01010001)
MOV  TL0 , #0B0H
MOV  TH0 , #3CH;置50ms初值
MOV  20H , #100;设置循环次数100,100*50ms=5s
MOV  TH1 , #00H
MOV  TL0 , #000H
MOV  21H , #0
MOV  22H , #0;存放采集到的数据
SETB  TR1;启动T1
SETB  TR0;启动T0
WAIT:  AJMP WAIT;等待中断
RET
T0INT:          ;定时5s产生中断
DJNZ  20H , NEXT1
CLR  TR1;关闭T1
CLR  TR0;关闭T0
MOV  21H , TL1
MOV  22H , TH1
ACALL  DISPLAY
AJMP  EXIT
NEXT1: MOV  TL0 , #0B0H
       MOV  TH0 , #3CH;继续定时
EXIT:  RETI;显示
DISPLAY:
MOV  A , 21H;取5s计数值
MOV  B , #10;16进制转换为10进制
DIV  AB;A/B的商存入A,余数存入B
MOV  R1 , A;R1存放十位数
MOV  R2 , B;R2存放个位数
ADD  B , R2;相当于B*2
MOV  R2 , B
ADD  B , R2;相当于B*4
MOV  R2 , B
ADD  B , R2;相当于B*8
ADD  B , R2;相当于B*12
ADDC  A , R1;相当于A*2
MOV  R1 , A
ADDC  A , R1;相当于A*4
MOV  R1 , A
ADDC  A , R1;相当于A*8
ADDC  A , R1;相当于A*12
MOV  R1 , A;此时R1存放以分为单位的十位数
MOV  R2 , B;此时R2存放以分为单位的个位数
MOV  R3 , #50;设导通频率为50
LOOP1:MOV  A , R2;取个位数
ACALL  CHANG;调用显示
CLR  P2.1;开个位显示
ACALL  DLY10ms;调用延时10ms程序
SETB  P2.1;开关个位显示
MOV  A , R1;取十位数
ACALL  CHANG;调用显示
CLR  P2.0;开十位显示
ACALL  DLY10ms;调用延时10ms程序
SETB  P2.0;开关十位显示
RET
CHANG:MOVC  A , @A+DPTR;取表子程序
MOV  P0 , A
RET
DLY10ms:
MOV  R6 , #20
D1:
MOV  R7 , #248
DJNZ  R7 , $
DJNZ  R6 , D1
RET;延时返回
TABLE:DB  0C0H,0F9H,0A4H,0B0H
DB  99H,92H,82H,0F8H
DB  80H,90H,88H,83H
DB  0C6H,0A1H,86H,8EH
RET;液位

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表