基于51单片机的视力保护仪设计-毕业设计说明书_第1页
基于51单片机的视力保护仪设计-毕业设计说明书_第2页
基于51单片机的视力保护仪设计-毕业设计说明书_第3页
基于51单片机的视力保护仪设计-毕业设计说明书_第4页
基于51单片机的视力保护仪设计-毕业设计说明书_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计说明书毕业设计说明书 基于基于 5151 单片机的视力保护仪设计单片机的视力保护仪设计 办学单位办学单位 : 应天职业技术学院 班班 级级 : 电子 121 班 学学 生生 : 彭小滠彭小滠 指导教师指导教师 : 葛东旭葛东旭 提交日期提交日期 : 2015 年年 3 月月 20 日日 摘 要 摘要:本论文阐述了一种基于单片机的智能视力保护器的设计。该设计以 89C52 为 核心,可实现距离监测、设置报警距离等功能,通过 LCD 显示各种参数信息,并能在线修 改各个参数初值来适应不同使用者的需求。测距是利用超声波传感器来实现。软件利用 C 语言进行编程,并采用模块化的设计思路。该系统具

2、有简单实用的特征,对青少年视力保 护具有很好的效果。 关键词:STC89C52 ; 超声波:视力保护 Abstract:This paper expounds a design of intelligent vision protector based on single chip microcomputer. The system with 89C52 as the core uses LCD to display various parameter information, and changes the parameter initial value online to adapt to

3、 the needs of different users. Distance measurement is realized by ultrasonic sensors, light intensity detection is achieved by photosensitive element, timer function is realized by 89C52s timer. Software design uses C language to programe, with modular thought. The system has the characteristics of

4、 simple and practical, has the very good effect to teenagers vision protection. Keywords: STC89C52; Ultrasonic; Vision protection 目录 第一章第一章 绪论绪论.3 1.1 选题背景 .3 1.2 选题的意义 .3 1.3 设计的任务 .3 第第 2 2 章章 系系统统总体方案系统设计总体方案系统设计.4 2.2 系统主要模块的选择与论证 .4 2.2.1探头检测模块的选择与论证.4 2.2.2单片机控制模块的选择与论证.4 2.2.3显示模块的选择与论证.4 2.3

5、 总体系统设计框图 .5 第第 3 3 章章 系统硬件系统设计系统硬件系统设计.6 3.1 概述 .6 3.2 控制模块 .6 3.2.1 STC89C52单片机简介.6 3.2.2单片机主控电路设计.9 3.4.1 1602 液晶简介.13 3.4.2 指令说明.14 3.4.3 显示电路原理图.15 3.5 报警模块.15 第第 4 4 章系统软件系统设计章系统软件系统设计.16 第第 5 5 章章 系统分析与调试系统分析与调试.18 参考文献参考文献.20 结论结论.21 附附 录录.22 第一章 绪论 1.1 选题背景选题背景 当前由于电视、网络的高速发展、学习压力的加重等诸多因素,使

6、得青少年长时间不 卫生、超负荷用眼,造成了青少年近视率大大提高。据国家统计局最近的一项调查显示, 目前我国学生视力低下的状况令人担忧。小学生近视比例为 34%,初中生为 68%,重点高 中生为 90%左右,在校大学生视力合格者更少。而在高考体检中由于自身缺陷原因被限考 的学生当中有 74%为近视。据卫生部、教育部联合调查,目前我国学生近视发病率居世界 第二,人数居世界之首,全国近视及眼疾患者近 3 亿人,已经成为全社会关注的公共卫生 和社会问题。 视力下降不仅影响青少年的日常生活和学习,对青少年的身心健康造成极 大的影响,同时给青少年的成长与发育造成极大的障碍。 在这种情况下,亟须开发一种智能

7、视力保护器。通过创造健康的读写环境和科学方式, 避免因长期读写而导致的近视、驼背、脊柱侧弯、斜视、颈椎病等疾病的发生和发展,用 非医药的手段,防范和解除不良读写习惯,避免给人们身体带来伤害。 1.2 选题的意义选题的意义 目前,坐姿劳动者的腰部疼痛的发病率逐年升高,腰椎疼痛、腰骨酸痛、腰椎间盘突 出、臀部及肩部的肌肉酸痛已成为坐姿办公一族的常见疾病,而这一现象的元凶则为我们 已沿袭几千年来的不良坐姿。再者,多数青少年学生因为坐姿不良导致近视,轻微驼背, 身高发育不良,据调查,有 41.6%的学生并未采取任何矫正坐姿的措施,又缺乏专业机构 的治疗;因此坐姿矫正系统的设计将给使用者带来健康的读书与

8、办公环境,用非医药的手 段来防患不良坐姿所带来的身体伤害。 1.3 设计的任务设计的任务 本设计是以单片机为核心的主体电路,坐姿纠正、报警功能。首先是对各单元电路进 行设计,并选择合适的元器件。在选择元器件时,要注意所选芯片的性价比,对于电阻、 电容等常用元件要先进行参数计算后再选择;其次是设计整个电路其中单片机选用较为普 遍的 STC89C52,坐姿传感器选用超声波传感器,报警发声选用蜂鸣器发声硬件电路。 本次毕业设计的研究内容是设计一个智能视力保护器。它具备以下功能和特点: (1)当使用者脸部与读物之间的距离小于设定距离时,电路将发出声音提示; (4)电路可靠,做出实物能够实现相应的功能。

9、真正帮助学生做到国家教委规定:学生在 读写时,应在一定亮度下,眼离读物一尺,身离书桌一拳。 第 2 章 系统总体方案系统设计 2.2系统主要模块的选择与论证系统主要模块的选择与论证 2.2.1 探头检测模块的选择与论证 方案一:选用红外线传感器测距。 其原理是传感器的红外发光管发出红外光,光敏接收管接收前方物体反射光,接收管接 收的光强随反射物体的距离变化,据此判断前方是否有障碍物并根据接收信号强弱判断物 体的距离。 但是价格贵。 方案二: 坐姿检测系统采用超声波传感器测距,通过测量人脸与桌面的距离来确定 坐姿。当距离小于设定距离时就发出警报提醒。超声波传感器体积小,重量轻,使用方便。 价格实

10、惠,是一种较为理想的方案。 上述分析,方案一虽然精度更精确。却稍显复杂。方案二超声波传感器体积小,重量 轻,使用方便。价格实惠更加容易实现,也更加稳定可靠。所以我选择方案二。 2.2.2 单片机控制模块的选择与论证 方案一:采用传统的 STC89S52 单片机作为主控芯片。此芯片价格便宜、操作简便, 低功耗,比较经济实惠。 方案二:采用 TI 公司生产的 MSP430F149 系列单片机作为主控芯片。此单片机是一 款高性能的低功耗的 16 位单片机,具有非常强大的功能,且内置高速 12 位 ADC。但其价 格比较昂贵,而且是 TPFQ 贴片封装,不利于焊接,需要 PCB 制板,大大增加了成本和

11、开 发周期。 考虑到此系统需要不用到 ADC,从性能和价格上综合考虑我们选择方案一,即用 STC89S52 作为本系统的主控芯片。 2.2.3 显示模块的选择与论证 方案一:采用 12864 液晶显示屏。12864 液晶显示模块自身内置 8192 个中文汉字、 128 个字符及 64X256 点阵显示 RAM。可以显示汉字以及图案。 方案二:选择使用 LCD1602 液晶显示屏。LCD1602 能够显示 16 列 2 行,但是只能显示 字母、数字和符号能显示 16*2 个字符,不能显示汉字。由于 LCD1602 寄存器不止 32 个, 所以软件编写可以使字符一个个显示、字符从左到右或从右到左显

12、示等等,显示效果比较 简单。 经过上述分析,在编程使用方面,12864 液晶显示屏和 LCD1602 难度差不多,虽然 12864 液晶屏可以显示更多的字符,汉字,乃至图案,有更多 LCD1602 不具备的功能。但 是 LCD1602 液晶屏也能实现系统设计的要求,而且 LCD1602 价格比较便宜一点点,我们接 触的比较多。综上所述,显示器模块选择方案二的 LCD1602。 2.3 总体系统设计框图 系统采用 STC89C52 单片机作为多功能视力保护器的核心控制单元,通过设定报警等级 来实现报警;利用超声波测距传感器测出人脸部与桌面的距离,当小于设定距离时发出报 警声提醒;系统采用的报警电

13、路由三极管驱动蜂鸣器组成。系统总体的设计方框图如图 2.1 所示。 超声波模块 蜂鸣器报 警模块 STC89C52 主控模块 电源模块 按键 图 0-1 ? 第 3 章 系统硬件系统设计 3.1 概述概述 本次的毕业系统设计主要由 4 个模块构成,分别是 STC89C52 单片机主控模块、超声 波传感器模块、LCD1602 液晶显示模块及报警模块。其中 STC89C52 单片机主控模块是本 系统设计的核心模块,核心模块主要是指 STC89C52 芯片,它控制整个系统的运行,利用 STC89C52 单片机各个口分别控制其它模块,使超声波传感器,LCD1602 液晶显示器,蜂咛 器形成一个稳定运行

14、的系统,进而满足本系统设计的功能需要;报警模块主要是指将蜂咛 器接入单片机电路。由软件编写给蜂咛器报警所需要距离范围,实现越限报警;接 STC89C52 单片机即可。LCD1602 液晶显示模块同样直接接入 STC89C52 单片机即可, LCD1602 主要的功能就是完成对单片机处理后的数据进行显示。 3.2控制控制模块模块 CPU 是 STC 公司的 8051 系列单片机 STC89C52。 时钟电路由一个频率为 11.0592MHz 的晶振和两个 22pF 的电容组成。 复位电路由一个 10k 的电阻组成,采用上电复位方式。 3.2.1 STC89C52 单片机简介 (1)概述 STC8

15、9C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写 的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中 央处理器和 Flash 存储单元,功能强大的 ST89C52 单片机可为您提供许多较复杂系统控制 应用场合。 STC89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断 口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,ST89C52

16、 可以按 照常规方法进行编程,但不可以在线编程(S 系列的才支持在线编程)。其将通用的微处理 器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。 STC89C52 有 PDIP、PQFP/TQFP 及 PLCC 等三种封装形式,以适应不同产品的需求。 (2)主要功能特性 兼容 MCS51 指令系统 8k 可反复擦写(1000 次)Flash ROM 32 个双向 I/O 口 256x8bit 内部 RAM 3 个 16 位可编程定时/计数器中断 ? 时钟频率 0-24MHz 2 个串行中断 可编程 UART 串行通道 2 个外部中断源 共 8 个中

17、断源 2 个读写中断口线 3 级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 (3)8051 单片机的引脚功能 MCS-51 系列单片机一般采用 40 个引脚,双列直插式封装,用 HMOS 工艺制造,其外部引 脚排列如图 3.1 所示。其中,各引脚的功能为: (a) DIP 引脚图 (b) 逻辑符号 图 0-1 8051 单片机外部引脚排列 主电源引脚 1 Vcc(40 脚):接5V 电源正端 Vss(20 脚):接5V 电源地端 一般 Vcc 和 Vss 间应接高频去耦电容和低频滤波电容。 外接晶体或外部振荡器引脚 2 XTAL1(19 脚):接外部晶振的一个引脚。在单片机内部,它是

18、一个反相放大器的输入端, 这个放大器构成了片内振荡器 OSC。当采用外部振荡器时,此引脚应接地。 XTAL2(18 脚):接外部晶振的另一个引脚。在片内接至反相放大器的输出端和内部时钟 电路的输入端。当采用外部振荡器时,此脚接外部振荡器的输出端。 控制信号线 3 RST/VPD(9 脚):复位信号输入端,复位/掉电时内部 RAM 的备用电源输入端 ALE/ (30 脚):地址锁存允许/编程脉冲输入。用 ALE 锁存从 P0 口输出的低 8 位地址; 在对片内 EPROM 编程时,编程脉冲由此输入。 (29 脚):外部程序存储器读选通信号,低电平有效。 /VPP(31 脚):访问外部存储器允许/

19、编程电压输入。EA 为高电平时,访问内部存储器; 低电平时,访问外部存储器。对片内 EPROM 编程时,此脚接 21V 编程电压。 多功能 I/O 口引脚 4 8051 单片机设有 4 个双向 I/O 口(P0、P1、P2、P3),每一组 I/O 口线都可以独立地用 作输入或输出口,其中: P0 口(3239 脚)双向口(三态),可作为输入/输出口,可驱动 8 个 LSTTL 门电 路。实际应用中常作为分时使用的地址/数据总线口,对外部程序或数据存储器寻址时低 8 位地址与数据总线分时使用 P0 口:先送低 8 位地址信号到 P0 口,由地址锁存信号 ALE 的下降沿将地址信号锁存到地址锁存器

20、后,再作为数据总线的口线对数据进行输入或输出。 P1 口(18 脚)准双向口(三态),可驱动 4 个 LSTTL 门电路。用作输入线时,口 锁存器必须由单片机先写入“1”,每一位都可编程为输入或输出线。 P2 口(2128)准双向口(三态),可驱动 4 个 LSTTL 门电路。可作为输入/输出 口,实际应用中一般作为地址总线的高 8 位,与 P0 口一起组成 16 位地址总线,用于对外 部存储器的接口电路进行寻址。 P3 口(1017 脚)准双向口(三态),可驱动 4 个 LSTTL 门电路。双功能口,作为 第一功能使用时,与 P1 口一样;作为第二功能使用时,每一位都有特定用途,其特殊用 途

21、如表 3.1 所示: 端口引脚第二功能注 释 P3.0RXD 串行口数据接收端 P3.1TXD 串行口数据发送端 P3.2/INT0 外中断请求 0 P3.3/INT1 外中断请求 1 P3.4T0 定时/计数器 0 外部计数信号输入 P3.5T1 定时/计数器 1 外部计数信号输入 P3.6/WR 外部 RAM 写选通信号输出 P3.7/RD 外部 RAM 读选通信号输出 表 3.1 P3 口特殊功能 3.2.2 单片机主控电路设计 单片机主控电路原理图如图 3.2 所示 图 0-2 单片机主控电路 单片机主控模块包括了振荡电路、复位电路,同时接入了下载接口,方便下载程序, 保证了整个系统的

22、灵活性。 单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬 件实现上采用模块化设计,每个模块只实现特定功能,最后再将各个模块搭接在一起。这 种设计方法可以降低系统设计的复杂性。其中下图为电源开关部分 电源部分电路 3.33.3 超声波模块系统设计超声波模块系统设计 本系统超声波测距模块采用 HC-SR04 测距模块。 HC-SR04 测距模块可提供 2cm-400cm 的非接触式距离感测功能,测距精度可达到 3mm,模块包括 超声波发射器、接收器和控制电路。 基本工作原理: 1)采用 IO 口 TRIG 触发测距,,加至少 10us 的高电平信号; 2)模块自动发生

23、8 个 40KHZ 的方波,自动检测是否有信号返回; 3)有信号返回,通过 IO 口 ECHO 输出一个高低平,高电平持续的时间就是超声波从发射到返回 的时间。测试距离=(高电平时间*声速(340M/S)/2. HC-SR04 的外型及引脚如图 3.6 所示,HC-SR04 的性能参数和引脚定义分别如表 3.1 和表 3.2 所 示。 图 3.6 HC-SR04 超声波测距模块外形图 表 3.1 HC-SR04性能参数 工作频率40MHz 工作电压DC5V 工作电流15mA 最远射程4m 最近射程2cm 测量角度15 度 输入触发信号10us 的 TTL 脉冲 输出回响信号输出 TTL 电平信

24、号,与射程成比例 规格尺寸45*20*15mm ( 宽*长*厚 ) 表 3.2 HC-SR04引脚定义 引脚引脚功能功能 VCC5V 电源 GND地线 GND TRIG触发控制信号输入 ECHO回路信号输出 HC-SR04 的超声波时序图如图 3.7 所示。 10us的TTL 循环发出8个40KHz脉冲 回响电平输出与检测距离 成正比 触发信号 模块内部 发出信号 输出回响信号 图 3.7 HC-SR04 超声波时序图 以上时序图表明只需要提供一个 10us 以上的脉冲触发信号,该模块内部将发出 8 个 40KHZ 周期 电平检测回波,一旦检测到有回波信号则输出回响信号,回响信号的脉冲宽度与检

25、测的距离成正比, 由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。 3 34 4 显示显示模块模块 显示部分是 LCD1602 液晶 一般 1602 字符型液晶显示器实物如图 3-9 和 3-10 所示: 图 3-9 液晶屏正面 图 3-10 液晶屏背面 3.4.1 1602 液晶简介 1602LCD 分为带背光和不带背光两种,基控制器大部分为 HD44780,带背光的比不带背光 的厚,是否带背光在应用中并无差别,两者尺寸差别如下图所示: (1)1602LCD 主要技术参数: 显示容量:162 个字符 芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:

26、5.0V 字符尺寸:2.954.35(WH)mm (2)引脚功能 1602LCD 采用标准的 14 脚(无背光)或 16 脚(带背光)接口,各引脚接口说明如表 10-13 所示: 编号符号引脚说明编号符号引脚说明 1VSS 电源地 9D2 数据 2VDD 电源正极 10D3 数据 3VL 液晶显示偏压 11D4 数据 4RS 数据/命令选择 12D5 数据 5R/W 读/写选择 13D6 数据 6E 使能信号 14D7 数据 7D0 数据 15BLA 背光源正极 8D1 数据 16BLK 背光源负极 3.4.2 指令说明 1602 液晶模块内部的控制器共有 11 条控制指令,如表 10-14

27、所示: 序号指令 RSR/WD7D6D5D4D3D2D1D0 1 清显示 0000000001 2 光标返回 000000001* 3 置输入模式 00000001I/DS 4 显示开/关控制 0000001DCB 5 光标或字符移位 000001S/CR/L* 6 置功能 00001DLNF* 7 置字符发生存贮器地址 0001 字符发生存贮器地址 8 置数据存贮器地址 001 显示数据存贮器地址 9 读忙标志或地址 01BF 计数器地址 10 写数到 CGRAM 或 DDRAM) 10 要写的数据内容 11 从 CGRAM 或 DDRAM 读数 11 读出的数据内容 3.4.3 显示电路原

28、理图 图 3.11 3.5 报警模块 蜂鸣器工作原理: 图 3-12 蜂鸣器工作原理图 第 4 章系统软件系统设计 4.14.1 LCD1602LCD1602 液晶显示模块系统设计液晶显示模块系统设计 LCD1602 液晶显示模块可与 STC89C52 直接接口的。软件流程图如图 4-1 所示: 开始 LCD 初始化 延时 设第一行显示位 置 显示第一行内容 设第二行显示位置 显示第二行内容 图 4-1 1602 液晶显示模块程序流程图 4.24.2 超声波模块超声波模块系统设计系统设计 超声波模块的软件流程图如下图 4-2 所示 超声波发生器复位,发射超声波 接收完回波后关中断 计算距离 显

29、示距离及指示蜂鸣器动作 接收到回波后启动T0,开中断 系统初始化 开始 延时 图 4-2 超声波模块的软件流程图 第 5 章 系统分析与调试 本系统设计是在 Keil C 环境下开发的,Keil C 软件支持 C 语言的编程及调试,运用 方便,是做 C 语言毕业系统设计者的首选。 Keil C 程序运行如图 5-1,5-2 所示 图 5-1 keil C 运行图 图 5-2 程序烧录运行图 在完成对程序的调试及烧录之后,还需要对其进行演示,把开发板与电脑连上,设置 好对应的接口,完成供电及下载。开始供电后、稍等几秒后 LCD1602 液晶屏能正常显示当 前距离和报警距离。我们可以用手按下按键对

30、距离进行修改,测试能否达到报警。经过测 试,本系统设计完全可行,进而实现了对人脸和桌子间的距离的简单控制。 参考文献 1 沈红卫.单片机应用系统设计实例与分析M.北京航空航天大学出版社,2001(7):298312 2 张毅刚.单片机原理及应用M.北京:高等教育出版社,2001 .397407 3 杨恢先,黄辉先.单片机原理及应用M.上海:复旦大学出版社, 2002.3652 4 徐淑华,程退安,姚万生.单片机微型机原理及应用M.哈尔滨:哈尔滨工业大学出版社,1994.85 5 戴佳,戴卫恒.51单片机C语言应用设计实例精讲M.北京:电子工业出版社,2007 6 何立明.单片机应用系统抗干扰技

31、术M.北京:北京航空航天大学出版社,2000.99110 7 涂时亮.单片微机软件设计技术M.重庆:科学技术文献出版社重庆分社,2003.72 8 邦田. 电子电路实用抗干扰技术M.北京:人民邮电出版社,1994 .34 9 童诗白,华成英.模拟电子技术基础M.北京:高等教育出版社,2001 10 夏路易,石宗义.电路原理图与电路板设计教程PROTELL99SEM.北京:北京希望电子出版社, 2002 11 高鹏,安涛,寇怀成.电路设计与制版一 PROTEL99入门与提高M.北京: 人民邮电出版社, 2000,1-305 12 赵晶.电路设计与制版 PROTEL99高级应用M.北京:人民邮电出

32、版社,2000,1-405 13 贾兴泉.连续波雷达数据处理M.北京:国防工业出版社,2005,1-223 14 黄培康,殷红成,许小剑.雷达目标特性M.北京:电子工业出版社,2005,1-338 15 张谦琳.超声波检测原理和方法M.北京:中国科技大学出版社,1993.10 16 沈小丰. 电子技术实践基础M.清华大学出版社,2005.09,130141 结论 回顾起此次单片机课程设计,我仍感慨颇多,从理论到实践,在毕业设计这段日子里 ,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学 过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了

33、 理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实 践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力 和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种 各样的问题。首先,说说焊接的美观程度,焊接的很美观、明了这一点比较满意。但在设 计的过程中也发现了自己的不足之处,对以前所学过的知识理解得不够深,把硬件焊接出 来后,由于编程不熟,导致推迟了对硬件功能的检测,而且在设计过程中也给指导老师增 添了不少麻烦,老师的批评声我会永远记在心上,我以后会更加努力的!谢谢您。 附 录 A 硬件原理图 B C 语言部分程序

34、 #include /器件配置文件 #include #define uint unsigned int #define uchar unsigned char sbit RX = P11; sbit TX = P10; sbit LCM_RW = P26; /定义 LCD 引脚 sbit LCM_RS = P25; sbit LCM_E =P27; #define LCM_Data P0 sbit K1= P12; /定义 Keyboard 引脚 sbit K2= P13; uchar Slong=30; / 报警距离值 如果需要修改报警距离,则改此处数值就可。 sbit speak=P17

35、; /蜂咛器报警的口线定义 #define Busy 0 x80 /用于检测 LCM 状态字中的 Busy 标识 void LCMInit(void); void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData); void Delay5Ms(void); void Delay400Ms(void); void Decode(unsigned

36、 char ScanCode); void WriteDataLCM(unsigned char WDLCM); void WriteCommandLCM(unsigned char WCLCM,BuysC); unsigned char ReadDataLCM(void); unsigned char ReadStatusLCM(void); unsigned char code juli =The distance is; unsigned char code kaiji = ; unsigned char code ASCII15 = 0,1,2,3,4,5,6,7,8,9,.,-,M,

37、S; static unsigned char DisNum = 0; /显示用指针 unsigned int time=0; unsigned char timer=0; unsigned long S=0; bit flag =0; bit flag_one=0; bit flag_two=0; unsigned char disbuff4= 0,0,0,0,; #include eeprom52.h void delayms(unsigned int ms) unsigned char i=100,j; for(;ms;ms-) while(-i) j=10; while(-j); /*

38、把数据保存到单片机内部 eeprom 中*/ void write_eeprom() SectorErase(0 x2000); byte_write(0 x2001, Slong); byte_write(0 x2060, a_a); /*把数据从单片机内部 eeprom 中读出来*/ void read_eeprom() Slong = byte_read(0 x2001); a_a = byte_read(0 x2060); /*开机自检 eeprom 初始化*/ void init_eeprom() read_eeprom();/先读 if(a_a != 2)/新的单片机初始单片机内问

39、 eeprom Slong = 30; a_a = 2; write_eeprom(); /写数据 void WriteDataLCM(unsigned char WDLCM) ReadStatusLCM(); /检测忙 LCM_Data = WDLCM; LCM_RS = 1; LCM_RW = 0; LCM_E = 0; /若晶振速度太高可以在这后加小的延时 LCM_E = 0; /延时 LCM_E = 1; /写指令 void WriteCommandLCM(unsigned char WCLCM,BuysC) /BuysC 为 0 时忽略忙检测 if (BuysC) ReadStatu

40、sLCM(); /根据需要检测忙 LCM_Data = WCLCM; LCM_RS = 0; LCM_RW = 0; LCM_E = 0; LCM_E = 0; LCM_E = 1; /读数据 unsigned char ReadDataLCM(void) LCM_RS = 1; LCM_RW = 1; LCM_E = 0; LCM_E = 0; LCM_E = 1; return(LCM_Data); /读状态 unsigned char ReadStatusLCM(void) LCM_Data = 0 xFF; LCM_RS = 0; LCM_RW = 1; LCM_E = 0; LCM_E = 0; LCM_E = 1; while (LCM_Data /检测忙信号 return(LCM_Data); void LCMInit(void) /LCM 初始化 WriteCommandLCM(0 x38);/设置模式 WriteCommandLCM(0 x0c);/不显示光标 WriteCommandLCM(0 x06);/设置指针自加 WriteCommandLCM(0 x01);/清屏 /按指定位置显示一个字符 void DisplayOneChar(unsigned

温馨提示

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

评论

0/150

提交评论