系统源程序.docx
- 文档编号:11927294
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:140
- 大小:34.34KB
系统源程序.docx
《系统源程序.docx》由会员分享,可在线阅读,更多相关《系统源程序.docx(140页珍藏版)》请在冰豆网上搜索。
系统源程序
$INCLUDE(C8051F120.INC)
LCD_DATADATAP2
LCD_DIBITP3.5
LCD_RWBITP3.3
LCD_EBITP3.1
LCD_CS1BITP3.0
LCD_CS2BITP3.2
LCD_RSTBITP3.4
BIT_COUNTDATA07FH
TIMERDATA07EH
TIMER1DATA07DH
DATA_INDATA020H
DATA_OUTDATA021H
LCDDATADATA022H;LCD数据寄存器
LCDCOMMANDDATA023H;LCD命令字寄存器
STATEREGDATA024H;LCD状态寄存器
DATAREGDATA025H
YUANYENONGDUZHIDATA026H;原液浓度
XISHINONGDUZHIDATA027H;稀释浓度
YUANYELIULIANGHDATA030H;原液流量高位
YUANYELIULIANGLDATA031H;原液流量低位
JINGSHUILIULIANGHDATA032H;净水流量高位
JINGSHUILIULIANGLDATA033H;净水流量低位
YUANYEZONGLIANGHDATA035H;原液总量高位
yuanYEZONGLIANGLDATA036H;原液总量低位
JINGSHUIZONGLIANGHDATA037H;净水总量高位
JINGSHUIZONGLIANGLDATA038H;净水总量低位
SHUIFACAIDUDATA039H;水阀开度
SHISHINONGDUDATA03AH;实时浓度
JIPINGDATA03BH;计屏
JISHIDATA03CH;计时
JINGSHUIMUBIAOHDATA040H;净水目标值高位
JINGSHUIMUBIAOLDATA041H;净水目标值低位
ZHONGJIAN1DATA042H
ZHONGJIAN2DATA043H
ZHONGJIAN3DATA044H
ZHONGJIAN4DATA045H
DLY_LCDEQU50H
CAL_LCD_XEQU51H
CAL_LCD_YEQU52H
YANSHI10CIDATA03DH;100次计数
DLY_10MS_HEQU7AH
DLY_10MS_MEQU7BH
DLY_10MS_LEQU7CH
DLY_HDEQU7DH
KEYBITP0.4
CLKBITP0.5
HD_CSBITP0.6
DATBITP0.7
;#########################################################################
ORG0000H
LJMPSTART
ORG73H;定时器3中断入口地址
LJMPT3ISR
ORG1000H
START:
MOVWDTCN,#0DEH;禁止看门狗
MOVWDTCN,#0ADH
MOVSP,#60H
MOVSFRPAGE,#0FH
ORLOSCICN,#10000000B;内部振荡器使能,8分频输出,即为24.5/8M
MOVCLKSEL,#00000000B;系统时钟取自内部振荡器,所以SYSCLK=24.5/8M
MOVXBR2,#40H;允许交叉开关
CLRHD_CS;
MOVXBR2,#40H;允许交叉开关
MOVSFRPAGE,#00H
;MOVEIE2,#10H;允许外部中断6中断
;MOVEIP2,#10H;设置外部中断6为高优先级
;MOVP3IF,#00H;设置外部中断6、7为下降沿中断方式
SETBEA;开总中断
LCALLFW7279
LCALLFWLCD;调用LCD复位子程序
LCALLLCD_DISPLAY
LCALLLCD_CLEAR
LCALLSHOW_INTERFACE
MOVYUANYEZONGLIANGL,#00H
MOVYUANYEZONGLIANGH,#00H
MOVJINGSHUIZONGLIANGH,#00H
MOVJINGSHUIZONGLIANGL,#00H
;--------------------------------------------------------------------------
MAIN:
MOVYANSHI10CI,#099
MOVJIPING,#01H
movjishi,#0
;---------------设DAC
;MOVOSCICN,#15H;4M
;MOVXBR2,#40H
MOVSFRPAGE,#00H
MOVADC0CF,#00011000B;8分频,增益为1
MOVADC0CN,#11000000B;允许ADC工作,位5为转换结束中断标志,
;位4为转换启动标志位、写1则启动AD;读为1:
转换未结束
;位3-2为00:
向AD0BUSY写1启动转换;为01:
定时器3溢出启动转换
;位1为越限比较中断标志
;位0为数据对齐方式:
0右对齐;1左对齐
MOVAMX0CF,#00;与AMX0SL配合使用,此处为选择通道0(AIN0.0)通道1(AIN0.1)为单端输入
MOVREF0CN,#03H;电压基准控制寄存器:
电压基准取于VREF0;允许内部基准电压发生器工作;
;允许内部基准电压缓冲器工作
MOVSFRPAGE,#01H
MOVTMR3CN,#00H;位7为益出标志位;位2为T3控制位:
1时启动定时;位1为1为T3使用系统时钟
MOVTMR3CF,#00001000B
MOVTMR3L,#05EH;定时器3重装载值
MOVTMR3H,#88H
;------------DAC
;MOVDAC1CN,#10001000B
MOVDAC1CN,#10000000B
MOVDAC1L,#0
MOVDAC1H,#0
MOVSFRPAGE,#00H
MOVREF0CN,#03
;----------------
MOVSFRPAGE,#01H
MOVA,TMR3CN;启动定时器3工作
ORLA,#4
MOVTMR3CN,A
MOVSFRPAGE,#00H
SETBEA
MOVA,EIE2;允许ADC0转换结束中断
ORLA,#01
MOVEIE2,A
SJMP$
ZHONGZHUAN:
LJMPENN
T3ISR:
MOVSFRPAGE,#01H
ANLTMR3CN,#01111111B;清除定时器3标志位
MOVTMR3CF,#00001000B
MOVTMR3L,#05EH;定时器3重装载值
MOVTMR3H,#88H
MOVSFRPAGE,#00H
DJNZYANSHI10CI,ZHONGZHUAN
INCJISHI
;
;MOVA,DATA_IN
;CJNEA,#0AH,JIANZHIB
;MOVJIPING,#01H
;JMPADKOU
JIANZHIB:
;CJNEA,#0BH,ADKOU
;MOVJIPING,#02H
ADKOU:
MOVSFRPAGE,#01H
MOVA,TMR3CN;清除TF3中断标志
ANLA,#7FH
MOVTMR3CN,A
MOVSFRPAGE,#00H
MOVAMX0SL,#00
SETBAD0BUSY;启动AD
AD0:
MOVSFRPAGE,#00H
MOVA,ADC0CN;检测转换结束否
JNBACC.5,AD0
CLRAD0INT;清除转换结束中断标志
NOP
NOP
NOP
MOVA,ADC0H
MOVR0,#30H
MOV@R0,A
INCR0
CLRA
MOVA,ADC0L
MOV@R0,A
MOVAMX0SL,#01H
SETBAD0BUSY
AD1:
MOVSFRPAGE,#00H
MOVA,ADC0CN
JNBACC.5,AD1
CLRAD0INT;清除转换结束中断标志
CLRAD0BUSY
NOP
NOP
NOP
MOVA,ADC0H
MOVR1,#32H
MOV@R1,A
INCR1
CLRA
MOVA,ADC0L
MOV@R1,A
;适时显示原液,净水流量
;-----------------------------------------
;双字节二进制整数转换为十进制整数子程序(原液流量)
;R2R3转为R4R5R6
MOVR2,YUANYELIULIANGH
MOVR3,YUANYELIULIANGL
IBTD:
CLRA
MOVR4,A
MOVR5,A
MOVR6,A
MOVR7,#16
IBTL2:
CLRC
MOVA,R3
RLCA
MOVR3,A
MOVA,R2
RLCA
MOVR2,A
MOVA,R6
ADDCA,R6
DAA
MOVR6,A
MOVA,R5
ADDCA,R5
DAA
MOVR5,A
MOVA,R4
ADDCA,R4
DAA
MOVR4,A
DJNZR7,IBTL2
;----------------
;双字节二进制整数转换为十进制整数子程序(净水流量)
;R2R3转为R4R5R6
MOVR2,JINGSHUILIULIANGH
MOVR3,JINGSHUILIULIANGL
IBTDJ:
CLRA
MOVR4,A
MOVR5,A
MOVR6,A
MOVR7,#16
IBTL2J:
CLRC
MOVA,R3
RLCA
MOVR3,A
MOVA,R2
RLCA
MOVR2,A
MOVA,R6
ADDCA,R6
DAA
MOVR6,A
MOVA,R5
ADDCA,R5
DAA
MOVR5,A
MOVA,R4
ADDCA,R4
DAA
MOVR4,A
DJNZR7,IBTL2J
;---------------------------L原*N
MOVR2,YUANYELIULIANGH;MAIN将R2R3和R6R7中的双字节无符号数相乘,
;结果送R4R5R6R7
MOVR3,YUANYELIULIANGL
MOVR6,#00
MOVR7,YUANYENONGDUZHI
NMUL:
MOVR4,#0
MOVR5,#0
MOVR0,#16
CLRC
NMLP:
MOVA,R4
RRCA
MOVR4,A
MOVA,R5
RRCA
MOVR5,A
MOVA,R6
RRCA
MOVR6,A
MOVA,R7
RRCA
MOVR7,A
JNCNMLN
MOVA,R5
ADDA,R3
MOVR5,A
MOVA,R4
ADDCA,R2
MOVR4,A
NMLN:
DJNZR0,NMLP
MOVA,R4
RRCA
MOVR4,A
MOVA,R5
RRCA
MOVR5,A
MOVA,R6
RRCA
MOVR6,A
MOVA,R7
RRCA
MOVR7,A
;--------------------------------------------------------
;无符号双字节除法子程序,将R2R3R4R5除以R6R7,商放在R4R5中,余数放R2R3中
MOVA,R4
MOVR2,A
MOVA,R5
MOVR3,A
MOVA,R6
MOVR4,A
MOVA,R7
MOVR5,A
MOVR6,#00
MOVR7,XISHINONGDUZHI
ndiv1:
MOVA,R3
CLRC
SUBBA,R7
MOVA,R2
SUBBA,R6
JNCNDVE1
MOVB,#16
NDVL1:
CLRC
MOVA,R5
RLCA
MOVR5,A
MOVA,R4
RLCA
MOVR4,A
MOVA,R3
RLCA
MOVR3,A
XCHA,R2
RLCA
XCHA,R2
MOVPSW.5,C
CLRC
SUBBA,R7
MOVR1,A
MOVA,R2
SUBBA,R6
JBPSW.5,NDVM1
JCNDVD1
NDVM1:
MOVR2,A
MOVA,R1
MOVR3,A
INCR5
NDVD1:
DJNZB,NDVL1
CLRPSW.5
JMPJIANFA
NDVE1:
SETBPSW.5
JMPJIANFA
;----------------------------------------
;R2R3减去R6R7,结果送R4R5
JIANFA:
MOVA,R4
MOVR2,A
MOVA,R5
MOVR3,A
MOVR6,YUANYELIULIANGH
MOVR7,YUANYELIULIANGL
DSUB:
MOVA,R6
CPLACC.7
MOVR6,A
DADD:
MOVA,R2
MOVC,ACC.7
MOVPSW.5,C
XRLA,R6
MOVC,ACC.7
MOVA,R2
CLRACC.7
MOVR2,A
MOVA,R6
CLRACC.7
MOVR6,A
JCDAB2
LCALLNADD
MOVA,R4
JBACC.7,DABE
DAB1:
MOVC,PSW.5
MOVACC.7,C
MOVR4,A
JMPCHUFA;END
DABE:
SETBC
RET
DAB2:
LCALLNSUB1
MOVA,R4
JNBACC.7,DAB1
LCALLCMPT
CPLPSW.5
SJMPDAB1
NADD:
MOVA,R3
MOVA,R7
MOVR5,A
MOVA,R2
ADDCA,R6
MOVR4,A
RET
NSUB1:
MOVA,R3
CLRC
SUBBA,R7
MOVR5,A
MOVA,R2
SUBBA,R6
MOVR4,A
RET
CMPT:
MOVA,R5
CPLA
ADDA,#01H
MOVR5,A
MOVA,R4
CPLA
ADDCA,#00H
MOVR4,A
RET
CHUFA:
MOVJINGSHUIMUBIAOH,R4
MOVJINGSHUIMUBIAOL,R5
;-------------------------------二次报警
CLRC
MOVA,#0DH
SUBBA,R4
JCJINSHIBAOJING2
JNZBJSBJ2
MOVA,#15H
SUBBA,R5
JCJINSHIBAOJING2
LJMPBJSBJ2
;------------------------
JINSHIBAOJING2:
LCALLLCD_DISPLAY
LCALLLCD_CLEAR
LCALLSHOW_INTERFACE
;----------------------计算原液总量
;无符号双字节除法子程序,将R2R3R4R5除以R6R7,商放在R4R5中,余数放R2R3中
BJSBJ2:
MOVR2,#0
MOVR3,#0
MOVR4,YUANYELIULIANGH
MOVR5,YUANYELIULIANGL
MOVR6,#00
MOVR7,#64H
ndiv1Y:
MOVA,R3
CLRC
SUBBA,R7
MOVA,R2
SUBBA,R6
JNCCHANGZHUANYI
MOVB,#16
LJMPNDVL1Y
;---------
CHANGZHUANYI:
LJMPNDVE1
;---------
NDVL1Y:
CLRC
MOVA,R5
RLCA
MOVR5,A
MOVA,R4
RLCA
MOVR4,A
MOVA,R3
RLCA
MOVR3,A
XCHA,R2
RLCA
XCHA,R2
MOVPSW.5,C
CLRC
SUBBA,R7
MOVR1,A
MOVA,R2
SUBBA,R6
JBPSW.5,NDVM1Y
JCNDVD1Y
NDVM1Y:
MOVR2,A
MOVA,R1
MOVR3,A
INCR5
NDVD1Y:
DJNZB,NDVL1Y
CLRPSW.5
JMPXT
NDVE1Y:
SETBPSW.5
JMPXT
;----------------------
XT:
;MOVA,R5
;;MOVB,JISHI
;MULAB
;----------------------
;无符号双字节除法子程序,将R2R3R4R5除以R6R7,商放在R4R5中,余数放R2R3中
MOVR2,#00H
MOVR3,#00H
;MOVR4,B
;MOVR5,A
MOVR6,#0H
MOVR7,#0AH
ndiv1YS:
MOVA,R3
CLRC
SUBBA,R7
MOVA,R2
SUBBA,R6
JNCNDVE1YS
MOVB,#16
NDVL1YS:
CLRC
MOVA,R5
RLCA
MOVR5,A
MOVA,R4
RLCA
MOVR4,A
MOVA,R3
RLCA
MOVR3,A
XCHA,R2
RLCA
XCHA,R2
MOVPSW.5,C
CLRC
SUBBA,R7
MOVR1,A
MOVA,R2
SUBBA,R6
JBPSW.5,NDVM1YS
JCNDVD1YS
NDVM1YS:
MOVR2,A
MOVA,R1
MOVR3,A
INCR5
NDVD1YS:
DJNZB,NDVL1YS
CLRPSW.5
JMPXH
NDVE1YS:
SETBPSW.5
JMPXH
;------------------------
XH:
;-------------------------
MOVA,YUANYEZONGLIANGL
CLRC
ADDA,R5
MOVYUANYEZONGLIANGL,A
MOVA,YUANYEZONGLIANGH
ADDCA,#0H
MOVYUANYEZONGLIANGH,A
CLRC
;MOVYUANYEZONGLIANGL,R5
;-------------------------------------计算净水总量
;无符号双字节除法子程序,将R2R3R4R5除以R6R7,商放在R4R5中,余数放R2R3中
MOVR2,#0
MOVR3,#0
MOVR4,jingshuiLIULIANGH
MOVR5,JINGSHUILIULIANGL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 源程序