📄 kr.asm
字号:
;此程序于2005.8.29日修改,电路板把光电开关 改接到单片机上,顶端限位接p2.2,低端限位接p2.3,样品转换接p2.4
;对应的8255的10脚,24脚25脚应悬空
;此程序于8月8日修改完毕,在程序中加了搅拌完后的计时程序,从1302中调出时间值进行计算显示,结束。
;此程序为抗乳化程序,使用触摸屏控制具有温度控制与步进电机控制功能
; 此程序为按样品号1为量筒1工作,2为量筒1完后量筒2工作,3为量筒1.2.3工作,4为量筒1.2.3.4工作
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;触摸屏数据;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;说明触摸屏的发送数据格式如下:
; txxxx,yyyyp
; t表示起始位,54h,
; 四个x是列数x轴数据
; 四个y表示行数y轴数据
; p表示停止位 0dh
; 液晶屏处于第一象限,左下角为原点
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;温度测量;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;采用vfc32频率变换器,利用定时器t1产生定时周期500ms,通过t0对频率进行脉冲计数,vfc32工作在输入电压
;0-10v ,输出频率0-10khz,则t0技术范围在0-5000个数之间,温度范围为0-100度,为了保留一位小数,在进行温度换算
;时需将t0的计数值扩大10倍,再除以系数50,则计算后的个位为小数位,在显示时须注意
;此程序的控温周期是10s,算法是基本定时周期是50ms,控温范围为0-100度,比例最大常数为200,则200*50ms=10s
;
; ds1302芯片 写允许信号 只在程序初始化时 赋一遍即可,不可多赋,防止乱码
JIESHOUGESHU EQU 4AH ; 用于触摸屏接收数据的个数控制
SJ1 EQU 4BH
SJ2 EQU 4CH ;SJ1----8分别存储串口接收来的2345789a的数据
SJ3 EQU 4DH
SJ4 EQU 4EH
SJ5 EQU 4FH
SJ6 EQU 50H
SJ7 EQU 51H
SJ8 EQU 52H
FSGESHU EQU 53H ;用于向液晶屏发送数据的计数
VFBHZQ EQU 54H ;用于500ms定时的定时周期数
T0JSZL EQU 55H ;存t0的计数值的低8位
T0JSZH EQU 56H ;存t0的计数值的高8位
WDZHH EQU 57H ;存16进制的温度值高8位
WDZHL EQU 58H ;存16进制的温度值低8位
WDZBH EQU 59H ;保存温度值的BCD码的高8位
WDZBL EQU 5AH ;保存温度值的BCD码的低8位
SCWDZHH EQU 5BH ;存16进制的上次温度值高8位
SCWDZHL EQU 5CH ;存16进制的上次温度值低8位
DSZQ1S EQU 5DH
DSZQ10S EQU 5EH
DSZQ300S EQU 5FH
DSZQ600S EQU 60H
POUTH EQU 61H ;存控温周期的16进制数
POUTL EQU 62H
SDWDHH EQU 63H ;存16进制的温度设定值
SDWDHL EQU 64H
BCPCHH EQU 65H ;存本次e(t)值
BCPCHL EQU 66H
BLCSH EQU 67H ;存kp*e(t) 值
BLCSL EQU 68H
BLXS EQU 69H ;存kp值
PCWFH EQU 6AH ;e(t)-e(t-1) 的结果,存入PCWFL,PCWFH中
PCWFL EQU 6BH
SCPCHH EQU 6CH ;e(t-1) 的结果
SCPCHL EQU 6DH
WFCSH EQU 6EH ;kd*[e(t)-e(t-1)]
WFCSL EQU 6FH
ZSJCSH EQU 70H ;kp*e(t)+kd*[e(t)-e(t-1)]
ZSJCSL EQU 71H
WFXS EQU 72H ;存kd值
s600hl equ 73h
s600hh equ 74h
s300hl equ 75h
s300hh equ 76h
zancun equ 77h
shuju equ 7bh
djbszq equ 7ch
ypslcunchu equ 7dh ;样品数量存储器
zhuanhuancishu equ 7eh ;样品转换量筒号存储
lt1js equ 0a0h ;量筒1的计数值存储
lt2js equ 0a1h
lt3js equ 0a2h
lt4js equ 0a3h
lt1dycsjdsl equ 0a4h
lt1dycsjdsh equ 0a5h
lt2dycsjdsl equ 0a6h
lt2dycsjdsh equ 0a7h
lt3dycsjdsl equ 0a8h
lt3dycsjdsh equ 0a9h
lt4dycsjdsl equ 0aah
lt4dycsjdsh equ 0abh
bcsjdsh equ 49h ;存本次时间读数值高位 小时
bcsjdsl equ 48h ;存分钟
HM1BZ BIT 00H ;分别为画面1--5的标志位
HM2BZ BIT 01H
HM3BZ BIT 02H
HM4BZ BIT 03H
HM5BZ BIT 04H
CIJIAN BIT 05H ;与键参数判别,若在范围内则置位
QDBZ BIT 06H ;HM4中启动键的标志位
JBBZ BIT 07H ;搅拌标志
JZBZ BIT 08H ;静止标志
WD54BZ BIT 09H ;54度标志位
WD82BZ BIT 0AH ;82度标志位
BLPCFH BIT 0BH ;本次比例偏差符号
SCBLPCFH BIT 0CH ;上次比例偏差符号
WFPCFH BIT 0DH ;存微分项符号
;;;;;;;;;画面3中标志位;;;;;;;;;;;;;
YPJBBZ BIT 0EH
YPZHBZ BIT 0FH
JBSBZ BIT 10H
JBJBZ BIT 11H
KAIBZ BIT 12H
lt1bz bit 13h ;4个样品量筒标志位
lt2bz bit 14h
lt3bz bit 15h
lt4bz bit 16h
sjsxbz bit 17h ;画面5中时间刷新标志
sjnianbz bit 18h
sjyuebz bit 19h
sjribz bit 1ah
sjshibz bit 1bh
sjfenbz bit 1ch
sjmiaobz bit 1dh
kwbz bit 1eh
dadaowdbz bit 1fh
lt1jsbz bit 21h
lt2jsbz bit 22h
lt3jsbz bit 23h
lt4jsbz bit 24h
rhsjbz bit 25h ;乳化时间标志,用于样品筒号与乳化时间的切换
lt1dycjsbz bit 26h
lt2dycjsbz bit 27h
lt3dycjsbz bit 28h
lt4dycjsbz bit 29h
ysxsbzw bit 30h ;延时显示标志位,=1显示=0不显示
hm6bz bit 31h
bs1bz bit 32h
bs2bz bit 33h
bs3bz bit 34h
BUSY BIT P1.4 ;液晶屏并口忙标志位
STB BIT P1.3 ;液晶屏并口
CS8255 BIT P2.7 ;D4 8255 片选短
A08255 BIT P2.5
A18255 BIT P2.6
scl bit p2.1
sda bit p2.0
data_1 equ 46h
data_2 equ 47h
;==========================
;内存数据定义
BitCnt data 78h ; 数据位计数器
ByteCnt data 79h ; 数据字节计数器
Command data 7ah ; 命令字节地址
RcvDat DATA 80H ; 接收数据缓冲区
XmtDat DATA 90H ; 发送数据缓冲区
;端口位定义
IO_DATA bit P1.1 ; 数据传送总线
SCLK bit P1.0 ; 时钟控制总线
RST bit P1.2 ; 复位总线
ORG 0000H
JMP MAIN
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
JMP VFZH ;温度测量
ORG 0023H
JMP CKJS ;触摸屏接收数据
ORG 002BH
RETI
ORG 0030H
MAIN: MOV SP,#30H ;从30h到49h为堆栈区
clr p1.5
CLR RS0
CLR RS1 ;
CALL ys500Ms ;500ms
call ys500ms
CLR CS8255
SETB A08255
SETB A18255
MOV A,#80H ;D4 8255 A口输出,b口输出,c口输出
MOVX @R0,A
MOV A,#06h;07H ;关JR1
MOVX @R0,A
MOV A,#08h;09H ;关JR2
MOVX @R0,A
MOV A,#0ah;0BH ;关样品搅拌
MOVX @R0,A
MOV A,#0ch;0DH ;关水浴搅拌
MOVX @R0,A
MOV R2,#60H ;
MOV R1,#1FH
MAIN1: INC R1
MOV @R1,#00H
DJNZ R2,MAIN1 ;20h-7fh区清零
MOV VFBHZQ,#10 ;赋500ms定时周期数值10 500MS读一次t0计数值,换算成温度
MOV DSZQ1S,#20
MOV DSZQ10S,#10
MOV DSZQ300S,#30
MOV DSZQ600S,#60
MOV POUTH,#01
MOV POUTL,#01
MOV BLXS,#200;50;100
MOV WFXS,#45;255
mov s600hl,#58h
mov s600hh,#02h
mov s300hl,#2ch
mov s300hh,#01h
mov r0,lt1js
mov @r0,#00h
mov r0,lt2js
mov @r0,#00h
mov r0,lt3js
mov @r0,#00h
mov r0,lt4js
mov @r0,#00h
MOV TMOD,#15H ;T0计数,t1定时
MOV PCON,#00H
MOV SCON,#50H ;串行口工作于方式1
MOV RCAP2L,#0D9H
MOV RCAP2H,#0FFH ;波特率9600
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -