毕业论文-基于51单片机的智能IC考勤系统的设计与实现

上传人:熏** 文档编号:54044957 上传时间:2022-02-12 格式:DOC 页数:43 大小:17.82MB
收藏 版权申诉 举报 下载
毕业论文-基于51单片机的智能IC考勤系统的设计与实现_第1页
第1页 / 共43页
毕业论文-基于51单片机的智能IC考勤系统的设计与实现_第2页
第2页 / 共43页
毕业论文-基于51单片机的智能IC考勤系统的设计与实现_第3页
第3页 / 共43页
资源描述:

《毕业论文-基于51单片机的智能IC考勤系统的设计与实现》由会员分享,可在线阅读,更多相关《毕业论文-基于51单片机的智能IC考勤系统的设计与实现(43页珍藏版)》请在装配图网上搜索。

1、辽 东 学 院 本 科 毕 业 论 文(设 计)基于IC卡考勤终端系统的设计与实现Design and implementation of IC card terminal system based on学 生 姓 名: 学 院: 专 业: 班 级: 学 号: 指 导 教 师: 审 阅 教 师: 完 成 日 期: 辽 东 学 院Eastern Liaoning University 基于单片机的智能停车场停车位管理系统的设计与实现摘 要本设计基于51单片机的智能IC考勤系统的设计与实现,利用51单片机作为主控制系统,采用IC模块对IC卡的识别并采用RS232通信协议将采集的信息发送给单片机。单

2、片机将信息显示在12864液晶显示屏上,并将信息上发至上位机,可以利用上位机进行实时的监测。系统中应用了IC识别技术、12864液晶显示技术、实时时钟技术以及串口通信技术等先进技术实现了IC考勤的设计。设计拥有较好的市场发展前景。关键词:51单片机;IC考勤;12864液晶;实时时钟;- 19 -目 录摘 要I一、绪论3(一)考勤系统发展的背景3(二)IC卡系统介绍3(三)考勤系统设计意义5二、方案选择6三、硬件电路设计7(一)单片机介绍7(二)复位电路设计:9(三)单片机时钟电路设计9(四)12864液晶显示屏10(五)RS232串口设计11(六)蜂鸣器电路11(七)ATS522 IC卡识别

3、模块12(八)实时时钟模块设计13四、软件设计15(一)主程序流程图15(二)软件程序各模块函数介绍161、延时函数:162、信息采集函数:163、 液晶屏初始化函数:164、实时时钟时间读取函数175、主程序18五、调试与仿真19总结21参考文献22附录A硬件原理图23附录B程序源代码24致 谢37一、绪论(一)考勤系统发展的背景随着计算机技术和网络技术的迅速发展,人类科学正进入信息时代,信息技术本身正对社会的改革产生深远的影响。20世纪90年代,随着我国市场经济的快速发展,职工考勤管理系统在企业的日常管理中发挥着越来越重要的作用。职工考勤管理系统可以进行员工信息管理、出勤管理和密码管理等,

4、方便处理企业内部员工的相关工资信息。此外Internet的迅速普及,使Intranet成为Internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足的条件。企业信息管理系统在此基础上延伸、扩展,使之上下、内外全面贯通。引入Internet后,形成了新型的浏览器/服务器(Browser/Server)结构,而传统的客户机/服务器(Client/Server)结构在这方面就远不及B/S结构。职工考勤系统是在适应市场需求的客观前提下,为了满足中小

5、型公司或事业单位管理自己的员工而开发的。不仅仅是对企业,许多学校也也相应建立了学生考勤系统。(二)IC卡系统介绍IC卡是由一个或多个集成电路芯片组成,并封装成人们携带的卡片。IC卡按其内部封装的芯片种类和功能可分为存贮IC卡(Memory Card)和智能IC卡(Smart Card),存贮卡和智能卡的区别就在于存贮卡芯片内不含微处理器(CPU),只具有存贮数据信息的功能。存贮卡又分为非加密存贮卡(一般存贮卡)和加密存贮卡(简称逻辑加密卡)。加密卡有内建互相认证安全模块,是银行金融应用中在安全和成本上得到完美结合的卡。智能IC卡又名CPU卡、电脑卡、智慧卡、聪明卡,它不仅具有像存贮卡一样的数据

6、存贮功能,而且也具有像微电脑一样的逻辑处理、逻辑判断、I/0控制、指令执行等诸多功能。IC卡按照使用方法和信息交换方式又可分为接触式IC卡和非接触式IC卡。传统接触式IC 卡是通过物理接触方式,将卡插入卡座后,与外界交换信息,所用集成电路芯片露在塑料卡外面的一面是一块含有电路腿的接触片,大部分都镀金,例如我们平时生活中接触最多的IC电话卡、手机中的PIN卡等。非接触式IC卡是通过电磁波与外界交换信息,带有射频收发及相关电路的芯片与环形天线全部埋在塑料基片中,在进行读写时,读写设备向射频卡发一组固定频率的电磁波,卡片内与读写设备发射频率相同的LC串联谐振电路,在电磁波的激励下产生共振,从而使电容

7、内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内贮存,当所积累的电荷达到2V时,此电容可作为电源为其它电路提供工作电压,从而完成将卡内数据发射出去或接收读写设备的数据。根据卡中所镶嵌的集成电路的不同,IC卡主要有四大类:1)存贮器卡;2)加密存贮卡;3)CPU卡;4)射频卡。比较它们的读写属性、安全性、容量、成本和使用的方便性等性能,以非接触式射频卡所具备的优势最大。IC卡管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应

8、用程序功能完备,易使用等特点。IC卡系统功能结构一般组成卡管理中心与各子系统现。卡管理中心(服务器)由中心数据库服务器、存贮设备、中心应用服务器、前置机以及各种管理软件共同构成了IC卡管理中心。中心数据库服务器装有win9x或win2000操作系统平台, Access2000数据库系统,根据企业的规模、营业流水的大小以及管理模式可以使用较高档次的PC服务器和数据存储设备,以保证数据的安全性与可靠性及系统的稳定性;中心服务器根据实际需要可以直接接入到公司局域网提供的虚拟专网中。目前许多学校大量使用IC卡,系统功能不仅仅是考勤并且包括为各前置机提供个人帐户记录、历史流水帐的实时查询服务,提供全部和

9、部分数据库子集、索引的查询服务;实时存储各地交易、充值、扣款流水的服务;中心数据的实时更新、存储备等服务建设“IC卡管理系统”,为学校的教师、学生和教学管理人员提供具有开放性、灵活性、面向学校应用服务的管理平台、是教学管理科学化的必要前提和基本途径,所以,“IC卡管理系统”的建设势在必行。(三)考勤系统设计意义.随着市场经济的发展和人们生活水平的提高,人们不但对IC卡的本身的质量要求越来越高,同时对IC卡的服务和管理也要求很高。通过本课题的研究使管理者和使用者对IC卡的使用能更方便、更快捷。IC卡技术在不断提高,考勤技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着

10、越来越重要的作用。 作为管理应用的一部分,使用IC卡考勤的各项信息进行管理,具有着手工管理所无法比拟的优点。因此,开发这样一套IC卡考勤管理系统软件是很有必要的事情。近年IC卡持有量的增长,IC卡考勤系统大量的兴建和投入使用,引入IC卡考勤智能管理系统十分必要。本设计是基于IC卡的智能管理系统的设计并实现以IC卡,单片机为核心部件内容以便实现学生或者员工考勤系统的硬件环境。硬件设计主要包括单片机控制的射频读卡器,读卡器采用非接触式射频IC卡技术与PC机连接,通过软件程序设计对读卡器进行控制以实现考勤功能。二、方案选择本系统基于IC卡的智能管理系统的设计与实现是以IC卡,单片机,上位机为核心部件

11、。在设计中,首先对系统的整体功能进行分析,通过查阅相关书籍和资料,确定整体硬件设计方案。之后根据系统功能,绘制核心程序流程图。然后利用流程图使用C语言结合少量汇编语言进行单片机程序的设计。程序设计结果利用Keil uvision 3调试。通过后,利用Protel进行线路板的设计和制作,完成最终的设计。 IC卡识卡器单片机RS232上位机LED显示、RTC时钟图2.1系统结构图三、硬件电路设计本设计基于IC卡考勤终端系统的设计与实现,系统硬件主要由单片机系统、12864显示单元、ds1302实时时钟单元、IC识别单元以及上位机发送单元组成的,下面给出系统的各个模块的介绍。(一)单片机介绍AT89

12、C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。单片机XIAL1和XIAL2分别接30PF的电容,中间再并个12MHZ的晶振,形成单片机的晶振电路。以当前使用较多的AT89系列单片机来说,在复位

13、脚加高电平2个机器周期(即24个振荡周期)可使单片机复位。复位后,主要特征是各IO口呈现高电平,程序计数器从零开始执行程序。单片机的外部引脚实物图如图3.1所示:图3.1单片机实物图单片机的管脚说明:VCC管脚:供电电压;GND管脚:接地;P0口管脚:P0为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P1能够用于外部程序数存储器,它可以被定义为数据/地址的第八位。在FLASH编程中,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口管脚:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器

14、能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口管脚:P2口是一个内部提供上拉电阻的8位双向I/O口,P2口缓冲器能接收输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入,并因此作为输入时,P2口的管脚被尾部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出四肢的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口

15、输出其特殊功能寄存器的内容,P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口管脚:P3口管脚时8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,他们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST管脚:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG管脚:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。/PSEN管脚:外部程序存储器的宣统信号。在由外部程序存储器取指期间,每隔机器周期两次/PSEN有效。但在访问外部数据存

16、储器时,这两侧有效地/PSEN信号将不出现。/EA/VPP管脚:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。XTAL1管脚:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2管脚:来自反向振荡器的输出。(二)复位电路设计:在编写程序或调试程序时,单片机可能遇到软件故障,单片机无法正常工作,此时,需要复位电路来使单片机进行复位,从而重新进行正常工作,本次设计的复位电路采用电阻和电容组成的电路,当按下按键时,对单片机RST引脚输入低电平,两个时钟周期后,单片机将进行复位,复位电路如图如图3.1所示图3.1复位电路原理图(三)单片机时钟电

17、路设计单片机的稳定运行需要时钟电路提供时钟脉冲,在本次设计中,采用11.0592MHZ晶振为单片机提供时钟脉冲,在时钟电路中为了稳定起振,需要在晶振上并联接入一个10M欧的起振电阻保证单片机稳定工作,其次,为了避免系统出现的干扰,需要加入两个30PF的电容进行滤波,时钟电路如下图3.2所示图3.2时钟电路原理图最小系统:单片机最小系统主要由单片机,复位电路,以及时钟电路组成,本次设计的最小系统电路图如图3.3所示:图3.3最小系统原理图(四)12864液晶显示屏本次设计采用的液晶显示模块是12864点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192 个中文汉字(16X16点阵)、12

18、8个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。可与CPU直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。本次设计的液晶屏外围电路如图3.4所示、实物图如图3.5所示:图3.4最小系统原理图图3.5 12864液晶实物图(五)RS232串口设计RS-232-C 是美国电子工业协会 EIA(Electronic Industry Association)制定的 一种串行物理接口标准。RS-232-C 标准规定的数据传输速率为 9600、19200、38400、 57600 等。在 9600 的波特率下远传输距离

19、可达 15m。随着波特率的增加,传输 距离逐渐减小。本设计中采用 232 串行通讯协议对ATS522采集到的信息进行传输,在上位机中分析ID信息。在电路设计中,由于通信中电平为负逻辑,即采用-3-15V 表 示逻辑“1”;采用+3+15V 表示逻辑“0”,针对单片机的 TTL 电平,该通讯中需 要进行电平转换。故采用 MAX 公司的 MAX3232 芯片(兼容 3.3V 电平)作为收 发器作为电平转换器件。如图 3.6为 MAX3232 芯片典型连接的电路图DB_TX和 DB_RX 网络分别连接串行连接线的发送端、接收端和 GND图3.6串口通信原理图(六)蜂鸣器电路为了便于提醒刷卡成功,本次

20、设计使用了蜂鸣器,由于蜂鸣器功率过大,因此需要使用9014三极管驱动蜂鸣器,9014三极管属于PNP型三极管,该三极管具有内阻小,功率大的优点,本次设计的蜂鸣器驱动电路如图3.7所示:图3.7蜂鸣器驱动电路(七)ATS522 IC卡识别模块ATS522 实物图如图3.8所示:图3.8 ATS522 IC卡识别模块该模块的供电电压为直流 59V/3.3V,UART TTL 电平输出,该模块以命令响应的方式工作,在系统中模块是处于从属地位,不会主动发出数据(自动检测卡片除外)。通常主机首先发出命令,然后等待模块响应。数据总是以一帧为单位进行通信的使用较为灵活。(八)实时时钟模块设计DS1302 是

21、DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM,通过简单的串行接口与单片机进行通信实时时钟/日历电路.提供秒分时日日期.月年的信息,每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式.DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:1 RES 复位,2 I/O 数据线,3 SCLK串行时钟.时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信.DS1302 工作时功耗很低,保持数据和时钟信息时功率小于1mW.DS1302 是由DS1202 改进而来,增加了以下的

22、特性.双电源管脚用于主电源和备份电源供应Vcc1,为可编程涓流充电电源附加七个字节存储器.它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域.基本原理图如图3.9所示:图3.9实时时钟电路主要的性能指标作一综合:a) 实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力还有闰年调整的能力;b) 31 8 位暂存数据存储RAM;c) 串行I/O 口方式使得管脚数量最少;d) 宽范围工作电压2.0 5.5V;e) 工作电流2.0V 时,小于300nA;f) 读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式;g) 8 脚DIP 封装或可选的8 脚SOIC

23、 封装根据表面装配;h) 简单3 线接口;i) 与TTL 兼容Vcc=5V;可选工业级温度范围-40 +85;四、软件设计(一)主程序流程图系统上电后显示欢迎使用IC考勤系统,过后显示请刷卡,当刷卡后信息将显示在12864显示屏上,系统的软件整体流程图如图4.1所示:开始程序初始化12864显示初始化等待刷卡显示采集信息读取时钟时间与持卡人信息结束发送到上位机图4.1主程序流程图(二)ATS522通信原理本设计中使用的ATS522模块以命令响应的方式工作,在设计的系统中模块是处于从属地位,不会主动发出数据(自动检测卡片除外)。通常主机首先发出命令,然后等待模块响应。通信控制符描述如表4-1所示

24、。 表 4- 1 通信控制符表描述定义值开始符STX0x20终止符ETX0x03应答ACK0x06无应答NAK0x15UART 接口一帧的数据格式为 1 个起始位,8 个数据位、无奇偶校验位、1 个停止位,波 特率固定为 9600。数据帧数据总是以一帧为单位进行通信的,一帧的数据格式如下:帧长FrameLen包号/命令类型SEQ/CmdType命令/状态Cmd/Status信息长度Length信息Info校验和BCC帧结束符ETX1byte1byte1byte1byteN bytes1byte1byte网络层字段说明如表4-3所示:表4-3 数据帧各字段说明表字段长度说明补充FrameLen1

25、数据帧的长度,包含它自己。SEQ/ CmdType1Bit 7-4:该包序号,从 0 到 15 循环。可以用来作为通信间的错误检查,从机接收到主机发来的信息,在应答信息中发出一 个同样的 SEQ 信息,主机可以通过此信息检查是否发生的“包 丢失”的错误。第一个包的 SEQ 可为任意值。该 字 段 主 机 发 送和 接 收 的 应 该 相 同Bit 3-0:命令类型。0x00:协议控制类命令,如设置地址、读产品序号等0x01:设备控制类命令,如读写 IO、控制蜂鸣器、读写寄存 器等0x02:ISO14443A 命令 其它值保留。 从机返回相同的 CmdTypeCmd/Status1主机从机:命令

26、从机主机:状态Length1该帧所带数据信息长度若模块返回状态不为 0,则 Length=0。InfoLength数据信息BCC1校验和。从 FrameLen 开始到 Info 的最后一字节异或取反,C语言程序描述如下:(SerBfr 为一帧数据缓冲区首址)BCC = 0;for(i=0; i4 ; miao1= ReadDS_S(0x81)&0x0F ; fen0= (ReadDS_S(0x83)&0x70)4; fen1= ReadDS_S(0x83)&0x0F; shi0= (ReadDS_S(0x85)&0x70)4 ; shi1= ReadDS_S(0x85)&0x0F ; ri0=

27、 (ReadDS_S(0x87)&0x70)4; ri1= ReadDS_S(0x87)&0x0F ; yue0= (ReadDS_S(0x89)&0x70)4 ; yue1= ReadDS_S(0x89)&0x0F ; nian2= (ReadDS_S(0x8d)&0xf0)4 ; nian3= ReadDS_S(0x8d)&0x0F ; zhou= ReadDS_S(0x8b)&0x0F;5、主程序void main (void) unsigned char i; InitUART(); DS_ini(); Init_ST7920(); /初始化 LCD_PutString(0,2, 欢迎

28、您使用); LCD_PutString(0,3, IC考勤系统); /SendStr(UART test,技术论坛: 请在发送区输入任意信息); for(i=0;i10;i+) DelayMs(200); ClrScreen(); ES = 1; /打开串口中断 LCD_PutString(0,2, 请刷卡.);while (1) 五、调试与仿真经过较长时间的制作调试,搭接了一个简单的实验模型实现了设计的基本要求下图5.1给出了调试结果图。上电显示欢迎界面刷卡等待信息采集整体实物图总结本设计基于89C51单片机,实现了基于单片机的IC考勤设计与实现。功能实践是检验真理的唯一标准,当然也是检验学

29、习成果的标准。在经过一段时间的学习之后,我们需要了解自己的所学应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识在实践中来检验。在做毕业设计期间,在老师的指导下,通过自身的不断努力,无论是思想上,学习上,都取得了长足的发展和巨大的收获,学会用科学的精神去解决问题。很多事情看起来是很简单的问题,但实际做起来就不简单了。运用科学的方法去解决问题,这是我这次实训给我带来的思想上的改变。学习上,使自已在大学所以的知识在这次得到实践,学到一些书本上无法学到的经验,对单片机有了进一步的认识。参考文献1 王爱英智能卡技术M北京:清华大学出版社,20002 沈宇超射频识别技术及其发展现

30、状J电子技术应用,2007(1):893 潘长东IC卡电能表的现状与改进J电测与仪表,2006(8):15194 朱义胜低通型阻抗匹配网络的设计J电子学报,2006,4(1):91945 张肃文,陆兆熊高频电子线路M北京:高等教育出版社,19966 李淑琴,范蟠果射频识别非接触式 IC卡读卡器的设计J. 计算机测量与控制,2007(3):3783807 童诗白,华成英模拟电子技术基础M北京:高等教育出版社,20018 张洪润,蓝清华单片机应用技术教程M北京:清华大学出版社,19979 王卫东,傅佑麟高频电子电路M北京:电子工业出版社,200410 罗海勇IC卡读写器子系统设计J电子技术应用,2

31、006(12):1417 11 谭浩强C程序设计M北京:清华大学出版社,200312 周晓中IC卡预付费计算机管理系统J计算机应用,2006(1):91413 刘铮非接触式IC卡射频识别技术J信息技术,2006,3(4):81214 范久臣实时时钟芯片在单片机系统中的应用J沈阳教育学院学报,2005,7(4):13213415 林昌禄,吴为公近代天线设计M北京:人民邮电出版社,199016 Klaus Finkenzeller著射频识别技术M北京:电子工业出版社,200117 赵亮液晶显示模块LCD1602应用J电子制作,2007:(3)585918 肖婧液晶显示温度计的制作J经验交流,200

32、5(2):818319 黄筱霞IC卡门禁系统J北京工商大学学报,2006(4):626720 陈大才射频识别(RFID)技术M北京:电子工业出版社,200321 John YarbroughDigital Applications and DesignM北京:机械工业出版社,200322 MF-RC500 Highly Integrated ISO 14443A Reader IC SemiconductorsJ,200223 Philips Semiconductors,Contactless Chip Card Module SpecificationJ,199924 Standard C

33、ard IC S50 Functional SpecificationPhilips SeniconductorsJ,200125 Rosenthall EMProceedings of the fifth Canadian Mathematical CongressJ,2006:110112附录A硬件原理图附录B程序源代码#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include sbit RS = P21;sbit RW = P20;sbit E = P11;sbit RES = P13;/sbit PSB = P21;/sbit PAUSE =

34、P30;#define DataPort P0 /MCU P0 LCMsbit IO = P23 ;sbit RST = P24 ;sbit SCLK=P22 ;unsigned char *mes;unsigned char timedateW=0x00,0x24,0x17,0x15,0x05,0x04,0x14,0x00;unsigned char timeflag=0x55,0xaa;unsigned char Save=0x80;unsigned char UnSave=0x00; unsigned char num4=0,0,0,0;unsigned char count=0,m=0

35、,n=0;unsigned char ID10=0,0,0,0,0,0,0,0,0,0,ID110=0,0,0,0,0,0,0,0,0,0,a=0,flag=0;unsigned char miao2=0,1, shi2=2,3,fen2=4,5,ri2=6,7;unsigned char yue2=8,9 ,nian4=2,0,1,4,zhou;unsigned char code user16x16= /笑脸图片0x0F,0xF0,0x10,0x08,0x20,0x04,0x40,0x02,0x9C,0x39,0xBE,0x7D,0x80,0x01,0x80,0x01,0x80,0x01,

36、0x88,0x11,0x84,0x21,0x43,0xC2,0x20,0x04,0x10,0x08,0x0F,0xF0,0x00,0x00,;/*- 函数声明-*/void SendStr(unsigned char *s);void SendByte(unsigned char dat);void delaynus(unsigned char n) unsigned char i,j; for(i=n;i0;i-) for(j=1;j0;j-);void WriteDS(unsigned char Adr,unsigned char *p,unsigned char count)unsign

37、ed char i,j;unsigned char temp;SCLK=0; delaynus(1);RST=1;delaynus(1);for(i=0;i=1;for(j=0;jcount;j+)temp=*p+;for(i=0;i=1;RST=0;delaynus(1);SCLK=0;unsigned char ReadDS_S(unsigned char Adr)unsigned char i;unsigned char temp;SCLK=0;delaynus(1);RST=1;delaynus(1);for(i=0;i=1;for(i=0;i=1;SCLK=0;if(IO=1) te

38、mp|=0x80;delaynus(1);SCLK=1;delaynus(1);RST=0;delaynus(1);SCLK=0;return temp;/void ReadDS_A(unsigned char Adr,unsigned char *p)unsigned char i,j;unsigned char temp;SCLK=0;delaynus(1);RST=1;delaynus(1); for(i=0;i=1;for(j=0;j7;j+)temp=0;for(i=0;i=1;*p+=temp;RST=0;delaynus(1);SCLK=0;/void DS_ini()unsig

39、ned char temp;SCLK=0;RST=0;temp=ReadDS_S(0xc1);if(temp!=0x55)WriteDS(0x8e,&UnSave,1);WriteDS(0xbe,timedateW,8);WriteDS(0xc0,timeflag,1);WriteDS(0x8f,&Save,1);void readDS1302() miao0= (ReadDS_S(0x81)&0x70)4 ; miao1= ReadDS_S(0x81)&0x0F ; fen0= (ReadDS_S(0x83)&0x70)4; fen1= ReadDS_S(0x83)&0x0F; shi0=

40、(ReadDS_S(0x85)&0x70)4 ; shi1= ReadDS_S(0x85)&0x0F ; ri0= (ReadDS_S(0x87)&0x70)4; ri1= ReadDS_S(0x87)&0x0F ; yue0= (ReadDS_S(0x89)&0x70)4 ; yue1= ReadDS_S(0x89)&0x0F ; nian2= (ReadDS_S(0x8d)&0xf0)4 ; nian3= ReadDS_S(0x8d)&0x0F ; zhou= ReadDS_S(0x8b)&0x0F;void DelayUs2x(unsigned char t) while(-t);/*-

41、 mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0255 这里使用晶振12M,精确延时请使用汇编-*/void DelayMs(unsigned char t) while(t-) /大致延时1mS DelayUs2x(245); DelayUs2x(245); /*- 检测忙位-*/void Check_Busy() RS=0; RW=1; E=1; DataPort=0xff; while(DataPort&0x80)=0x80);/忙则等待 E=0; /*- 写命令-*/void Write_Cmd(

42、unsigned char Cmd)Check_Busy();RS=0;RW=0;E=1;DataPort=Cmd;DelayUs2x(5);E=0;DelayUs2x(5);/*- 写数据-*/void Write_Data(unsigned char Data)Check_Busy();RS=1;RW=0;E=1;DataPort=Data;DelayUs2x(5);E=0;DelayUs2x(5);/*- 液晶屏初始化-*/void Init_ST7920() DelayMs(40); /大于40MS的延时程序 /PSB=1; /设置为8BIT并口工作模式 DelayMs(1); /延时 RES=0; /复位 DelayMs(1); /延时 RES=1; /复位置高 DelayMs(10); Write_Cmd(0x30); /选择基本指令集 DelayUs2x(50); /延时大于100us Write_Cmd(0x30); /选择8bit数据流 DelayUs2x(20); /延时大于37us Write_Cmd(0x0c); /开显示(无游标、不反白) DelayUs2

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!