电磁流量计转换器的研制与开发 二十八
4.3 A/D转换子程序模块
电磁流量计对所有输入的模拟量转换为数字量,本设计是以中断方式读取转换结果的,但这里我们也将查询方式读取转换结果程序流程图写出来,以用来比较。
AD0809的中断方式转换程序段如下 ORG 0030H MOV R7,#41H MOV DPTR,#0FFF8H ;端口地址送DPTR MOVX @DPTR,A ;启动A/D转换 SETB EA SETB EX1 ;开外中断1 SETB IT1 ;外中断请求信号为下跳沿触发方式 LOOP: SJMP LOOP ;等待中断 END 中断服务程序: ORG 0013H LJMP WZ1 WZ1: MOV DPTR,#0FFF9H MOVX A,@DPTR ;读高8位数据 MOV @R7,A ;存高8位数据 INC DPTR INC DPTR MOVX A,@DPTR ;读低4位数据 ANL A,#0FH ;屏蔽高4位随机数
执行主程序
启动A/D转换
等待中断
中断返回
转换结果 处理程序
保护现场
读取转换结果 高8位 41H 低8位 40H
DEC R7 MOV @R7,A ;存低4位数据 LJMP: DDPP ;跳至数据处理程序 RETI
4.4 键盘子程序模块
本系统中设立1个按键,此键调节励磁电路的频率。由第二章我们已知这个按键接在单片机的P3.2口,即利用单片机的外部中断INT0,在编程时把INT0设为下降沿触发,则可实现调节频率的功能。当外部产生中断时,中断子程序对20H.4取反。若20H.4=1则选择60HZ频率,若20H.4=0那么选择30HZ频率。 中断子只对20H.4取反,具体程序如下: INT0IN: NOP NOP CPL 20H.4 NOP RETI
4.5 LED显示子程序模块
该程序的功能是清楚地显示液体流量的当前值。
程序开始
保护现场
关TI中断,开其他中断
设置段码缓冲区指针
设置位码缓冲区指针
设置显示位数
是闪烁位否?
将位码和段码值送P2口
显示某位,延时1ms
修改显示缓冲区指针显示位数减1
显示完否?
TI计数器置初值
恢复现场,开中断
中断返回(RET)
电磁流量计