基于单片机的IC卡智能水表源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的IC卡智能水表源代码
作者:清华大学杨家沛
;**************************************************************************
;本系统所用CPU:PIC16F84
;
;采用外接RC经济阻容振荡方式:R=100K C=100P
;时钟频率约72KHz
;机器周期约56us
;************************************************************************** INCLUDE “PIC 84.H”;PIC84头文件
;**************************************************************************
;液晶显示命令字定义
;************************************************************************** SYSDIS EQU B'00000000' ;关闭液晶系统振荡和偏振命令字SYSEN EQU B'00000001' ;打开液晶系统振荡
LCD ON EQU B'00000011' ;打开液晶偏振发生器
BIAS 1 EQU B'00100000' ;液晶显示方式命令字
;**************************************************************************
;PIC I/O口线输入输出方式定义字
;**************************************************************************
O RB EQU B'01000110' ;RB口输出状态定义字
;输出状态:RB0,RB3,RB4,RB5,RB7均为输出,RB1,RB2,RB6为输入;
I RB EQU B'01100110' ;RB口输入状态定义字
;输入状态:RB0,RB3,RB4,RB7为输出,RB1,RB2,RB5,RB6为输入;
0 RA EQU B'11110000' ;RA口定义字
;RA4为输入,低4位均为输出
;**************************************************************************
;各口线作用定义
;**************************************************************************
SWCH1 EQU RA2 ;开阀控制,低电平有效
SWCH2 EQU RB0 ;关阀控制,低电平有效
S VOLT EQU RB7 ;IC卡电源地控制(即控制IC卡座电源),低电平有效SDA EQU RA4 ;IC卡串行数据线(双向)
SCL EQU RB4 ;IC卡时钟线
S T EQU RB6 ;IC卡插卡检测线.=1 表明IC卡已插入
SPK EQU RB3 ;蜂鸣器控制,高电平蜂鸣
V_MONI EQU RB2 ;电池电压检测线.=1,说明电池电压正常,否则说明过低WR EQU RA1 ;液晶显示时钟输出,正跳变有效
DATA EQU RA0 ;液晶串行数据输出,=1,为0;=0,为1
CS EQU RA3 ;液晶片选控制,高电平有效(同时控制水脉冲,和IC卡)W IN EQU RB1 ;0.1m3脉冲输入线(负跳变有效)
F KEY EQU RB5 ;作为防拆表输入线
;**************************************************************************
;IC84通用寄存器定义(共有68个):地址为0CH—4FH
;**************************************************************************
XDATA EQU 0CH ;通用数据暂存单元
CON1 EQU 0DH ;循环条件暂存单元
CON2 EQU 0EH ;循环条件暂存单元
CON3 EQU 0FH ;循环条件暂存单元
CON4 EQU 10H ;循环条件暂存单元
FLAG EQU 11H ;通用标志字节(各位意义见后)
DFLG EQU 12H ;液晶显示标志字节(各位意义见后)
DA1 DSP EQU 13H ;液晶显示高2位(BCD码)
DA2 DSP EQU 14H ;液晶显示低2位(BCD码)
L CON EQU 15H ;循环控制,如果=10 则读卡
SW DL EQU 16H ;关阀延时数
T CON EQU 17H ;FUNCTION KEY TEST COUNT(NO USE)
ST FLG EQU 18H ;W CRC EQU 18H
S0 EQU 2FH ;十六进制->十进制(BCD)中十六进制数暂存
S1 EQU 2EH ;
R0 EQU 13H ;转换后的BCD(4位)暂存
R1 EQU 14H
XDATA1 EQU 1AH
XDATA2 EQU 1BH
CON5 EQU 19H
XDAT EQU 1CH
F ST1 EQU 35H ;机器开始标志单元(正确的开始标志值为55H
F ST2 EQU 36H ;以及0AAH)
RANDHI EQU 4AH ;加密用随机数高字节
RANDL0 EQU 4BH ;加密用随机数低字节
;**************************************************************************;下列文件寄存器用来比较用户码及M1码
;**************************************************************************
F VAL EQU 37H ;电磁阀开关标志
WQT H EQU 27H ;以下3单元为用水总量存储单元,此为高字节WQT M EQU 38H ;中字节
WQT L EQU 39H ;低字节
C R
D EQU 3AH ;读卡条件
W HI EQU 3BH ;以下2单元是剩水总量存储单元,此为高字节
W LOW EQU 3CH ;低字节
EFLG EQU 3DH ;写片内EEPROM剩水单元选择标志. 0选EEQ1,
;否则选EEQ2
;**************************************************************************;读IC卡标志
;**************************************************************************