基于单片机的ic卡智能水表源代码内容摘要:
;此 IC卡已读标志 .=00,说明此卡上数据已读走,否则未读 E2408 EQU 08H ;用户码存储单元(三字节) E240B EQU 0BH ; M1码存储单元(三字节) E240E EQU 0EH ;原读卡条件存储单元 E240F EQU 0FH ;年,月,日,时(各一字节) E2413 EQU 13H ; M2码存储单元(三字节) E2416 EQU 16H ; 剩水(购水)总量存储单元,高字节在先,低字节在后 E2418 EQU 18H ; CRC校验字节存储单元 LIST F=INHX8M, P=16F84, R=HEX 0RG 0 B START ;复位后从 START处开始执行程序 ; ************************************************************************** ;以下程序:用于处理。 处理的事务有: 1) 剩水总数减 1,并写入 EEPROM; 2) 用水总数加 1,并写入 EEPROM相应单元; 3) 根据条件设置剩水不多了等标志位 C LOW; 4) 设置阀门状态正确与否标志单元: EEPROM内的 EE VAL, RAM内的 F VAL ; 0CCH表示出错。 ; ************************************************************************** WQ 11 BSF FLAG, SW OPEN ;置位阀已开标志位 SW OPEN( 1) MOVLW EE VAL MOVWF EEADR MOVLW 0CCH ; 写阀门状态出错标志字 0CCH(该关时未关)到 EE VAL CALL EE WR B WQ ED ; 转 将剩水总数 W HI, W LOW(十六进 制)转换成 BCD码 WQ 13 BCF DFLG, F WQF ;清处理过传感脉冲标志位 F WQF B WQ ED ; 转 将剩水总数 W HI, W LOW(十六进制)转换成 BCD码 ;以下处理。 注:负跳变有效,其他忽略。 WQ 1 BTFSS FLAG, F WQ ;由 F WQ判干簧传感开关闭合否。 B WQ 13 ; NO( =0) ,说明没有闭合,则转 WQ 13 BTFSC DFLG, F WQF ; YES,则继续由 F WQF判(从开 闭的下跳变)次脉 ;冲已被处理否。 B WQ ED ; YES( =1),说明此脉冲已处理过。 BSF DFLG, F WQF ; NO,则首先置位脉冲已处理标志位 F WQF CALL RD WQ ;读取 EEPROM中剩水总数到 W HI, W LOW单元 MOVF W HI, W I0RWF W LOW, W ;判剩水为 0否。 SKPNZ ; NO,则继续 B WQ 11 YES,则出错处理( WQ 11) DECF W LOW, SAME ;从 W HI, W LOW中减 1(即用掉了 ) INCF W LOW, W ; SKPZ B WQ 14 DECF W HI, SAME ;以下程序首先读取 EEPROM中用水总量单元 EE W L, EE W M, EE W H, ;加 1后回存,并存入 RAM中用水总量单元 WQF L, WQF M, WQF H WQ 14 MOVLW EE W L CALL EE RD MOVWF WQT L INCF WQT L, SAME SKPZ B WQ 12 MOVLW EE W M CALL EE RD MOVWF WQT M INCF WQT M, SAME SKPZ B WQ 12 MOVLW EE W H CALL EE RD MOVWF WQT H INCF WQT H, SAME WQ 12 MOVLW EE W H MOVWF EEADR MOVF WQT H, W CALL EE WR INCF EEADR, SAME MOVF WQT M, W CALL EE WR INCF EEADR, SAME MOVF WQT L, W CALL EE WR CALL WR WQ ;将用水总量回存 EEPROM BTFSS FLAG, C LOW ;由 C LOW判剩水总量过低否。 B WQ ED ; NO 转 将剩水处于 W HI, W LOW(十六进制)转换成 BCD 码 MOVF W LOW, W ; YES,则判剩水处于哪个告警档( 3m3,2m3,1m3) XORLW 1EH ; 1EH=30( 因 3/=30,即 3m3) SKPNZ ;不是 3m3档,转判是 2m3档否 BSF FLAG, C LOW 1 ;是 3m3档,则设置关阀告警标志 C LOW 1 MOVF W LOW, W X0RLW 14H ; 14H=20( 2/=20) SKPNZ BSF FLAG, C LOW 1 MOVF W LOW, W X0RLW 0AH ; 0AH=10( 1/=1。基于单片机的ic卡智能水表源代码
相关推荐
45176。 ~ 90176。 或更大,散射剂的量较大。 、按发光二极管的结构分 按发光二极管的结构分有全环氧包封、金属底座环氧封装、陶瓷底座环氧封装及玻璃封装等结构。 、按发光强度和工作电流分 按发光强度和工作电流分有普通亮度的 LED(发光强度 100mcd);把发光强度在 10~100mcd间的叫高亮度发光二极管。 一般 LED 的工作电流在十几 mA至几十 mA,而低电流LED
rotues 的仿真。 X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1
37P 0138P 0039V C C40P 101P 112P 123P 134P 145P 156P 167P 178U2单片机12晶振12 MC222 PC322 PV C CV C CC110 U FR710 KV C CK41 2 3 4 5 6 7 8 9R310K 排阻GND1V C C2VL3RS4RW5EN6D07D18D29D310D411D512D613D714B L A
如果 将 LED 点阵的行列端口全部直接接入 AT89C51单片机, 则需要使用 32条 I/O口,这样会造成 I/O资源的耗尽,系统也再无扩充的余地 ,因此,我在 设计 中 将 LED 点阵的 16条 行 线 与两片 74HC595 的并行输出端之间通过 的电阻连接 , 列 选扫描信号 由 416 线译码器 74HC154来选择控制,这样一来列选控制 和行选控制共 使用了单片机的 8个
第 3 章 系统硬件电路图设计 8 图 STC89C52 引脚图 ( 3)引脚介绍: VCC :接电源 GND:接地 P0 口: P0 口是一个 8 位漏极开路的双向 I/O 口。 作为输出口,每位能驱动 8 个 TTL逻辑电平。 对 P0 端口写“ 1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时, P0 口也被作为低 8 位地址 /数据复用。 在这种模式下, P0 具有内部上拉电阻
平信号, 当这个电容上面的电量充满时高电平的信号将回落 ,即 RST 端的高电平信号保持的 时间 是由外部这个充电电容决定的。 另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全 “l” 态。 如果系统在上电时得不到有效的复位,则程序计数器 PC 将得不到一个合适的初值,因此, CPU 可能会从一个未被定义的位置开始 执行程序 ,此时会造成单片机在上电的瞬间出现不稳定的情况发生