基于单片机的时钟方案设计书吴怀志

上传人:B**** 文档编号:51481497 上传时间:2022-01-26 格式:DOCX 页数:25 大小:192.39KB
收藏 版权申诉 举报 下载
基于单片机的时钟方案设计书吴怀志_第1页
第1页 / 共25页
基于单片机的时钟方案设计书吴怀志_第2页
第2页 / 共25页
基于单片机的时钟方案设计书吴怀志_第3页
第3页 / 共25页
资源描述:

《基于单片机的时钟方案设计书吴怀志》由会员分享,可在线阅读,更多相关《基于单片机的时钟方案设计书吴怀志(25页珍藏版)》请在装配图网上搜索。

1、YanCheng Institute of Technology课程设计说明书课程名称单片机应用设计设计题目基于单片机的时钟设计专业M 自动化 101学生姓名吴怀志班级101学号1061417108完成日期201312/1/ 2013/12/12盐城工学院电气学院盐城工学院电气学院课程设计任务书姓名:吴怀志院 (系):电气工程学院专业:M 自动化 101班号: 101任务起至日期2013 年 12 月01 日至2013 12 年月12 日课程设计题目:基于单片机的时钟设计已知技术参数和设计要求:( 1) AT89C51 单片机( 2) DS1302 定时器( 3) DS1232 看门狗( 4)

2、 LCD1602 液晶显示( 5)电池供电( 6) Altium 软件预期设计效果:设计一个基于单片机的电子时钟,要求能够实现时、分、秒。工作计划安排:2013 年 12 月 1 日 -2 日:收集和课程设计有关的资料,熟悉课题任务何要求2013 年 12 月 3 日 -4 日:总体方案设计2013 年 12 月 5 日 -8 日:硬件电路设计2013 年 12 月 9 日 11 日:软件设计2013 年 12 月 12 日:整理书写设计说明书2013年 12 月 13 日:答辩同组设计者及分工:独立完成 !成绩评定: _指导教师签字:_年月日摘要本文介绍了基于AT89C51 单片机的多功能电

3、子万年历的硬件结构和软硬件设计方法。系统以 AT89C51 单片机为控制器,以串行时钟日历芯片DS1302 记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观的数字显示,可以在 LED 上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。关键字 AT89C51 ;电子万年历;DS1302目录1电子钟的工作原里12系统硬件设计及电路元件.1 AT89C51 芯片 .2 DS1302 芯片 .3 LCD1602 液晶显示 .3系统软件电路设计.1系统流

4、程图及源代码设计.1 主程序流程图设计 .3子程序源代码设计 .3设计原理图 .4 心得体会 .5 参考文件 .6 附件 .1 程序代码 .2 程序原理图 .第 1 章 电子时钟的工作原理本次设计时钟电路,使用了AT89C51 单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,用C 语言程序来控制整个时钟的显示,使得编程变得更容易,这样通过五个模块:芯片、显示屏、看门狗、电源、时钟即可满足设计要求第 1 章 电子时钟的工作原理本次设计时钟电路,使用了AT89C51 单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,用 C 语言程序来控

5、制整个时钟的显示,使得编程变得更容易,这样通过五个模块:芯片、显示屏、看门狗、电源、时钟即可满足设计要求。此设计原理图框图如图 1-1 所示,此电路包括以下五个部分:单片机、时钟电路、看门狗、液晶屏、电源模块、时钟振荡电路。DS1232DS1302 看门狗时钟电路AT89C51LCD1602 显示模块主控模块时钟振荡模块电源模块图 1-1 主电路设计框图本设计采用C 语言程序设计,使单片机控制数码管显示年、月、日、时、分、秒,当秒计数满60 时就向分进位,分计数器计满60 后向时计数器进位,小时计数器按“23 翻规律计数。 时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时

6、候可以用校时电路进行校正。设计采用的是时、分、秒显示,单片机对数据进行处理同时在LCD 上显示。0”第 2 章 系统硬件电路设计及元件2.1AT89C51 芯片AT89C51 是美国 ATMEL公司生产的 8 位Flash ROM 单片机。其最突出的优点是片内ROM为Flash ROM,可擦写 1000 次以上,应用并不复杂的通用 ROM写入器就能方便的擦写,读取也很方便,价格低廉,具有片程序 ROM二级保密系统。因此可灵活应用于各种控制领域。AT89C51 包含以下一些功能部件:( 1)一个 8 位 CPU ;( 2)一个片内振荡器和时钟电路;( 3) 4KB Flash ROM ;( 4)

7、 128B 内 RAM;( 5)可寻址 64KB 的外 ROM和外 RAM 控制电路;( 6)两个 16 位定时 / 计数器;( 7) 21 个特殊功能寄存器;( 8)4 个 8 位并行 I/O 口;( 9)一个可编程全双工串行口;( 10)5 个中断源,可设置成 2 个优先级。AT89C51 单片机一般采用双列直插DIP 封装,共 40 个引脚,图2-1为其引脚排列图。40 个引脚大致可分为4 类:电源、时钟、控制各I/O引脚。图 2-1 AT89C51 引脚图电源电池供电时钟XTAL1 、XTAL2 晶体振荡电路反相输入端和输出端。控制线控制线共有4 根,其中3 根是复用线。所谓复用线是指

8、具有两种功能,正常使用时是一种功能,在某种条件下是另一种功能。源。2.2DS1302 芯片DS1302 是美国 DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态 RAM,采用 SPI 三线接口与 CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和 RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31 天时可以自动调整, 且具有闰年补偿功能。 工作电压宽达 2.5 5.5V 。采用双电源供电 (主电源和备用电源) ,可设置备用电源充电方式, 提供了对后备电源进行涓细电流充电的能力。有主电源和备份电源双引脚, 而且备份电源可由大容量电容

9、( 1F)来替代。需要强调的是,DS1302需要使用 32.768KHz 的晶振。DS1302 包含以下一些功能部件:( 1)实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数;( 2)用于高速数据暂存的31 8 位 RAM;( 3)最少引脚的串行 I/O ;( 4) 2.5 5.5V 电压工作范围;( 5) 2.5V 时耗电小于 300nA;( 6)用于时钟或 RAM数据读 / 写的单字节或多字节(脉冲方式)数据传送方式;( 7)简单的 3 线接口;( 8)可选的慢速充电(至 VCC1)的能力。数据操作原理DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8

10、位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。无论是读周期还是写周期,开始8 位指定 40 个寄存器中哪个被访问到。在开始 8 个时钟周期, 把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为 8 加 8,在多字节方式下为8 加字节数, 最大可达 248 字节数。 DS1302的内部结构图如图 2-2 所示。VCC1VCC2电源32.768kHz控制X1X2GND实时时钟振荡器与I/O分频器输入移位DATA BUS寄存器SCL K命令与控制逻辑318RSTRAMAD BUS图 2-2 DS1302 内部结构图的引脚图

11、及功能DS1302 的引脚图如图2-3 所示。图 2-3 DS1302 引脚图DS1302 各引脚功能:SCLK:串行时钟,输入,控制数据的输入与输出;I/O :三线接口时的双向数据线;CE :输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE 开始控制字访问移位寄存器的控制逻辑;其次CE提供结束单字节或多字节数据传输的方法。引脚功能如表2-2 所示:表 2-2DS1302 引脚功能说明引脚号名称功能1V CC1备份电源输入2X132.768KHz 晶振输入3X232.768KHz 晶振输出4GND地5RST控制移位寄存器 /复位6I/O数据输入 /输出7SCLK串行时钟8V

12、CC2主电源输入的寄存器1 、 DS1302有关日历、时间的寄存器共有 12 个,其中有 7 个寄存器(读时 81h8Dh,写时 80h8Ch),存放的数据格式为 BCD码形式,如表 2-3 所示:表 2-3 DS1302 的日历、时钟寄存器及其控制字寄存器名命令字取值范围各位内容写操作读操作76543210秒寄存器80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN时寄存器84H85H01-12 或 00-2312/24010HRHR日寄存器86H87H01-28,29,30,310010DATEDATE月寄存器88H89H01-1200010MMONT

13、H周寄存器8AH8BH01-0700000DAY年寄存器8CH8DH00-9910YEARYEAR控制8EH8FH-WP0000000秒寄存器( 81h、 80h)的位 7 定义为时钟暂停标志(CH)。当该位置为1 时,时钟振荡器停止, DS1302处于低功耗状态;当该位置为0 时,时钟开始运行。小时寄存器(85h、 84h)的位 7 用于定义 DS1302是运行于12 小时模式还是24 小时模式。当为高时,选择12 小时模式。在 12 小时模式时,位5 是 ,当为 1 时,表示 PM。在 24小时模式时,位 5 是第二个10 小时位。控制寄存器( 8Fh、 8Eh)的位 7 是写保护位( W

14、P),其它 7 位均置为 0。在任何的对时钟和 RAM的写操作之前, WP位必须为 0。当 WP位为 1 时,写保护位防止对任一寄存器的写操作。2、 DS1302 的工作模式寄存器所谓突发模式是指一次传送多个字节的时钟信号和RAM 数据。突发模式寄存器如表2-4所示:表 2-4 突发模式寄存器工作模式寄存器读寄存器写寄存器时钟突发模式CLOCK BURSTBFHBEHRAM 突发模式RAM BURSTFFHFEH3、 DS1302 还有涓流充电寄存器等。的控制字DS1302 的控制字如下表所示:表 2-5 控制字(即地址及命令字节)765432101RAMA4A3A2A1A0RDCKWR控制字

15、的最高有效位(位7)必须是逻辑 1,如果它为0,则不能把数据写入到 DS1302中。位 6:如果为0,则表示存取日历时钟数据,为1 表示存取 RAM数据;位 5 至位 1( A4 A0):指示操作单元的地址;位 0(最低有效位) :如为0,表示要进行写操作,为1 表示进行读操作。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从最低位(0 位)开始。同样,在紧跟8 位的控制字指令后的下一个 SCLK 脉冲的下降沿,读出 DS1302 的数据,读出的数据也是从最低位到最高位。2.2.5 DS1302 时序CE 输入驱动高启动所有的

16、数据传输。CE 输入有两个功能。首先,CE 打开控制逻辑,允许访问的移位寄存器的地址/ 命令序列。 其次,CE 提供了一个终止单字节或多字节数据传输方法。一个时钟周期是由一个下降沿之后的上升沿序列。对于数据传输而言, 数据必须在有效的时钟的上升沿输入,在时钟的下降沿输出。如果CE 为低,所有的I/ O 引脚变为高阻抗状态,数据传输终止。对于数据输入: 开始的 8 个 SCLK 周期,输入写命令字节,数据字节在后8 个 SCLK 周期的上升沿输入。数据输入位0 开始。对于数据输出: 开始的 8 个 SCLK 周期,输入一个读命令字节,数据字节在后8 个 SCLK周期的下降沿输出。注意, 第一个数

17、据字节的第一个下降沿发生后,命令字的最后一位被写入,命令字节的最后一位被写入。当CE 仍为高时。 如果还有额外的SCLK 周期, DS1302 将重新发送数据字节,这使DS1302 具有连续突发读取的能力。2.3LCD1602 液晶显示LCD1602是一种用 5x7 点阵图形来显示字符的液晶显示器模块, 它显示的容量为 2 行 16 个字共 32 个字符。 它由若干个 5 7 或者 511 点阵字符位组成, 每个点阵字符位都可以显示一个字符。 模块采用数字式接口,能够方便地与单片机等控制类芯片进行通信。由于其具有体积小、 重量轻、 显示质量高、 功耗低等诸多优点而被广泛用于智能化仪器仪表的显示

18、器件。引脚及功能LCD1602的引脚如图2-7 所示:图 2-7 LCD1602 引脚图LCD1602 引脚功能表如下表2-7 所示:表 2-7 LCD1602 引脚功能表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据 / 命令选择12D5数据5R/W读/ 写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极LCD1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符图有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都

19、有一个固定的代码,比如大写的英文字母“A”的代码是01000001B( 41H),显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“ A”。 LCD1602液晶模块内部的控制器共有 11 条控制指令 , 如表 2-8 所示:表 2-8 LCD1602 控制命令表指令RSR/WD8D7D6D5D4D3D2D1清显示0000000001光标返回000000001*置输入模式00000001I/DS显示开 / 关控制0000001DCB光标或字符移位000001S/CR/L*置功能00001DLNF*置字符发生存贮器地址0001字符发生存贮器地址置数据存贮器地址001显示数据存贮

20、器地址(ADD)读忙标志或地址01BF计数器地址( AC)写数到 CGRAMD或 DRAM10要写的数从 CGRAMD或 DRAM读数11读出的数据它的读写操作、屏幕和光标的操作都是通过指令编程来实现的(说明:1 为高电平, 0为低电平)。指令 1:清显示,指令码01H,光标复位到地址00H位置。指令 2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D :光标移动方向,高电平右移,低电平左移。S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示。 C:控制光标的开与关,高电平表示有

21、光标,低电平表示无光标。B :控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令 5:光标或显示移位S/C :高电平时移动显示的文字,低电平时移动光标。指令 6:功能设置命令DL :高电平时为4 位总线,低电平时为8 位总线。 N:低电平时为单行显示,高电平时双行显示。F:低电平时显示5X7 的点阵字符,高电平时显示5x10的点阵字符(有些模块是DL :高电平时为8 位总线,低电平时为4 位总线)。指令 7:字符发生器RAM地址设置。指令 8: DDRAM地址设置。指令 9:读出忙信号和光标地址。BF 为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙,模块就能接收相应

22、的命令或者数据。指令 10:写数据。指令 11:读数据。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志位是不是为低电平, 是低电平则表示不忙, 否则此指令失效。 要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。表 2-9 为 LCD1602 的内部显示地址。表 2-9 LCD1602 的内部显示地址123141516第一行80H81H82H8DH8EH8FH第二行0C0H0C1H0C2H0CDH0CEH0CFH第 3章 系统软件电路设计3.1 系统流程图及源代码设计主程序流程图设计开始引脚定义数据存储地址地址定义显示数据缓冲地址程序开始初始化液晶屏读

23、 DS1302 程序读取 DS1302 程序分离数据子程序数据分离送显示缓存写指令到液晶屏日历显示子程序读数据到液晶屏图 3-1 主程序流程图液晶屏通信引脚定义DS1302 通信引脚定义数据设定引脚定义初始化液晶屏幕显示初始画面清液晶屏幕显示空白图 3-1 主程序流程图子程序流程图设计1、 DS1302定时器中断子程序流程图开始给定时器再次赋值NY判断是否计满 18 次NY秒加 1,判断是否等于 60NY分加 1,秒置 0,判断分是否等于60 NY时加 1,分置 0,判断时是否等于24 N日加 1,时置 0,判断该年是否为闰年N判断日是否到月底Y月加 1,日置 1,判断月是否等于12Y年加 1

24、,月置 1,判断年是否为100执行年、月、日、时、分、秒的显示结束图 3-2 DS1302 中断流程图程序主要实现对DS1302 写保护、充电,对年、月、日、时、分、秒等寄存器的读写操作。在读写操作子程序中都执行了关中断指令, 因为在串行通信时对时序要求比较高,在此是用 I/O 口软件模拟串行时钟脉冲, 所以在通信过程中最好保证传输的连续性,许中断,如图 3-2 所示。而且不要允2、 LCD1602流程图程序主要实现对信息的显示,包括年、月、日、时、分、秒等信息,在这里要注意它的读写控制指令。其流程图如图3-3 所示。开显示,不显示光标地址指针加一,画面不一定刷新,全部清零给地址,从第一行开始

25、写显示第一行数据给第二行地址,显示第二行数据图 3-3 LCD1602 初始化流程图子程序源代码设计详见附录一设计原理图详见附录二四 心得体会通过这次对基于单片机的电子时钟设计 的设计与制作过程, 加强了我们动手、思考和解决问题的能力。在设计过程中我们利用Altium软件进行原理图及PCB 图的绘制,最后再利仿真软件进行检查,看程序是否能显示其功能。在设计过程中让我进一步深刻的学习各种软件的利用以及各种软件给我们带来的便利。该数字钟通过单片机AT89C51 做 CPU 进行总的控制,基于时钟芯片DS1302 产生时间,利用 LCD1602 进行液晶显示的一个简易的数字钟。LCD1602 能够对

26、年、月、日、周、日、时、分、秒进行计时及显示。通过设计后能够熟练的掌握时钟芯片DS1302 、 LCD1602 、AT89C51 的的各个引脚及功能,并能够掌握和运用这几个芯片。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论, 才能真正为社会服务, 从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题, 可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计终于顺利完成了,在设计中遇到了很多专业知识

27、问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢! 同时, 对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢五 参考文献1 张义和 .例说 51 单片机 M. 北京:人民邮电出版社,2010 年2 阎石编著数字电子技术基础( 第五版 ) 北京高等教育出版社 2006.1 550 3蔡明文 冯先成主编单片机课程设计华中科技大学出版社2007.3 4陈明萤 编著8051 单片机课程设计实训教材清华大学出版社 2004 5 康华光 编著 模拟电子技术基础(第五版)高等教育出版社20066 黄智伟 编著 全国大学生电子设计竞赛电路(第一版)

28、航空航天大学出版社2006.367 李可为 . 数字钟电路及应用 M. 电子工业出版社 ,1996.8夏继强 , 沈德金 . 单片机实验与实践教程(二)M 北航出版社 ,2001.9 张红润 , 蓝清华 . 单片机应用技术教程 M 清华大学出版社 ,1997.10 周立功 . 单片机实验与实践 M 北京航空航天大学出版社 ,2004.11 李朝青 . 单片机原理及接口技术 M. 北京航空航天大学出版社 ,1994.附录一/*程序名称:基于单片机和时钟芯片DS1302 的电子时钟程序功能:时钟芯片采用DS1302显示采用液晶屏LCD1602*/#include #include/ 包含单片机寄存

29、器的头文件/ 包含 _nop_() 函数定义的头文件#define uchar unsigned char#define uintunsigned int/* 以下是 DS1302 芯片的操作程序*/uchar code digit10=0123456789;/ 定义字符数组显示数字sbit DA TA=P11;/ 位定义1302 芯片的接口,数据输出端定义在P1.1 引脚sbit RST=P12; sbit SCLK=P10;/ 位定义 / 位定义1302 芯片的接口,复位端口定义在P1.1 引脚1302 芯片的接口,时钟输出端口定义在P1.1 引脚/*函数功能:延时若干微秒入口参数: n*

30、/void delaynus(uchar n)uchar i;for(i=0;in;i+);/*函数功能:向1302 写一个字节数据入口参数: x*/void Write1302(uchar dat)uchar i;SCLK=0;/ 拉低SCLK ,为脉冲上升沿写入数据做好准备delaynus(2);for(i=0;i=1;/稍微等待,使硬件做好准备/ 重新拉低SCLK ,形成脉冲/ 将 dat 的各数据位右移1 位,准备写入下一个数据位/*函数功能:根据命令字,向1302 写一个字节数据入口参数: Cmd,储存命令字;dat,储存待写的数据*/void WriteSet1302(uchar

31、Cmd,uchar dat)RST=0;SCLK=0;/禁止数据传递/确保写数居前SCLK被拉低RST=1;/启动数据传输delaynus(2);Write1302(Cmd);/ 稍微等待,使硬件做好准备/ 写入命令字Write1302(dat);SCLK=1;/写数据/将时钟电平置于已知状态RST=0;/禁止数据传递/*函数功能:从1302 读一个字节数据入口参数: x*/uchar Read1302(void)uchar i,dat;delaynus(2);for(i=0;i=1;if(DATA=1)dat|=0x80;SCLK=1;/ 将 dat 的各数据位右移1 位,因为先读出的是字节

32、的最低位/如果读出的数据是1/将 1 取出,写在dat 的最高位/ 将 SCLK 置于高电平,为下降沿读出delaynus(2);SCLK=0;/稍微等待 / 拉低SCLK ,形成脉冲下降沿delaynus(2);/稍微等待return dat;/ 将读出的数据返回/*函数功能:根据命令字,从入口参数: Cmd1302 读取一个字节数据*/ucharReadSet1302(uchar Cmd)uchar dat;RST=0;SCLK=0;/拉低 RST/ 确保写数居前SCLK被拉低RST=1;/启动数据传输Write1302(Cmd);/ 写入命令字dat=Read1302();SCLK=1;

33、/读出数据/ 将时钟电平置于已知状态RST=0;/禁止数据传递return dat;/ 将读出的数据返回/*函数功能:1302 进行初始化设置*/void Init_DS1302(void)WriteSet1302(0x8E,0x00);/根据写状态寄存器命令字,写入不保护指令WriteSet1302(0x80,(0/10)4|(0%10);/ 根据写秒寄存器命令字,写入秒的初始值/ 除法运算, 取整; %取模运算,取余/ 数据前四位为十位,后四位为个位,详见寄存器表WriteSet1302(0x82,(0/10)4|(0%10);/ 根据写分寄存器命令字,写入分的初始值WriteSet130

34、2(0x84,(12/10)4|(12%10); /根据写小时寄存器命令字,写入小时的初始值WriteSet1302(0x86,(01/10)4|(01%10); / WriteSet1302(0x88,(06/10)4|(06%10); /根据写日寄存器命令字,写入日的初始值根据写月寄存器命令字,写入月的初始值WriteSet1302(0x8c,(10/10)4|(10%10);/根据写小时寄存器命令字,写入小时的初始值/*以下是对液晶模块的操作程序* /sbit RS=P20;/ 寄存器选择位,将RS 位定义为P2.0 引脚sbit RW=P21;/读写选择位,将RW 位定义为P2.1 引

35、脚sbit E=P22;/使能信号位,将E 位定义为 P2.2 引脚sbit BF=P07;/ 忙碌标志位,将 BF 位定义为P0.7 引脚/*函数功能:延时1ms(3j+2)*i=(3 33+2) 10=1010(微秒 ),可以认为是 1 毫秒 */ void delay1ms()unsigned char i,j;for(i=0;i10;i+)for(j=0;j33;j+);/*函数功能:延时若干毫秒入口参数: n*/void delaynms(unsigned char n)unsigned char i;for(i=0;in;i+)delay1ms();/*函数功能:判断液晶模块的忙碌

36、状态返回值: result。 result=1,忙碌 ;result=0,不忙*/bit BusyTest(void)bit result;RS=0;/ 根据规定,RS 为低电平,RW 为高电平时,可以读状态RW=1;E=1;/E=1 ,才允许读写_nop_();/空操作_nop_();_nop_();_nop_();/空操作四个机器周期,给硬件反应时间result=BF;E=0;/ 将忙碌标志电平赋给/ 将 E 恢复低电平resultreturn result;/*函数功能:将模式设置指令或显示地址写入液晶模块入口参数: dictate*/void WriteInstruction (uch

37、ar dictate)while(BusyTest()=1);RS=0;/ 如果忙就等待/ 根据规定,RS 和 R/W同时为低电平时,可以写入指令RW=0;E=0;/E 置低电平 (根据表/ 就是让 E从0到8-6,写指令时,E 为高脉冲,1 发生正跳变,所以应先置0_nop_();_nop_();P0=dictate;/ 空操作两个机器周期,给硬件反应时间/将数据送入P0 口,即写入指令或地址_nop_();_nop_();_nop_();_nop_();E=1;/ 空操作四个机器周期,给硬件反应时间/E 置高电平_nop_();_nop_();_nop_();_nop_();E=0;/ 空操作四个机器周期,给硬件反应时间/ 当 E 由高电平跳变成低电平时,液晶模块开始执行命令/*

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