智能IC卡水表控制系统设计


    



    题 目 _智IC卡水表控制系统设计_



    直水户水量工进行抄表理模式收费员进家户收费指派户指定点行缴纳种传统收取水费方式仅需工作员费时费力效率低存常常出现户欠缴迟缴漏缴水费时家等问题针问题文研究国外智水表发展现状基础设计基单片机实现IC卡智水表控制系统系统51单片机核心部件运IC卡读写加密技术实现购水水量理 
    文完成系统硬件电路设计软件设计硬件电路采模块化设计包括时钟芯片电路IC卡接口电路数存储器电路电磁阀驱动电路声光报警电路LED显示电路等详细分析模块工作原理系统软件采汇编语言编制出具体程序流程图该种流程图正确清晰表现出种系统作数安全性设计保证智水表数(计费)保密性(防止盗)数完整性合理进行芯片选择系统设计变成求种低成低功耗CPU卡智水表设计方案已成功开发出产品
     文详细介绍智IC卡水表售水理系统功组成智IC卡水表控制器工作原理软硬件设计进行详细阐述解IC卡水表应

    关键词:单片机IC卡智水表














    Abstracts

    Since then water users have relied on manual reading management mode which is paid by toll collectors to various households to collect fees or assign users to their own places The traditional way to collect water not only requires more staff and timeconsuming laborious efficiency is low and there is often a user owes late payment or leakage water sometimes also often not at home Aiming at these problems this paper designs an IC card intelligent water meter control system based on single chip microcomputer based on the current situation of intelligent water table development at home and abroad The system USES 51 MCU as the core component and USES IC card to read and write and encrypt technology to realize purchasing water and water consumption management
    This paper has completed the hardware circuit design and software design of the system Hardware circuit USES modular design including the clock chip IC card interface circuit data memory circuit electromagnetic valve drive circuit sound and light alarm circuit LED display circuit etc are analyzed in detail the working principle of each module The system software is compiled with assembly language and the specific program flow chart is given

    Key words single chip microcomputer IC card Intelligent water meter





















    第1章 绪
    章介绍采智IC卡水表技术方案供水理部门户带许方便会产生积极益影响采智IC卡水表作基技术元件传统供水理模式进行现代化改造提供基础性技术支持传统水计量仪表相采智IC卡水表技术带许新变化

    11 课题背景

    着中国快速发展供水部门说实现先交费供水水模式家普遍认优点先交费水更合理种交易模式 
    改变入户操表收费模式种模式改变意义巨城市规模断扩居民户数快速增加供水部门抄表收费工作量断加传统门抄表模式难适应种变化现种原影响工入户操表效率已逐渐降种模式成断增加采智IC卡水表极理系统根改变供水部门派千家万户抄表收费模式果金融系统配合减少布点成规模采智IC卡水表技术降低供水部门理成会显著帮助IC卡进行交易结算户决定交费时间数量增户性特着家庭安全意识隐私意识增强入户抄表门收费等意进入私住户做法逐渐受欢迎甚受抵制必须予重视社会发展趋势智IC卡进行交易结算效解决带社会隐患难题 
    效解决技术难题着水资源紧张会逐步实行超计划水价甚阶梯式水价等较复杂水理模式供水交易提出较高技术求采普通水表工抄表模式难解决技术问题采智IC卡水表容易解决问题远传抄表系统相智IC卡水表具维护成低没布线造成混乱高障率等问题智IC卡水表优点会智IC卡水表逐渐社会接受成种基配置智水表系统着现代计计量技术传感技术信息网络技术社会化需求发展断前发展智水表系统未发展中体现出济实双实时数享特点正种技术发展社会需求发展集中体现时体现着类水资源谐存存理念

    12 国外现状

    面二十世纪中国供水供电事业发展目标中国建设部21世纪远景规划国实现康住宅水电煤气纯净水热水口径水表全部信息出户彻底填补国供水供电计量理方面空白破国供水电计量理落局面中水表系统智化提高供水理部门工作效率节约费加强水监督理提供效措施技术节约水合理水创造条件
    国目前水表新产品开发基鉴国外先进模式国外方面研究设计起步较早例ABB公司KENT水表采充电电池具健读数显示日期时间户水量兼机械式电子式读数功配备IBM PC兼容机接口进行电话通信德国Sameco公司新型水表显示年年度水量日期时间等开发电卡式水表国生产水表企业智化水表作研究低功耗性等方面没达预期效果没量推广普应国外水表行业目前情况水资源持续发展目标国传统水表生产必须进行改进适应前社会济发展需口市场竞争中占席
    目前新型水表开发研制遵循计量准确读数直观低功耗数安全性原关计量准确低功耗般涉元器件选软件编制信号传输掉电保护抗干扰等许问题关十读数直观问题考虑LED显示功耗较电路连接复杂寿命等素般采LCD液晶显示具良性价关数安全性问题般讲智卡水表系统准确性性安全性体现智卡密码安全性数加密读写智卡控制系统动作性等方面



    13 基求

    1系统单片机作控制器采模块设计方法系统硬件软件进行详细设计
    2IC卡插入水表中确认卡效正常供水达卡中购水量水表动关闭闸门切断供水
    3卡中水量剩定量时水表发出报警信号提醒户时购水
    4通水表显示屏查累计水量月水量水量
    5插入购水IC卡时水表动水表剩余水量次购水量进行累计
    6具动保护功掉电保护功
    7加密功做专卡专

    14 文结构
    首先课题进行深入解认识智IC卡普通缴费优劣国外现状发展前景进行定解次需解系统中需原理系统中需软件硬件综合需达务书中求画出电路图


    第二章 方案证选择
    章详细介绍系统原理框图充分解方案优缺点进行选择种模块工作原理
    21总体思路概括
    系统采51单片机核心处理单元IC卡插入时候触动卡插槽开关单片机开始读取IC卡识码识码验证通证明水卡该水表然开始读取IC水量读取动单片机连接存储器值进行累加然液晶显示累计水量剩水量月水量月水量月初号0000 动清零月份识采DS1302时钟芯片进行读取时间信息水量剩余定量时出发蜂鸣器报警LED发光声光报警
    系统原理框图图21示系统稳压电源模块单片机模块时钟芯片模块IC卡插槽模块电磁阀模块数存储器模块声光报警模块显示模块等部分组成

    图21 系统原理框图


    221 单片机模块

    单片机全称单片微型计算机(Single Chip Microcomputer)简写MCU微型控制器专工业控制测量设计具集成度高性高性价高三高优势体积功全特点应计算机外设智仪器仪表家电器工业检测控制通信设备等嵌入式工程师够根应象需求选择合适单片机进行种系统设计程序设计系统程序指令完成规定工作
    单片机较
    单片机系统中重部分单片机中键微机功中单片机开始读取IC卡识码识码验证通证明水卡该水表然开始读取IC水量读取动单片机连接存储器值进行累加然液晶显示累计水量剩水量月水量然相应处理时必须考虑系统价格体积

    222 时钟芯片模块

    DS1302美国DALLAS公司推出种高性低功耗实时时钟芯片附加31字节静态RAM采SPI三线接口CPU进行步通信采突发方式次传送字节时钟信号RAM数实时时钟提供秒分时日星期月年月31天时动调整具闰年补偿功工作电压宽达25~55V采双电源供电(电源备电源)设置备电源充电方式提供背电源进行涓细电流充电力DS1302外部引脚分配图1示部结构图2示DS1302数记录特某具特殊意义数点记录实现数出现该数时间时记录广泛应测量系统中

    图23 外部引脚
    引脚功: 
      Vcc1:电源Vcc2:备份电源Vcc2>Vcc1+02V时Vcc2DS1302供电Vcc2< Vcc1时Vcc1DS1302供电        
    SCLK:串行时钟输入控制数输入输出         
    IO:三线接口时双数线 
    CE:输入信号读写数期间必须高该引脚两功:第CE开始控制字访问移位寄存器控制逻辑次CE提供结束单字节字节数传输方法     
    DS1302列组寄存器: 
    ① DS1302关日历时间寄存器12中7寄存器(读时81h~8Dh写时80h~8Ch)存放数格式BCD码形式时寄存器(85h84h)位7定义DS1302运行12时模式24时模式高时选择12时模式12时模式时位5 1时表示PM24时模式时位5第二10时位 
    秒寄存器(81h80h)位7定义时钟暂停标志(CH)该位置1时时钟振荡器停止DS1302处低功耗状态该位置0时时钟开始运行控制寄存器(8Fh8Eh)位7写保护位(WP)7位均置0时钟RAM写操作前WP位必须0WP位1时写保护位防止寄存器写操作
    ② DS1302工作模式寄存器 谓突发模式指次传送字节时钟信号RAM数
    ③ 外DS1302充电寄存器等
    DS1302工作原理 
      DS1302工作时数传送进行初始化需复位脚(RST)置高电8位址命令信息装入移位寄存器数时钟(SCLK)升串行输入前8位指定访问址命令字装入移位寄存器时钟周期读操作时输出数写操作时输出数时钟脉数单字节方式8+8(8位址+8位数)字节方式8加达248数

    223 数存储器模块

    I2C总线(Inter Integrated Circuit Bus):Philips公司推出串行总线标准(二线制)总线扩展外围器件外设接口通总线寻址具备总线仲裁高低速设备步等功高性机总线
    I2C总线工作原理
    串行数线SDA串行时钟线SCL构成发送接收数挂接I2C总线器件接口电路应具I2C总线接口SDASCL名端相连总线器件SDA发送址信号寻址需片选线
    特点
    组成系统结构简单占空间芯片脚数量少需片选信号价格低允许干兼容器件享总线应较广泛总线长度达76m传送速度达400kbps标准速率100kbps支持组件支持控器件(某时刻控器件)I2C总线设备SDA SCL引脚必须外接拉电阻
    典型I2C总线系统结构图示I2C总线挂接器件中器件必须支持I2C总线通信协议

    图24 系统结构
    I2C总线器件寻址方式
    器件通SCLSDA连接I2C总线器件进行数传输前需通寻址选择需通信器件I2C总线外围器件需唯7位址器件址引脚址两部分组成
    器件址I2C器件固址编码器件出厂时已定更改
    引脚址I2C总线外围器件址引脚(A2A1A0)决定根电路中接电源正极接悬空形成址代码
    实际应中遇单片机没I2C总线接口例典型 51系列单片机类单片机操作I2C总线器件力需程序模拟I2C总线数传输协议
    目前市场I2C总线接口器件种例AD转换器DA转换器(PCF8591)时钟芯片存储器(24C08)等里典型I2C总线接口存储器例进行介绍
    I2C总线接口EEPROM存储器种采I2C总线接口串行总线存储器类存储器具体积引脚少功耗低工作电压范围宽等特点目前AtmelMicroChipNational等公司均提供种型号I2C总线接口串行EEPROM存储器单片机系统中较EEPROM存储器24系列串行EEPROM具型号容量支持I2C总线协议占单片机IO端口少芯片扩展方便读写简单等优点

    图25 24C08引脚结构

    224 显示模块

    12864128*64点阵液晶模块点阵数简称
    LCD12864常图形液晶显示模块显示分辨率128×64显示汉字图形置8192中文汉字(16X16 点阵)128 字符(8X16 点阵) 64X256 点阵显示 RAM(GDRAM)
    LCD12864引脚功定义:
    1:VSS接端
    2:VDD电源正接+5V
    3:VO度调整般接+5V
    4:DI(CS*)片选接+5V
    5:RW(SID*)数输入端
    6:E(SCLK*)时钟输入端
    7~14:DB0 ~ DB7行数总线
    15:PSB串模式选择串行模式接行模式接+5V
    16:NC空引脚需连接
    17:RSTB复位端低电效般接+5V
    18:VEE空引脚需连接
    19:BLA背光正极接+5V
    20 BLK背光负极接
    模块接口说明: 
    *注释1:实际应中仅串口通讯模式PSB接固定低电模块J8GND焊锡短接 
    *注释2:模块部接电复位电路需常复位场合该端悬空 *注释3:背光模块电源模块JAJK焊锡短接
    1前准备先模块加工作电压图连接方法调节LCD度显示出黑色底影程初步检测LCD缺段现象 
    2字符显示带中文字库128X640402B屏显示4行8列3216×16点阵汉字显示RAM显示1中文字符216×8点阵全高ASCII码字符屏实现32中文字符64ASCII码字符显示带中文字库128X640402B部提供128×2字节字符显示RAM缓区(DDRAM)字符显示通字符显示编码写入该字符显示RAM实现根写入容分液晶屏显示CGROM(中文字库)HCGROM(ASCII码字库)CGRAM(定义字形)容
    带中文字库128X64显示模块时应注意点: 
    ①欲某位置显示中文字符时应先设定显示字符位置先设定显示址写入中文字符编码 
    ②显示ASCII字符程显示中文字符程相显示连续字符时须设定次显示址模块动址加1指字符位置否显示字符中会空ASCII字符位置 
    ③字符编码2字节时应先写入高位字节写入低位字节 
    ④模块接收指令前处理器必须先确认模块部处非忙状态读取BF标志时BF需0方接受新指令果送出指令前检查BF标志前指令指令中间必须延迟段较长时间等前指令确定执行完成指令执行时间请参考指令表中指令执行时间说明⑤RE基指令集扩充指令集选择控制位变更RE指令集维持状态非次变更RE位否相指令集时需次均重设RE位



    23电路模块设计

    231单片机外围接口电路

    单片机外围电路图26示

    图26单片机外围电路

    232 稳压电源电路

    系统12V稳压5v单片机供电图27示

    图27稳压电路





    233 时钟芯片电路

    时钟芯片电路图28示

    图28时钟芯片电路

    234 数存储电路

    数存储电路图29示

    图29数存储电路

    235电磁阀电路

    电磁阀电路图210示

    图210电磁阀电路









    236声光报警电路

    声光报警电路图211示

    图211声光报警电路

    237显示电路

    显示电路图212示

    图212显示电路

    238 IC卡电路

    IC卡电路图213示

    图213 IC卡电路




    3软件设计

    31软件开发环境

    汇编语言编写篇文章C写C语言简洁函数设计结构清晰功模块分称调试器果容易解决问题改进程序容易找相应模块兼容汇编语言微操作
    软件MCS51汇编语言编制采结构化模块化程序设计方法程序外部中断0子程序外部中断1子程序IC卡片外数存储器读写软件设计显示子程序等模块组成

    32程序流程图

    程序流程图图31示

    图31程序流程图

    33模块程序

    331 液晶显示程序

    #ifndef _LCD12864_H_
    #define _LCD12864_H_
    *
    init_lcd()
    clrram_lcd()

    gotoxy(22)
    print(¾íÈÆÉ豸)*
    #define uchar unsigned char

    void wr_d_lcd(uchar content)
    void wr_i_lcd(uchar content)
    void clrram_lcd (void)
    void init_lcd(void)
    void busy_lcd(void)
    void rev_row_lcd(uchar row)
    void rev_co_lcd(uchar rowuchar coluchar mode)
    void clr_lcd(void)
    void wr_co_lcd(uchar rowuchar coluchar lcddata1uchar lcddtta2)
    void wr_row_lcd(uchar rowchar *p)
    **********************************
    Òº¾§³õʼ»¯
    **********************************

    #endif

    332 24C08数存储程序

    #ifndef _24C08_H_
    #define _24C08_H_
    *
    STORE_SDA 1 STORE_SDA1STORE_SCL1ʹÖ÷´ÓÉ豸´¦ÓÚ¿ÕÏÐ״̬
    STORE_SCL 1
    ÒÔÉÏÔÚ³õʼ»¯ÖÐд
    secReadSet(2)¶Á³ö±£´æµÄÊý¾Ý¸³ÓÚsec
    WriteSet(2sec) ÔÚ24c08µÄµØÖ·2ÖÐдÈëÊý¾Ýsec
    *
    #include °üº¬51µ¥Æ¬»ú¼Ä´æÆ÷¶¨ÒåµÄÍ·Îļþ
    #include °üº¬_nop_()º¯Êý¶¨ÒåµÄÍ·Îļþ
    #define OP_READ 0xa1 Æ÷¼þµØÖ·ÒÔ¼°¶ÁÈ¡²Ù×÷0xa1¼´Îª1010 0001B
    #define OP_WRITE 0xa0 Æ÷¼þµØÖ·ÒÔ¼°Ð´Èë²Ù×÷0xa1¼´Îª1010 0000B
    #define IC_READ 0xaf
    #define IC_WRITE 0xae
    sbit STORE_SCLP2^1 ½«´®ÐÐʱÖÓ×ÜÏßSTORE_SCL붨ÒåÔÚΪP34Òý½Å
    sbit STORE_SDAP2^0 ½«´®ÐÐÊý¾Ý×ÜÏßSTORE_SDA붨ÒåÔÚΪP35Òý½Å

    *****************************************************
    º¯Êý¹¦ÄÜ£ºÑÓʱ1ms
    ***************************************************
    void delay1ms()
    {
    unsigned char ij
    for(i0i<10i++)
    for(j0j<33j++)

    }

    *****************************************************
    º¯Êý¹¦ÄÜ£ºÑÓʱÈô¸ÉºÁÃë
    Èë¿Ú²ÎÊý£ºn
    ***************************************************
    void delaynms(unsigned char n)
    {
    unsigned char i
    for(i0i delay1ms()
    }
    ***************************************************
    º¯Êý¹¦ÄÜ£º¿ªÊ¼Êý¾Ý´«ËÍ
    ***************************************************
    void start()
    ¿ªÊ¼Î»
    {
    STORE_SDA 1 STORE_SDA³õʼ»¯Îª¸ßµçƽ¡°1¡±
    STORE_SCL 1 ¿ªÊ¼Êý¾Ý´«ËÍʱ£¬ÒªÇóSTORE_SCLΪ¸ßµçƽ¡°1¡±
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    STORE_SDA 0 STORE_SDAµÄϽµÑر»ÈÏΪÊÇ¿ªÊ¼ÐźÅ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    STORE_SCL 0 STORE_SCLΪµÍµçƽʱ£¬STORE_SDAÉÏÊý¾Ý²ÅÔÊÐí±ä»¯(¼´ÔÊÐíÒÔºóµÄÊý¾Ý´«µÝ£©
    }
    ***************************************************
    º¯Êý¹¦ÄÜ£º½áÊøÊý¾Ý´«ËÍ
    ***************************************************
    void stop() ֹͣλ
    {
    STORE_SDA 0 STORE_SDA³õʼ»¯ÎªµÍµçƽ¡°0¡± _n
    STORE_SCL 1 ½áÊøÊý¾Ý´«ËÍʱ£¬ÒªÇóSTORE_SCLΪ¸ßµçƽ¡°1¡±
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    STORE_SDA 1 STORE_SDAµÄÉÏÉýÑر»ÈÏΪÊǽáÊøÐźÅ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    STORE_SDA0
    STORE_SCL0
    }
    ***************************************************
    º¯Êý¹¦ÄÜ£º¼ì²âÓ¦´ðλ
    ***************************************************

    bit Ask() ¼ì²âÓ¦´ð
    {
    bit ack_bit ´¢´æÓ¦´ðλ
    STORE_SDA 1 ·¢ËÍÉ豸£¨Ö÷»ú£©Ó¦ÔÚʱÖÓÂö³åµÄ¸ßµçƽÆÚ¼ä(STORE_SCL1)ÊÍ·ÅSTORE_SDAÏߣ¬
    ÒÔÈÃSTORE_SDAÏßתÓɽÓÊÕÉ豸(AT24Cxx)¿ØÖÆ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    STORE_SCL 1 ¸ù¾ÝÉÏÊö¹æ¶¨£¬STORE_SCLӦΪ¸ßµçƽ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    ack_bit STORE_SDA ½ÓÊÜÉ豸£¨AT24Cxx)ÏòSTORE_SDAË͵͵çƽ£¬±íʾÒѾ­½ÓÊÕµ½Ò»¸ö×Ö½Ú
    ÈôË͸ߵçƽ£¬±íʾûÓнÓÊÕµ½£¬´«ËÍÒì³£ ½áÊø·¢ËÍ
    STORE_SCL 0 STORE_SCLΪµÍµçƽʱ£¬STORE_SDAÉÏÊý¾Ý²ÅÔÊÐí±ä»¯(¼´ÔÊÐíÒÔºóµÄÊý¾Ý´«µÝ£©
    return ack_bit ·µ»ØAT24CxxÓ¦´ðλ



    }





    ***************************************************
    º¯Êý¹¦ÄÜ£º´ÓAT24Cxx¶ÁÈ¡Êý¾Ý
    ³ö¿Ú²ÎÊý£ºx
    ***************************************************
    unsigned char ReadData()
    ´ÓAT24CxxÒÆÈëÊý¾Ýµ½MCU
    {
    unsigned char i
    unsigned char x ´¢´æ´ÓAT24CxxÖжÁ³öµÄÊý¾Ý
    for(i 0 i < 8 i++)
    {
    STORE_SCL 1 STORE_SCLÖÃΪ¸ßµçƽ
    x<<1 ½«xÖеĸ÷¶þ½øλÏò×óÒÆһλ
    x|(unsigned char)STORE_SDA ½«STORE_SDAÉϵÄÊý¾Ýͨ¹ý°´Î»¡°»ò¡°ÔËËã´æÈëxÖÐ
    STORE_SCL 0 ÔÚSTORE_SCLµÄϽµÑضÁ³öÊý¾Ý
    }
    return(x) ½«¶ÁÈ¡µÄÊý¾Ý·µ»Ø
    }
    ***************************************************
    º¯Êý¹¦ÄÜ£ºÏòAT24CxxµÄµ±Ç°µØַдÈëÊý¾Ý
    Èë¿Ú²ÎÊý£ºy (´¢´æ´ýдÈëµÄÊý¾Ý£©
    ***************************************************
    ÔÚµ÷ÓôËÊý¾ÝдÈ뺯ÊýÇ°ÐèÊ×Ïȵ÷ÓÿªÊ¼º¯Êýstart()ËùÒÔSTORE_SCL0
    void WriteCurrent(unsigned char y)
    {
    unsigned char i
    for(i 0 i < 8 i++) Ñ­»·ÒÆÈë8¸öλ
    {
    STORE_SDA (bit)(y&0x80) ͨ¹ý°´Î»¡°Ó롱ÔËË㽫×î¸ßλÊý¾ÝË͵½S
    ÒòΪ´«ËÍʱ¸ßλÔÚÇ°£¬µÍλÔÚºó
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    STORE_SCL 1 ÔÚSTORE_SCLµÄÉÏÉýÑؽ«Êý¾ÝдÈëAT24Cxx
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ
    _nop_() µÈ´ýÒ»¸ö»úÆ÷ÖÜÆÚ

    STORE_SCL 0 ½«STORE_SCLÖØÐÂÖÃΪµÍµçƽ£¬ÒÔÔÚSC£ÌÏßÐγɴ«ËÍÊý¾ÝËùÐèµÄ£¸¸öÂö³å
    y << 1 ½«yÖеĸ÷¶þ½øλÏò×óÒÆһλ

    }
    }
    ***************************************************
    º¯Êý¹¦ÄÜ£ºÏòAT24CxxÖеÄÖ¸¶¨µØַдÈëÊý¾Ý
    Èë¿Ú²ÎÊý£ºadd (´¢´æÖ¸¶¨µÄµØÖ·£©£»dat(´¢´æ´ýдÈëµÄÊý¾Ý£©
    ***************************************************
    void WriteSet(unsigned char add unsigned char datunsigned char i)
    ÔÚÖ¸¶¨µØÖ·addr´¦Ð´ÈëÊý¾ÝWriteCurrent
    {
    start() ¿ªÊ¼Êý¾Ý´«µÝ
    WriteCurrent(i) Ñ¡ÔñÒª²Ù×÷µÄAT24CxxоƬ£¬²¢¸æÖªÒª¶ÔÆäдÈëÊý¾Ý
    Ask()
    WriteCurrent(add) дÈëÖ¸¶¨µØÖ·
    Ask()
    WriteCurrent(dat) Ïòµ±Ç°µØÖ·£¨ÉÏÃæÖ¸¶¨µÄµØÖ·£©Ð´ÈëÊý¾Ý
    Ask()
    stop() Í£Ö¹Êý¾Ý´«µÝ
    delaynms(4) 1¸ö×Ö½ÚµÄдÈëÖÜÆÚΪ1ms ×îºÃÑÓʱ1msÒÔÉÏ
    }
    ***************************************************
    º¯Êý¹¦ÄÜ£º´ÓAT24CxxÖеĵ±Ç°µØÖ·¶ÁÈ¡Êý¾Ý
    ³ö¿Ú²ÎÊý£ºx (´¢´æ¶Á³öµÄÊý¾Ý£©
    ***************************************************
    unsigned char ReadCurrent(unsigned char i)
    {
    unsigned char x
    start() ¿ªÊ¼Êý¾Ý´«µÝ
    WriteCurrent(i) Ñ¡ÔñÒª²Ù×÷µÄAT24CxxоƬ£¬²¢¸æÖªÒª¶ÁÆäÊý¾Ý
    Ask()
    xReadData() ½«¶ÁÈ¡µÄÊý¾Ý´æÈëx
    stop() Í£Ö¹Êý¾Ý´«µÝ
    return x ·µ»Ø¶ÁÈ¡µÄÊý¾Ý
    }
    ***************************************************
    º¯Êý¹¦ÄÜ£º´ÓAT24CxxÖеÄÖ¸¶¨µØÖ·¶ÁÈ¡Êý¾Ý
    Èë¿Ú²ÎÊý£ºset_addr
    ³ö¿Ú²ÎÊý£ºx
    ***************************************************
    unsigned char ReadSet(unsigned char set_addrunsigned char i)
    ÔÚÖ¸¶¨µØÖ·¶ÁÈ¡
    {
    start() ¿ªÊ¼Êý¾Ý´«µÝ
    WriteCurrent(i) Ñ¡ÔñÒª²Ù×÷µÄAT24CxxоƬ£¬²¢¸æÖªÒª¶ÔÆäдÈëÊý¾Ý
    Ask()
    WriteCurrent(set_addr) дÈëÖ¸¶¨µØÖ·
    Ask()
    return(ReadCurrent(i)) ´ÓÖ¸¶¨µØÖ·¶Á³öÊý¾Ý²¢·µ»Ø
    }
    *
    STORE_SDA 1 STORE_SDA1STORE_SCL1ʹÖ÷´ÓÉ豸´¦ÓÚ¿ÕÏÐ״̬
    STORE_SCL 1
    ÒÔÉÏÔÚ³õʼ»¯ÖÐд
    secReadSet(2)¶Á³ö±£´æµÄÊý¾Ý¸³ÓÚsec
    WriteSet(2sec) ÔÚ24c08µÄµØÖ·2ÖÐдÈëÊý¾Ýsec
    *

    #endif







    333 时钟芯片程序

    #ifndef _DS1302_H_
    #define _DS1302_H_
    *****************************************************
    º¯Êý¹¦ÄÜ£ºÖ÷º¯Êý
    ***************************************************
    *void main(void)
    {
    unsigned char secondminutehourdaymonthyear ·Ö±ð´¢´æÃç¡¢·Ö¡¢Ð¡Ê±£¬ÈÕ£¬Ô£¬Äê
    unsigned char ReadValue ´¢´æ´Ó1302¶ÁÈ¡µÄÊý¾Ý

    Init_DS1302() ½«1302³õʼ»¯
    while(1)
    {
    ReadValue ReadSet1302(0x81) ´ÓÃë¼Ä´æÆ÷¶ÁÊý¾Ý
    second((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F)½«¶Á³öÊý¾Ýת»¯
    DisplaySecond(second) ÏÔʾÃë
    ReadValue ReadSet1302(0x83) ´Ó·Ö¼Ä´æÆ÷¶Á
    minute((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F) ½«¶Á³öÊý¾Ýת»¯
    DisplayMinute(minute) ÏÔʾ·Ö
    ReadValue ReadSet1302(0x85) ´Ó·Ö¼Ä´æÆ÷¶Á
    hour((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F) ½«¶Á³öÊý¾Ýת»¯
    DisplayHour(hour) ÏÔʾСʱ
    ReadValue ReadSet1302(0x87) ´Ó·Ö¼Ä´æÆ÷¶Á
    day((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F) ½«¶Á³öÊý¾Ýת»¯
    DisplayDay(day) ÏÔʾÈÕ
    ReadValue ReadSet1302(0x89) ´Ó·Ö¼Ä´æÆ÷¶Á
    month((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F) ½«¶Á³öÊý¾Ýת»¯
    DisplayMonth(month) ÏÔʾÔÂ
    ReadValue ReadSet1302(0x8d) ´Ó·Ö¼Ä´æÆ÷¶Á
    year((ReadValue&0xf0)>>4)*10 + (ReadValue&0x0F) ½«¶Á³öÊý¾Ýת»¯
    DisplayYear(year) ÏÔʾÄê
    }
    }*
    #include °üº¬µ¥Æ¬»ú¼Ä´æÆ÷µÄÍ·Îļþ
    #include °üº¬_nop_()º¯Êý¶¨ÒåµÄÍ·Îļþ
    sbit SCLKP2^5 붨Òå1302оƬµÄ½Ó¿Ú£¬Ê±ÖÓÊä³ö¶Ë¿Ú¶¨ÒåÔÚP10Òý½Å
    sbit DATAP2^6 붨Òå1302оƬµÄ½Ó¿Ú£¬Êý¾ÝÊä³ö¶Ë¶¨ÒåÔÚP11Òý½Å
    sbit RSTP2^4 붨Òå1302оƬµÄ½Ó¿Ú£¬¸´Î»¶Ë¿Ú¶¨ÒåÔÚP12Òý½Å
    *****************************************************
    º¯Êý¹¦ÄÜ£ºÑÓʱÈô¸É΢Ãë
    Èë¿Ú²ÎÊý£ºn
    ***************************************************
    void delaynus(unsigned char n)
    {
    unsigned char i
    for(i0i}

    *****************************************************
    º¯Êý¹¦ÄÜ£ºÏò1302дһ¸ö×Ö½ÚÊý¾Ý
    Èë¿Ú²ÎÊý£ºx
    ***************************************************
    void Write1302(unsigned char dat)
    {
    unsigned char i
    SCLK0 À­µÍSCLK£¬ÎªÂö³åÉÏÉýÑØдÈëÊý¾Ý×öºÃ×¼±¸
    delaynus(2) ÉÔ΢µÈ´ý£¬Ê¹Ó²¼þ×öºÃ×¼±¸
    for(i0i<8i++) Á¬Ðøд8¸ö¶þ½øÖÆλÊý¾Ý
    {
    DATAdat&0x01 È¡³ödatµÄµÚ0λÊý¾ÝдÈë1302 µÍλÔÚÇ°£¬¸ßλÔÚºó
    delaynus(2) ÉÔ΢µÈ´ý£¬Ê¹Ó²¼þ×öºÃ×¼±¸
    SCLK1 ÉÏÉýÑØдÈëÊý¾Ý
    delaynus(2) ÉÔ΢µÈ´ý£¬Ê¹Ó²¼þ×öºÃ×¼±¸
    SCLK0 ÖØÐÂÀ­µÍSCLK£¬ÐγÉÂö³å
    dat>>1 ½«datµÄ¸÷Êý¾ÝλÓÒÒÆ1λ£¬×¼±¸Ð´ÈëÏÂÒ»¸öÊý¾Ýλ
    }

    }
    *****************************************************
    º¯Êý¹¦ÄÜ£º¸ù¾ÝÃüÁî×Ö£¬Ïò1302дһ¸ö×Ö½ÚÊý¾Ý
    Èë¿Ú²ÎÊý£ºCmd£¬´¢´æÃüÁî×Ö£»dat£¬´¢´æ´ýдµÄÊý¾Ý
    ***************************************************
    void WriteSet1302(unsigned char Cmdunsigned char dat)
    {
    RST0 ½ûÖ¹Êý¾Ý´«µÝ
    SCLK0 È·±£Ð´Êý¾ÓÇ°SCLK±»À­µÍ
    RST1 Æô¶¯Êý¾Ý´«Êä
    delaynus(2) ÉÔ΢µÈ´ý£¬Ê¹Ó²¼þ×öºÃ×¼±¸
    Write1302(Cmd) дÈëÃüÁî×Ö
    Write1302(dat) дÊý¾Ý
    SCLK1 ½«Ê±ÖÓµçƽÖÃÓڸߵçƽ״̬
    RST0 ½ûÖ¹Êý¾Ý´«µÝ
    }
    *****************************************************
    º¯Êý¹¦ÄÜ£º´Ó1302¶ÁÒ»¸ö×Ö½ÚÊý¾Ý
    Èë¿Ú²ÎÊý£ºx
    ***************************************************
    unsigned char Read1302(void)
    {
    unsigned char idat
    delaynus(2) ÉÔ΢µÈ´ý£¬Ê¹Ó²¼þ×öºÃ×¼±¸
    for(i0i<8i++) Á¬Ðø¶Á8¸ö¶þ½øÖÆλÊý¾Ý
    { dat>>1
    if(DATA1) Èç¹û¶Á³öµÄÊý¾ÝÊÇ1
    dat|0x80 ½«1È¡³ö£¬Ð´ÔÚdatµÄ×î¸ßλ
    SCLK1 ½«SCLKÖÃÓڸߵçƽ£¬ÎªÏ½µÑضÁ³ö
    delaynus(2) ÉÔ΢µÈ´ý
    SCLK0 À­µÍSCLK£¬ÐγÉÂö³åϽµÑØ
    delaynus(2) ÉÔ΢µÈ´ý
    }
    return dat ½«¶Á³öµÄÊý¾Ý·µ»Ø
    }
    *****************************************************
    º¯Êý¹¦ÄÜ£º¸ù¾ÝÃüÁî×Ö£¬´Ó1302¶ÁÈ¡Ò»¸ö×Ö½ÚÊý¾Ý
    Èë¿Ú²ÎÊý£ºCmd
    ***************************************************
    unsigned char ReadSet1302(unsigned char Cmd)
    {
    unsigned char dat
    RST0 À­µÍRST
    SCLK0 È·±£Ð´Êý¾ÓÇ°SCLK±»À­µÍ
    RST1 Æô¶¯Êý¾Ý´«Êä
    Write1302(Cmd) дÈëÃüÁî×Ö
    datRead1302() ¶Á³öÊý¾Ý
    SCLK1 ½«Ê±ÖÓµçƽÖÃÓÚÒÑ֪״̬
    RST0 ½ûÖ¹Êý¾Ý´«µÝ
    return dat ½«¶Á³öµÄÊý¾Ý·µ»Ø
    }
    *****************************************************
    º¯Êý¹¦ÄÜ£º 1302½øÐгõʼ»¯ÉèÖÃ
    ***************************************************
    void Init_DS1302(void)
    {
    unsigned char flag

    flag ReadSet1302(0x81)
    if(flag&0x80) { ÅжÏʱÖÓоƬÊÇ·ñ¹Ø±Õ
    WriteSet1302(0x8E0x00) ¸ù¾Ýд״̬¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´Èë²»±£»¤Ö¸Áî
    WriteSet1302(0x80((5510)<<4|(5510))) ¸ù¾ÝдÃë¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´ÈëÃëµÄ³õʼֵ
    WriteSet1302(0x82((5910)<<4|(5910))) ¸ù¾Ýд·Ö¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´Èë·ÖµÄ³õʼֵ
    WriteSet1302(0x84((2310)<<4|(2310))) ¸ù¾ÝдСʱ¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´ÈëСʱµÄ³õʼֵ
    WriteSet1302(0x86((1810)<<4|(1810))) ¸ù¾ÝдÈռĴæÆ÷ÃüÁî×Ö£¬Ð´ÈëÈյijõʼֵ
    WriteSet1302(0x88((610)<<4|(610))) ¸ù¾ÝдÔ¼ĴæÆ÷ÃüÁî×Ö£¬Ð´ÈëÔµijõʼֵ
    WriteSet1302(0x8c((910)<<4|(910))) ¸ù¾ÝдÄê¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´ÈëÄêµÄ³õʼֵ
    WriteSet1302(0x900xa5) ´ò¿ª³äµç¹¦ÄÜ Ñ¡Ôñ2Kµç×è³äµç·½Ê½
    WriteSet1302(0x8E0x80) ¸ù¾Ýд״̬¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´Èë±£»¤Ö¸Áî
    }

    }
    Èç¹û²»Ïëÿ´Î¶¼³õʼ»¯Ê±¼ä£¬Ò²¾ÍÊǵôµçºó»¹ÏëÈÃʱÖÓ¼ÌÐø×ßʱµÄ»° ¾ÍÓÃÉÏÃæµÄÓï¾ä


    *ÕâÊÇÿ´Î¶¼³õʼ»¯µÄÓï¾ä*
    *
    WriteSet1302(0x8E0x00) ¸ù¾Ýд״̬¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´Èë²»±£»¤Ö¸Áî
    WriteSet1302(0x80((5510)<<4|(5510))) ¸ù¾ÝдÃë¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´ÈëÃëµÄ³õʼֵ

    WriteSet1302(0x82((5910)<<4|(5910))) ¸ù¾Ýд·Ö¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´Èë·ÖµÄ³õʼֵ

    WriteSet1302(0x84((2310)<<4|(2310))) ¸ù¾ÝдСʱ¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´ÈëСʱµÄ³õʼֵ

    WriteSet1302(0x86((1810)<<4|(1810))) ¸ù¾ÝдÈռĴæÆ÷ÃüÁî×Ö£¬Ð´ÈëÈյijõʼֵ

    WriteSet1302(0x88((610)<<4|(610))) ¸ù¾ÝдÔ¼ĴæÆ÷ÃüÁî×Ö£¬Ð´ÈëÔµijõʼֵ

    WriteSet1302(0x8c((910)<<4|(910))) ¸ù¾ÝдÄê¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´ÈëÄêµÄ³õʼֵ

    WriteSet1302(0x900xa5) ´ò¿ª³äµç¹¦ÄÜ Ñ¡Ôñ2Kµç×è³äµç·½Ê½

    WriteSet1302(0x8E0x80) ¸ù¾Ýд״̬¼Ä´æÆ÷ÃüÁî×Ö£¬Ð´Èë±£»¤Ö¸Áî

    *



    #endif


















    基单片机IC卡智水表控制系统逻辑加密IC卡实现水收费电子化设计采51单片机控制全动运行成较低方便运行理简单保护功齐全整系统结构紧凑芯片少控制精度高IC卡接口电路片外数存储器接口电路显示电路采串行方式减单片机口线口线单片机成节约成开支减PCB版电源电路采稳压5V电济实惠性稳定年限长 
      系统采51单片机核心处理单元IC卡插入时候触动卡插槽开关单片机开始读取IC卡识码识码验证通证明水卡该水表然开始读取IC水量读取动单片机连接存储器值进行累加然液晶显示累计水量剩水量月水量月水量月初号0000 动清零月份识采DS1302时钟芯片进行读取时间信息水量剩余定量时出发蜂鸣器报警LED发光声光报警
    总说述设计够较完成设计务基实现设计求力限设计中难免存定缺陷请位专家批评指正着水资源日益紧张IC卡智水表特优点(先先收费供水解决工抄表麻烦等)必成水表中流着市场前景









    致谢

    文完稿余心情激动已久久静衷感谢毕业设计指导老师学阶段文选题资料查询开题研究撰写环节充分老师悉心指导帮助老师知识欠缺时候认真详细予帮助老师高深知识限责感高尚教师风范感触里毕业答辩评审组位专家教授老师表示深深谢意 
    年帮助教育鼓励系部老师表示真诚谢意学令留恋光阴里仅传授做学问秘诀传授做准终生受益 
    衷心感谢帮助室友学朋友鼓励帮助学轻松解决种困难更感谢父母家您养育支持利完成学业会生时间报答养育恩辜负您厚 
     祝老师学身体健康事业成













    参考文献

    [1] 吴志成肇启明马步青等国智化水表应现状发展方[J]中国水排水200315(9):1921
    [2] 沈卫红单片机应系统设计实例分析[M]北京:北京航空航天学出版社2003 119159
    [3] 赵四海IC卡智水表[J]动化仪表200223(11)3638
    [4] 张淑清姜万录基CAN总线智水表动抄收系统[J]福建电脑20038(1)3435
    [5] 立民单片机中级教程原理应[M] 北京:北京航空航天学出版社1999 1619
    [6] 马修水 Wiegand传感器原理应[J] 仪表技术传感器19997(9)67
    [7] 韩杰李慧杨晓红智水表电控系统设计[J]吉林工学院学报200223(3)2325
    [8] 戴永微机控制技术[M]长沙:湖南学出版社19989093
    [9] 雷建军赵明富黄刚等二线串行E2PROM原理AT89C2051接口编程[J]重庆工学院学报17(3)4043
    [10] 张寅刚单片机实现通存贮器IC卡读写[J]电子工程师200127(6)36
    [11] 马云峰穆效江陈子夫等 IC卡智水表设计[J]动化仪器仪表200017(1) 4850
    [12] 庞英曹海建动态显示电路AT89C2051中应[J] 青岛学学报(工程技术版) 200419(1)7072
    [13] 皱振春董国增MCS51系列单片机原理接口技术[M]北京机械工业出版社200056
    [14] Wang Ren IC Card Intelligent Water Meter Design and Implementation [J]Instrumentation Technology20038(9)517
    [15] 廖义勇超级电容应-智水表[J]应电子200316(7)30
    [16] 李素康单片机实现精确计量智水表[J]企业技术开发200524(6)2325
    [17] 付家单片机控制工程实践技术[M]北京:化学工业出版社200417
    [18] YuJinHuangJiwuYuanLanying The Application of Multitasking Mechanismin Single Chip Computer System[J] Wuhan University Journal of Natural Sciences19994(1)5760






















    附录

    附录1 原理图



    附录2程序

    #include reg52h
    #include LCD12864h
    #include LCD12864c
    #include DS1302h
    #include 24C08h
    sbit ICkeyP2^2
    sbit bellP1^0
    sbit DCFP2^3
    void delay(uchar xms)
    unsigned char LJYSBYYSKYSICYSÓÃÀ´´æ·ÅÀÛ¼ÆÓÃË®£¬±¾Ô£¬¿ÉÓÃË®£¬ICË®Á¿
    void main()
    {
    unsigned char daymonthyear ·Ö±ð´¢´æÈÕ£¬Ô£¬Äê
    unsigned char ReadValue ´¢´æ´Ó1302¶ÁÈ¡µÄÊý¾Ý
    unsigned char str_time[9]ÓÃÓÚ´æ·ÅÕû¸öÄêÔÂÈÕʱ¼ä
    unsigned char dayflag
    unsigned char str_LJYS[6]str_KYS[6]str_BYYS[6]
    EA1
    EX01
    IT01
    init_lcd()
    clrram_lcd()12864Òº¾§³õʼ»¯

    gotoxy(00)
    print(20)ÔÚµÚÒ»ÐÐÏÔʾÄêÔÂÈÕ
    gotoxy(10)
    print(ÀÛ¼ÆÓÃË®)
    gotoxy(20)
    print(±¾ÔÂÓÃË®)
    gotoxy(30)
    print(¿ÉÓÃË®)

    Init_DS1302() ½«1302³õʼ»¯
    STORE_SDA 1 STORE_SDA1STORE_SCL1ʹÖ÷´ÓÉ豸´¦ÓÚ¿ÕÏÐ״̬
    STORE_SCL 1 24C08³õʼ»¯ 2´æIC¿¨ 3 ¿ÉÓÃË® 4 ±¾ÔÂÓÃË® 5ÀÛ¼ÆÓÃË®
    while(1)
    {
    ReadValue ReadSet1302(0x8d) ´ÓÄê¼Ä´æÆ÷¶Á
    year((ReadValue&0xf0)>>4)*10 + (ReadValue&0x0F) ½«¶Á³öÊý¾Ýת»¯

    ReadValue ReadSet1302(0x89) ´ÓÔ¼ĴæÆ÷¶¶Á
    month((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F) ½«¶Á³öÊý¾Ýת»¯

    ReadValue ReadSet1302(0x87) ´ÓÈռĴæÆ÷¶Á
    day((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F) ½«¶Á³öÊý¾Ýת»¯

    str_time[0]year10+0x30
    str_time[1]year10+0x30
    str_time[2]''½«ÈÕÊý¾Ýת»»ÎªÒº¾§¿É¶ÁÊý¾Ý
    str_time[3]month10+0x30
    str_time[4]month10+0x30
    str_time[5]''½«ÈÕÊý¾Ýת»»ÎªÒº¾§¿É¶ÁÊý¾Ý
    str_time[6]day10+0x30
    str_time[7]day10+0x30
    str_time[8]'\0'½«ÈÕÊý¾Ýת»»ÎªÒº¾§¿É¶ÁÊý¾Ý
    gotoxy(01)
    print(str_time)
    if(day1)
    {
    if(dayflag0)
    {
    WriteSet(40OP_WRITE)½«IC¿¨ÄÚ±¾ÔÂË®Á¿Çå0´æ´¢µ½ÏµÍ³ROMÄÚ
    dayflag1
    }
    }
    else
    {
    dayflag0
    }
    if(ICkey0)ÅжÏIC¿¨ÊÇ·ñ²åÈ룬Èç¹û²åÈë
    {
    delay(5)
    if(ICkey0)
    {

    ICYSReadSet(2IC_READ)¶ÁÈ¡IC¿ªÄÚË®Á¿
    if(ICYS0)Èç¹ûIC¿¨ÄÚË®Á¿²»µÈÓÚ0
    {
    WriteSet(2ICYSOP_WRITE)½«IC¿¨ÄÚË®Á¿´æ´¢µ½ÏµÍ³ROMÄÚ
    WriteSet(2ICYSIC_WRITE)ÔÙ½«IC¿¨ÄÚÊý¾ÝÇå0 µØÖ·2ÓÃÓÚ´æ·ÅIC¿¨ÄÚ´æÈëµÄÊý¾Ý
    KYSReadSet(3OP_READ)½«ROMÄÚ¿ÉÓÃË®Á¿¶Á³öÀ´
    KYSICYS+KYS¿ÉÓÃË®¾Í±äΪÁ˱¾À´¿ÉÓÃË®Á¿+IC¿¨ÄÚ¶ÁÈ¡µÄË®Á¿
    WriteSet(3KYSOP_WRITE)½«IC¿¨ÄÚ¿ÉÓÃË®Á¿´æ´¢µ½ÏµÍ³ROMÄÚ
    }
    }
    while(ICkey)µÈ´ýIC¿¨°Î³ö
    }
    if(KYS<1)Èç¹û¿ÉÓÃˮûÓÐÁË µç´Å·§¶¯×÷¹ØË®
    {
    DCF0
    }
    else if(KYS<10)ÅжϿÉÓÃË®ÊÇ·ñСÓÚ10¶Ö£¬Èç¹ûСÓÚ10¶Ö£¬¾ÍÉù¹â±¨¾¯
    {
    DCF1
    bell0
    delay(200)
    bell1
    delay(200)
    }
    elseÈç¹ûÓÃË®Á¿³ä×㣬¾Í¼ÌÐøÓÃË®£¬Ò»ÇÐÕý³£
    {
    DCF1
    bell1
    }
    str_LJYS[0]LJYS10000+0x30
    str_LJYS[1]LJYS100001000+0x30
    str_LJYS[2]LJYS1000100+0x30
    str_LJYS[3]LJYS10010+0x30
    str_LJYS[4]LJYS10+0x30
    str_LJYS[5]'\0'

    str_KYS[0]KYS10000+0x30
    str_KYS[1]KYS100001000+0x30
    str_KYS[2]KYS1000100+0x30
    str_KYS[3]KYS10010+0x30
    str_KYS[4]KYS10+0x30
    str_KYS[5]'\0'

    str_BYYS[0]BYYS10000+0x30
    str_BYYS[1]BYYS100001000+0x30
    str_BYYS[2]BYYS1000100+0x30
    str_BYYS[3]BYYS10010+0x30
    str_BYYS[4]BYYS10+0x30
    str_BYYS[5]'\0'

    gotoxy(15)
    print(str_LJYS)
    gotoxy(25)
    print(str_BYYS)
    gotoxy(34)
    print(str_KYS)
    }
    }
    void delay(uchar xms)
    {
    unsigned char ij
    for(i0i for(j0j<121j++)
    }
    void ex0() interrupt 0Èç¹ûÔÚÓÃË®
    {
    KYS
    LJYS++
    BYYS++
    }
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 25 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    智能电风扇控制系统的设计

    智能电风扇控制系统的设计摘要:本文设计了一款智能电风扇控制系统,使用STC89C51作为主控制芯片,通过DS18B20检测环境温度并将温度信号发送给单片机。电机是否启动,以及电机的转速由系统设...

    2年前   
    751    0

    智能电梯IC卡管理系统购销合同(范本)

    智能电梯IC卡管理系统购销合同 购货单位(以下简称甲方): 邢台大器机械制造有限公司 供货单位(以下简称乙方): ...

    3年前   
    556    0

    多功能智能轮椅设计-运动控制系统的设计与实现

     多功能智能轮椅设计—运动控制系统的设计与实现多功能智能轮椅设计-运动控制系统的设计与实现摘 要在现如今智能化高速发展的时代,智能、科技已然成为时代的主题之一,智能产品也被越来越多运用到各行...

    3年前   
    618    0

    IC卡读写系统的单片机实现毕业设计

     XX 大 学 网 络 教 育 学 院 专科毕业论文 题目:IC卡读写系统的单片机实现 完成期限:20XX年1月8日 至 20XX年4月20日 ...

    5年前   
    1066    0

    电子信息工程基于指纹IC卡的楼宇门禁系统的设计

     基于指纹IC卡的楼宇门禁系统的设计 ...

    1年前   
    258    0

    基于plc的智能交通灯控制系统设计毕业论文

    PLC可编程序控制器是以微处理器为基础,综合了计算机技术、自动控制技术和通讯技术发展而来的一种新型工业控制装置。它具有结构简单、编程方便、可靠性高等优点,已广泛用于工业过程和位置的自动控制中。

    4年前   
    3105    0

    基于Zigbee的智能灯光控制系统设计

    在现代社会,自动化与智能程度得到很大提高的今天,家居智能管理很有可能是人们今后的主流选择。本文在研究的过程中,立足家庭照明展开了分析。在具体的论述上,通通过实现传统和智能照明模式比对,通过分析目...

    4年前   
    984    0

    基于物联网的智能家居控制系统设计与实现

    物联网是在信息社会发达的今所衍生的产品,他是基于互联网的模块上,利用射频识别技术、无线网等技术,打造一个联系世界不同物体,不同模块的“Internet of Things”。在这个模块网络中,...

    5年前   
    6142    0

    基于语音识别技术的智能家居控制系统的设计

    21世纪经济快速发展,人们对物质文化的需求也越来越高。在信息科技的支持下,事物在朝着简单化、便捷化、智能化的方向发展。在此背景下应运而生而生的智能家居,正是信息时代的典型产物。

    4年前   
    1200    0

    基于单片机的红绿灯智能控制系统设计

    随着社会经济的快速发展以及人们生活水平的提高 ,机动车数量也在急剧增加 ,交通问题逐渐成为人们关注的重点对象,因城市发展所带来的交通拥堵等问题,利用智能交通来解决传统交通日渐出现的问题成为大势所趋。

    3年前   
    856    0

    基于PID控制算法的热水器智能控制系统设计

    基于PID控制算法的热水器智能控制系统设计——语音识别系统设计基于PID控制算法的热水器智能控制系统设计——语音识别系统设计摘 要伴随着物联网、大数据、人工智能的发展,对于语音识别有了更高要...

    2年前   
    565    0

    金融IC卡集中宣传方案

    **县农村信用合作联社关于2012年金融IC卡集中宣传点设置情况 **办事处: 按照中国人民银行总分行《关于做好金融IC卡应用宣传工作的通知》(银办发【2012】80号)和《关于开展**市...

    11年前   
    11304    0

    关于补换新农合就诊IC卡的通知

    关于补换新农合就诊IC卡的通知   各乡镇人民政府、开发区: 今年上半年我县已经办理补换新农合就诊IC卡1.2万余张,补换原因大部分为参合群众个人保管不善所致。鉴于全省将启用二代身份证作...

    9年前   
    7595    0

    公司开展IC卡系统培训工作

    公司开展IC卡系统培训工作  为加快基层各IC卡网点对升级后加油卡系统的熟悉运用,提高IC卡操作人员的业务水平。7月4日、5日,公司举办为期两天的IC卡系统操作培训班,各IC卡网点操作人员共...

    10年前   
    9008    0

    基于51单片机的红外线遥控智能台灯设计-智能台灯的控制系统电路设计

    随着社会的发展,智能产品也随着变化,电子产品快速发展,我们家用电器智能化越来越多,常见的智能家居如电饭煲,电磁炉,台灯等主要系统都具有一个共同的特点,那就是利用单片机控制系统作为本次的核心系统,...

    3年前   
    968    0

    基于单片机的智能窗帘控制系统设计毕业论文

    基于单片机的智能窗帘控制系统设计 摘 要 在现代的社会中,人们对生活环境很重视,智能家居对人们的生活产生了极其重要的影响。本文将研究一种基于单片机的智能窗帘控制系统。在此设计系统中,以STC8...

    5年前   
    4347    0

    基于stm32智能家庭出入控制系统的设计与实现

     基于stm32智能家庭出入控制系统的设计与实现 ...

    2年前   
    602    0

    基于语音控制的智能油烟机控制系统设计

    为了提高人们的生活质量,解决传统油烟机在使用过程中需要手动接触设置的问题,将会设计一款功能多样化的智能油烟机控制系统,使用语音指令实现对油烟机工作状态的选择,具备了通过语音控制选择风力大小,照明...

    3年前   
    832    0

    基于AT89C52智能吸尘器控制系统设计毕业论文

    摘要 本设计的智能吸尘器控制系统与智能小车的控制系统相似。是以AT89C52单片机为控制核心,加以步进电机、光电传感器、超声波传感器、压敏传感器和电源电路以及其他电路构成。

    4年前   
    1273    0

    IC卡科信息技术员述职报告

    IC卡科信息技术员述职报告 尊敬的领导: 我是IC卡科的一名信息技术员,在这里工作已经是整整两个年头了,在这两年里和大家一起学习、工作,并融入了这个集体当中。回顾2011年的工作,虽然很平...

    12年前   
    12763    0

    文档贡献者

    平***苏

    贡献于2023-09-21

    下载需要 25 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档