教程07通信定稿_第1页
教程07通信定稿_第2页
教程07通信定稿_第3页
教程07通信定稿_第4页
教程07通信定稿_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录摘要IIIAbstractIV第一章绪论1课题的背景及其意义1系统整体方案设想11.11.21.2.11.2.2系统硬件方案设想1系统方案设想21.3第二章本设计要完成的任务2方案的分析与论证4主控系统分析与论证4显示器件的选择6系统的硬件结构设计8输入电路82.12.2第三章3.13.1.13.1.23.1.33.1.4音频输入电路8光电池输入电路9磁场输入电路9电压输入电路103.23.33.43.5第四章串口电平转换电路11键路盘电11显示电路12主控器 ATMEGA16 电路14系统结构设计174.14.24.3系统主程序流程图14中断服务序流程图18与显示程序流程图20总结21

2、参考文献22附录23致谢42基于单片机系统设计摘 要随着计算机技术的飞速发展和普及,系统也迅速地得到应用。在生产过程中,应用这一系统可对生产现场的工艺参数进行,监视和,为提高产品质量,降低成本提供信息和。在科学研究中,应用系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要之一。系统,从严格的意义上来说,应该是用计算机控制的多路数据自动检测或巡回检测,并且能够对数据实行、处理、分析计算以及检测的数据中提取可用的信息,供显示、打印或描绘的系统。本文采用 ATMEGA16 单片机作为系统的控制,系统分为模块、A/D 转换模块、系统控制模块、键盘模块、显示模块等几部分。系统

3、通过 ATMEGA16 对多通道的数据流进行控制,经过处理后在LCD12864 上进行显示。:ATMEGA16;A/D 转换;LCD12864The design of dollection system base on singlechipAbstractcomputer technology and penetration, radata acquisitionWith the radevelopment ofsystem has been appd. In the production pros, the system can be appd to the production pros

4、 parameters for site acquisition, monitoring and recording, To improveproduct quality, reduce costs and provide information means. In scientific research,application of dynamic data acquisition system can obtain a lot of information is aerfultool to study physical promystery.ses instant. one of the

5、important means of gaining scientificData acquisition system, from the strict sense, is to be used computer control ofmulti-channel data automatic detection or circuit testing, and can be implemented for datastorage, prosing,ysis and calculation, and testing data, extracting usable informationfor di

6、splay, records, pror portray system. The design of the data acquisition system used asa control ATMEGA16 MCU core D conversystem is dividedo modules, the systemcontrol module, keyboard module, module and other parts. ATMEGA16 of multi-channelsystems to control data flow, After being handled in LCD12

7、864 on show.Keywords:ATMEGA16,The dollect,A/Dtransform,LCD12864第一章绪 论1.1课题的背景及其意义随着计算机技术的飞速发展和普及,系统也迅速地得到应用。在生产过程中,应用这一系统可对生产现场的工艺参数进行,监视和,为提高产品质量,降低成本提供信息和。在科学研究中,应用系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要之一。总之,不论在哪个应用领域中,与处理越及时,工作效率就越高,取得的经济效益也越高。电子计算机的发展对通信起了巨大的推动作用。计算机和通信紧密结合可以灵活多样的通信控制系统也可以强有力的信

8、息处理系统,这样对社会的发展产生深刻的影响。数据通信是电子计算机广泛应用的必然产物。计算机与它的终端之间需要数据通信,计算机与计算机之间更需要数据通信。此处在遥测、遥感、自动控制等系统中都要用到计算机,因而都需要数据通信。系统,从严格的意义上来说,应该是用计算机控制的多路数据自动检测或巡回检测,并且能够对数据实行、处理、分析计算以及检测的数据中提取可用的信息,供显示、打印或描绘的系统。系般由数据输入系统,数据与管理,数据处理,数据输出及显示这四个部分组成。输入通道要实现对被测对象的检测,采样和信号转换工作。数据与管理要用器把到的数据起来,建立相应的数据库,并进行管理和调用。数据处理就是从到的原

9、始数据中,删除有关干扰噪声,无关信息和必要的信息,提取出反映被测对象特征的重要信息。另外,就是对数据进行统计分析,以便于检索;或者把数据恢复成原来的物理量形式,以可输出的形态在输出设备上输出,例如打印,显示,绘图等。数据输出及显示就是把数据以适当的形式进行输出和显示。1.2系统整体方案设想1.2.1系统硬件方案设想系般由数据输入系统,数据与管理,数据处理,数据输出及显示这四个部分组成。输入通道要实现对被测对象的检测,采样和信号转换工作。数据与管理要用器把到的数据起来,建立相应的数据库,并进行管理和调用。数据处理就是从到的原始数据中,删除有关干扰噪声,无关信息和必要的信息,提取出反映被测对象特征

10、的重要信息。另外,就是对数据进行统计分析,以便于检索;或者把数据恢复成原来的物理量形式,以可输出的形态在输出设备上输出,例如打印,显示,绘图等。数据输出及显示就是把数据以适当的形式进行输出和显示。本系统的硬件的组成部分分为模块、处理与控制模块、键盘模块、显示模块四部分,采用 ATMEGA16 微处理器作为本设计的,对各个模块的信号进行处理分析。系统通过对多路数据进行,并通过 ATMEGA16 单片机进行处理和分析,最后将数据显示在 LCD 显示器上。本设计正是通过这个方案对数据进行、处理、显示,以达到的目的。1.2.2系统方案设想对于这个部分,关键是怎样通过来实现系统的各种功能。因此,从的角度

11、来讲,需要找到一种算法,以便于能利用该算法实现对所有数据流、处理与传输,从而能使该系统能兼容所有的流。1.3本设计要完成的任务以单片机 ATMEGA16 为,结合其它器件一起设计一个系统,主要功能是实现一个多路系统,系统的原理框图如图 1.1 所示:数据流图 1.1系统原理图键盘ATMEGA16LCD12864根据本设计的要求和方案的设想,总结一下本设计要做的具体的工作主要有以下几个方面:1、 分析与论证本设计所采用的方案,包括主控系统、显示系统等的分析、以及这些模块的功能等。在对设计要求充分分析的基础上,划分功能模块,选择需要的硬件设备。2、 收集大量系统方面的资料 包括文字资料和试验数据,

12、总结规律,找到能够对数据进行处理和识别的方法,这是设计中最关键的一步。对设想的方案仔细论证,确定下来以后,根据选择的硬件设备完成原理图的设计。3、 根据划分的功能模块,编写操作程序。这也是本设计中很重要的一个工作,确定编要尽量做到界面美观,操作简便。第二章方案的分析与论证2.1主控系统分析与论证选用 ATMEGA16为主控器,系统的原理框图如图 2.1 所示:数据流图 2.1 系统原理框图ATMEGA16管脚图,如图 2.2 所示:图 2.2 ATMEGA16管脚图键盘ATMEGA16LCD12864ATMEGA16功能介绍:ATmega16 是基于增强的AVR RISC结构的低功耗8 位CM

13、OS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的。AVR 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。ATmega16 有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于

14、边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP 封装) 的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过进行选择的省电模式。 工作于空闲模式时CPU停止工作,而USART、两线接口、A/D 转换器、SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模

15、块处于休眠状态; ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby 模式下则允许振荡器和异步定时器继续工作。本是以Atmel 高密度非易失性器技术生产的。片内ISP Flash 允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序到应用Flash区(ApplicationFlash Memo

16、ry)。在更新应用Flash区时引Flash区(Boot Flash Memory)的程序继续运行,实现了RWW 操作。 通过将8 位RISU 与系统内可编程的Flash 集成在一个内, ATmega16 成为一个功能强大的单片机,为许多控制应用提供了灵活而低成本的解决方案。ATmega16 具有一整套的编程与系统开发工具,包括:仿真器、仿真器及评估板。1C 语言编译器、宏汇编、 程序调试器/引脚说明:VCC 数字电路的电源GND 地端口A(PA7.PA0) 端口A 做为A/D 转换器的模拟输入端。端口A 为8 位双向I/O口,具有可编程的上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸

17、收大电流。作为输入使用时,若上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口A 处于状态。端口B(PB7.PB0) 端口B 为8 位双向I/O 口,具有可编程的上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口B 处于状态。端口B 也可以用做其他不同的特殊功能。端口C(PC7.PC0) 端口C 为8 位双向I/O 口,具有可编程的上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若上拉电阻使能,端口被外部电路拉

18、低时将输出电流。在复位过程中,即使系统时钟还未起振,端口C 处于状态。如果JTAG接口使能,即使复位出现引脚PC5(TDI)、 PC3(TMS)与 PC2(TCK)的上拉电阻被激活。端口C 也可以用做其他不同的特殊功能。端口D(PD7.PD0) 端口D 为8 位双向I/O 口,具有可编程的上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若上拉电阻使能,则端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口D 处于状态。端口D 也可以用做其他不同的特殊功能。RESET 复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。持续时间小于门

19、限间的脉冲不能保证可靠复位。XTAL1 反向振荡放大器与片内时钟操作电路的输入端。XTAL2 反向振荡放大器的输出端。AVCC AVCC是端口A与A/D转换器的电源。不使用ADC时,该引脚应直接与VCC连接。使用ADC时应通过一个低通滤波器与VCC 连接。AREF A/D 的模拟基准输入引脚。22.2显示器件的选择液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法比拟的优点。近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD可分为段位式 LCD、字符式 LCD 和点阵式 LCD。其中,段位式 LCD 和字符式 LCD 只能用于字符和数字的简单显示,不能

20、满足图形曲线和汉字显示的要求;而点阵式 LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画功能、分区开窗口、反转、闪烁等功能,用途十分广泛。本文介绍了点阵式液晶显示器 MGLS12864 与单片机的接口及编程的方法,同时介绍了创建 816 字符和 1616 点阵汉字的方法,及常用的字符显示和汉字显示程序。考虑到此系统的实用性,选择 LCD 作为显示器件。综上论证,选择 ATMEGA16 单片机为,选择 LCD12864 做为显示器件来设计系统。基于此,对系统的硬件,的设计以及电路原理图展开设计。第三章 系统的硬件结构设计经过方案论证的过程之后,选定

21、了采用单片机 ATMEGA16 作为的方案,其系统总方框图如图 3.1 所示。数据流图 3.1 系统总原理框图3.1输入电路3.1.1音频输入电路音频输入电路主要原理:外部信号通过麦克风,然后经过音频功率放大电路放大后输入单片机。TDA2822 集成功放电路常用在随身听、便携式的 DVD 等音频放音用;功率不是很大但以可以满足您的听觉要求了,且有电路简单、音质好、电压范围宽等特点,是业余制作小功放的较佳选择。音频电路图如图 3.2 所示。图 3.2 音频电路键盘电路ATMEGA16LCD128643.1.2光电池输入电路电路工作原理:将外部的光信号放大后输入单片机。硅光电池是一个大面积的光电二

22、极管,它被设计用于把入射到它表面的光能转化为电能,因此,可用作光电探测器和光电池,被广泛用于太空和野外便携式仪器等的能源。光电池的基本结构图如图3.3所示。当半导体PN结处于零偏或反偏时,在它们的结合面耗尽区存在一内电场,当有光照时,入射光子将把处于介带中的电子激发到导带,激发出的电子空穴对在内电场作用下分别飘移到N型区和P型区,当在PN结两端加负载时就有一光生电流流过负载。光电池的电路图如图3.4所示。图 3.3光电池结构图图 3.4 光电池电路3.1.3磁场输入电路霍尔器件是一种磁传感器。用它们可以检测磁场及其变化,可在各种与磁场有关的场合中使用。霍尔器件以霍尔效应为其工作基础。霍尔器件具

23、有许多优点,它们的结构牢固,体积小,重量轻,长,安装方便,功耗小,频率高(可达 1MHZ),耐蚀。,不怕灰尘、油污、水汽及盐雾等的污染或腐霍尔线件的精度高、线性度好;霍尔开关器件无触点、无磨损、输出波形清晰、无抖动、无回跳、位置重复精度高(可达 m 级)。取用了各种补偿和保护措施的霍尔器件的工作温度范围宽,可达55150。霍尔电路图如图 3.5 所示。图 3.5 霍尔电路CS3501 特性参数型号 Vcc/V 线性范围/mT 工作温度/ 灵敏度S/mV/mT 静态输出电压 Vo/Vmyp max myp maxCS3501 812 100 2085 3.5 7.0 2.5 3.6 5.0型号

24、IOUT/mA Ro/k Icc/mA 乘积灵敏度 V/A0.1T 输出形式 引脚排列 外形结构typ max 1 2 3 4CS3501 4.0 0.1 10 20 射极输出 VCC 地 输出 CI/P3.1.4电压输入电路电路通过滑动变阻器的滑动将电压输入信号输入单片机,如图 3.6 所示。图 3.6 电压输入电路3.2串口电平转换电路串口通讯对单片机而言意义,不但可以实现将单片机的数据传输到电脑端,而且也能实现电脑对单片机的控制,比如可以很直观地把红外键值的数据码显示在电脑上,可以使编写红外程序时方便不少,起到仿真器的某些功效。ATMEGA16 单片机和电脑之间可以方便地进行串口通讯。进

25、行串行通讯时要满足一定的条件,比如电脑的串口是 RS232 电平的,而单片机的串口是 TTL 电平的,两者之间必须有一个电平转换电路,采用了MAX232 进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用更简单可靠。采用了三线制连接串口,也就是说和电脑的 9 针串口只连接其中的 3 根线:第 5 脚的 GND、第 2 脚的RXD、第 3 脚的TXD。Max232 产品是由德州仪器公司(TI)推出的一款兼容 RS232 标准的。该器件包含 2 驱动器、2和一个电压发生器电路提供TIA/EIA-232-F 电平。该器件符合 TIA/EIA-232-F 标准,每一个将 TIA/EIA-232-

26、F 电平转换成 5-VTTL/CMOS 电平。每一个发送器将 TTL/CMOS 电平转换成 TIA/EIA-232-F 电平。串口电平转换电路如图 3.7 所示。图 3.7 串口电平转换电路3.3键盘电路键盘电路主要是通过手动对单片机进行控制,如图示。电路有四个按键;K1:SETK2:UPK3:DOWNK4:ENT图 3.8 键盘电路3.4显示电路液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法比拟的优点。近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD可分为段位式LCD、字符式 LCD 和点阵式 LCD。其中,段位式LCD 和字符式LCD 只能用

27、于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式 LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画功能、分区开窗口、反转、闪烁等功能,用途十分广泛。本文介绍了点阵式液晶显示器 LCD12864 与单片机的接口及编程的方法,同时介绍了创建 816 字符和 1616 点阵汉字的方法,及常用的字符显示和汉字显示程序。单片机可通过数据总线与控制信号直接采用器形式、I/O 设备形式控制该液晶显示模块。单片机对液晶显示模块的操作可分为两部分,即作。和右半屏操功能介绍:LCD12864(黄色背光)是一款具有 4 位/8 位并行、2 线或 3

28、线串行多种接口方式,含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 12864, 内置 8192 个 16*16 点汉字,和 128 个 16*8 点 ASCII 字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可全中文人机交互图形界面。可以显示84 行 1616 点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显得多,且该模块的价格也略低于相同点阵的图形液晶模块。LCD12584示程序都引脚功能表如表 3.1 所示:表 3.1 LCD12864 引脚功能表LEVEL管脚名称

29、功能1234567-1415VSS VDD V0 RSR/W EDB0-DB7PSB0V+5V+5VH/L H/LH,HLH/L H/L电源地电源正极对比度调节数据/命令选择读/写选择模块使能端双向数据口H:并行模式L:串行模式空脚1617NC/RSTL自带复位,可悬空181920NC LEDALEDK空脚+5V0VLED 背光正极LED 背光负极LCD12864 管脚图如图 3.10 所示:图 3.10LCD128643.5主控器 ATMEGA16 电路整个硬件电路以 ATMEGA16 单片机为,单片机对输入的音频信号、光信号、磁信号、电压等信号进行处理,通过按键对单片机进行控制,最后将信号

30、在 LCD 上进行显示。选用高性能、低功耗的 8 位 ATMEGA16 单片机,它具有如下特点:16KB 的系统内可编程Flash(具有同时读写的能力,即 RWW);512B EEPROM;1KB SRAM;32 个通用I/O 口线;32 个通用工作寄存器;3 个具有比较模式的灵活的定时器/计数器(T/C);可编程串行接口;低功耗空闲和掉电方式等。3ATMGA16 主电路图如图 3.11 所示。特性:1、高性能、低功耗的 8 位AVR 微处理器2、先进的RISC 结构131 条指令,大多数指令执行时间为单个时钟周期32个8 位通用工作寄存器全静态工作工作于16 MHz 时性能高达16 MIPS

31、只需两个时钟周期的硬件乘法器3、非易失性程序和数据器16K 字节的系统内可编程Flash擦写: 10,000 次4、具有独立锁定位的可选Boot 代码区5、通过片上Boot 程序实现系统内编程6、真正的同时读写操作512 字节的EEPROM擦写: 100,000 次1K字节的片内SRAM可以对锁定位进行编程以实现用户程序的加密7、JTAG 接口( 与IEEE 1149.1 标准兼容)符合JTAG 标准的边界扫描功能支持扩展的片内调试功能通过JTAG 接口实现对Flash、EEPROM、熔丝位和锁定位的编程8、外设特点两个具有独立预分频器和比较器功能的8 位定时器/ 计数器一个具有预分频器、比较

32、功能和捕捉功能的16 位定时器/具有独立振荡器的实时计数器RTC四通道计数器8路10 位ADC9、8 个单端通道TQFP 封装的7 个差分通道10、各具有可编程增益(1x, 10 x, 或200 x)的差分通道面向字节的两线接口两个可编程的串行USART可工作于主机/ 从机模式的SPI 串行接口具有独立片内振荡器的可编程看门狗定时器片内模拟比较器11、特殊的处理器特点上电复位以及可编程的掉电检测片内经过标定的RC 振荡器片内/ 片外中断源6种睡眠模式: 空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、Standby式以及扩展的Standby 模式12、I/O 和封装32 个可编程的I/O

33、口40引脚PDIP 封装, 44 引脚TQFP 封装, 与44 引脚MLF 封装13、工作电压:ATmega16:4.5 - 5.5V14、速度等级:0 - 16 MHz ATmega164模图3.11 ATMEGA16的主电路第四章系统结构设计4.1系统主程序流程系统主程序的流程图如图 4.1 所示。图 4.1 主程序流程图54.2中断服务序流程中断服务序的流程图如图 4.2 所示。中断服务序流程图6图 4.24.3与显示程序流程与显示流程图如图 4.3 所示。与显示程序流程图7图 4.3总 结本设计采用 ATMEGA16 单片机作为系统的控制,系统分为模块、A/D 转换模块、系统控制模块、

34、键盘模块、显示模块等几部分。系统的数据流包括音频信号,光信号,磁信号,电压引号。这些信号传输到 ATMEGA 单片机,经过单片机的处理将数据显示在LCD12864 上。8系统是由硬件与协调实现的功能,其中硬件电路由电路,串口电平转换电路,CPU 控制电路,键盘电路,显示电路组成。序组成。由驱动在元件及调制方面,由于采用的电路使用了很多集成电路。元件不是很多,所以调试应该不会太难。一般只要电路焊接无误,稍加调试应该会正常工作。电路中除集成电路外,对各电子元件也无特别要求。该系统各部分采用模块化设计, 各个模块之间独立性强。控制部分采用可编程微处理器,可以在不增加系统硬件的情况下方便地对系统进行二

35、次开发与升级。参考文献:EEPW 百科,2010.:百科,2010.1EEPW 百科.ATmega16 单片机Z.23百科.ATmega16 单片机Z.电子线路设计试验测试J.:华技大学,2002. 298316.4微雪电子.ATmega16 简介Z.:微雪电子,2010.56,.单片机实验与实践.电子综合设计实验M.:航空航天大学,2010. 7374.M.济南:山东大学,2004. 3.7Prote199 原理图与 PCB 设计Z.,2000. 6768.:机械工业81718.MCS-51 系列单片机应用系统配置与接术M.:航空航天大学,2001.9吴建新,饶志强.模拟电子技术M.,200

36、8.:10.传感与检测技术M.:理工大学,2003.系统技术基础M.:电子工业11李群芳,.单片机原理、接口及应用.通用电子电路应用 400 例M.,2005.:,2005.12,附录一、电路原理图二、程序源程序名称:液晶模块程序功能:本程序是用 ATmega16 控制液晶模块(控制显示 的源程序文件。:HD612023)#include ATmega16.h/* 包含目标器件的头部文件 */#include LCDM_HD61202_128D64.h/* 本程序的头部文件 */#include DELAY.H#include Lattice_Character.h/* 包含延时函数的头部文件

37、 */* 包含字符点阵数据表的头部文件 */程序指令代码/*函数功能:本函数用于控制液晶模块的输入输出引脚的初始化操作。备注:本函数仅在主函数中调用一次即可,除非各控制引脚作为其他用途,如要再使用这些控制引脚来控制液晶模块则需在主函数中再调用一次本函数。*/void LCDM_initialization(void)/* 下面这些语句用于设置液晶模块的各控制引脚与的连接定义 */LCDM_BL_DDR |= LCDM_BL_PINNum;脚 */LCDM_BL_PORT &= LCDM_BL_PINNum;/* 设置液晶的背景灯控制端口为输出引LCDM_DI_DDR |= LCDM_DI_PI

38、NNum;引脚 */LCDM_DI_PORT &= LCDM_DI_PINNum; LCDM_RW_DDR |= LCDM_RW_PINNum;出引脚 */* 设置液晶的寄存器选择控制端口为输出/* 设置液晶的读写选择控制端口为输LCDM_RW_PORT &= LCDM_RW_PINNum;LCDM_EN_DDR |= LCDM_EN_PINNum;引脚 */* 设置液晶的使能信号控制端口为输出LCDM_EN_PORT &= LCDM_EN_PINNum; LCDM_CS1_DDR |= LCDM_CS1_PINNum;脚 */* 设置液晶的片选控制端口为输出引LCDM_CS1_PORT &=

39、 LCDM_CS1_PINNum;LCDM_CS2_DDR |= LCDM_CS2_PINNum;脚 */* 设置液晶的片选控制端口为输出引LCDM_CS2_PORT &= LCDM_CS2_PINNum;LCDM_RST_DDR |= LCDM_RST_PINNum;/* 设置液晶的复位信号控制端口为输出引脚 */LCDM_RST_PORT &= LCDM_RST_PINNum;LCDM_DATA_DDR = 0 xFF;LCDM_DATA_PORT = 0 x00;/* 设置液晶模块的数据端口为输出引脚 */* 下面这些语句用于液晶模块的初始化复位 */LCDM_RST_PORT &= L

40、CDM_RST_PINNum; /* 置复位信号为低电平 */ delay_ms(2);LCDM_RST_PORT |= LCDM_RST_PINNum; /* 置复位信号为delay_ms(2);*/*函数功能:本函数用于控制液晶模块背景灯打开关闭的操作。函数参数:BL_sus仅可取二个值 ON 或 OFF 中的一个。*/void LCDM_BackgroundLight(Uchar8 BL_sus)if (BL_sus = ON)LCDM_BL_DDR |= LCDM_BL_PINNum;/* 设置液晶的背景灯控制端口为输出引脚 */LCDM_BL_PORT |= LCDM_BL_PINN

41、um; /* 打开液晶的背景灯 */delay_us(2);/* 延时 2us */if (BL_sus = OFF)LCDM_BL_DDR |= LCDM_BL_PINNum;脚 */* 设置液晶的背景灯控制端口为输出引LCDM_BL_PORT &= LCDM_BL_PINNum; /* 关闭液晶的背景灯*/delay_us(2);/* 延时 2us */*函数功能:本函数用于控制液晶模块显示打开关闭的操作。函数参数:Dpy_sus仅可取二个值 ON 或 OFF 中的一个。*/void LCDM_Display(Uchar8 Dpy_sus)if (Dpy_sus = ON)LCDM_DI_

42、PORT &= LCDM_DI_PINNum; LCDM_RW_PORT &= LCDM_RW_PINNum;/* 置寄存器选择为 */* 置读写选择为 */LCDM_CS1_PORT |= LCDM_CS1_PINNum; /* 置片选为 */* 将打开液晶显示的控制指令字输出到片的数据端口 */ LCDM_DATA_PORT = LCDM_ON_Display;LCDM_EN_PORT &= LCDM_EN_PINNum;/* 使能信号为 */delay_us(2);/* 延时 2us */LCDM_EN_PORT |= LCDM_EN_PINNum;/* 使能信号为 */delay_us

43、(2);/* 延时 2us */LCDM_EN_PORT &= LCDM_EN_PINNum;/* 使能信号为 */LCDM_CS1_PORT &= LCDM_CS1_PINNum; /* 置片选为 */LCDM_CS2_PORT |= LCDM_CS2_PINNum; /* 置片选为 */* 将打开液晶显示的控制指令字输出到片的数据端口 */ LCDM_DATA_PORT = LCDM_ON_Display;delay_us(2);/* 延时 2us */LCDM_EN_PORT |= LCDM_EN_PINNum;/* 使能信号为 */delay_us(2);/* 延时 2us */LCD

44、M_EN_PORT &= LCDM_EN_PINNum;/* 使能信号为 */LCDM_CS2_PORT &= LCDM_CS2_PINNum; /* 置片选为 */if (Dpy_sus = OFF)LCDM_DI_PORT &= LCDM_DI_PINNum; LCDM_RW_PORT &= LCDM_RW_PINNum;/* 置寄存器选择为 */* 置读写选择为 */LCDM_CS1_PORT |= LCDM_CS1_PINNum; /* 置片选为 */* 将关闭液晶显示的控制指令字输出到片的数据端口 */ LCDM_DATA_PORT = LCDM_OFF_Display;LCDM_E

45、N_PORT &= LCDM_EN_PINNum;/* 使能信号为 */delay_us(2);/* 延时 2us */LCDM_EN_PORT |= LCDM_EN_PINNum;/* 使能信号为 */delay_us(2);/* 延时 2us */LCDM_EN_PORT &= LCDM_EN_PINNum;/* 使能信号为 */LCDM_CS1_PORT &= LCDM_CS1_PINNum; /* 置片选为 */ LCDM_CS2_PORT |= LCDM_CS2_PINNum; /* 置片选为 */* 将关闭液晶显示的控制指令字输出到片的数据端口 */LCDM_DATA_PORT =

46、 LCDM_OFF_Display;delay_us(2);/* 延时 2us */LCDM_EN_PORT |= LCDM_EN_PINNum;/* 使能信号为 */delay_us(2);/* 延时 2us */LCDM_EN_PORT &= LCDM_EN_PINNum;/* 使能信号为 */LCDM_CS2_PORT &= LCDM_CS2_PINNum; /* 置片选为 */*函数功能:本函数用于控制液晶模块设置显示开始行的操作。函数参数:line_num开始行数值。(数值范围:line_num )*/void LCDM_SetStartLine(Uchar8 line_num)LC

47、DM_DI_PORT &= LCDM_DI_PINNum; LCDM_RW_PORT &= LCDM_RW_PINNum;/* 置寄存器选择为 */* 置读写选择为 */LCDM_CS1_PORT |= LCDM_CS1_PINNum; /* 置片选为 */* 将设置的开始显示行数值与控制指令字一同输出到片的数据端口 */ LCDM_DATA_PORT = LCDM_StartLine_1 + line_num;LCDM_EN_PORT &= LCDM_EN_PINNum;/* 使能信号为 */delay_us(2);/* 延时 2us */LCDM_EN_PORT |= LCDM_EN_PI

48、NNum;/* 使能信号为 */delay_us(2);/* 延时 2us */LCDM_EN_PORT &= LCDM_EN_PINNum;/* 使能信号为 */LCDM_CS1_PORT &= LCDM_CS1_PINNum; /* 置片选为 */ LCDM_CS2_PORT |= LCDM_CS2_PINNum; /* 置片选为 */* 将设置的开始显示行数值与控制指令字一同输出到片的数据端口 */LCDM_DATA_PORT = LCDM_StartLine_1 + line_num;delay_us(2);/* 延时 2us */LCDM_EN_PORT |= LCDM_EN_PIN

49、Num;/* 使能信号为 */delay_us(2);/* 延时 2us */LCDM_EN_PORT &= LCDM_EN_PINNum;/* 使能信号为 */LCDM_CS2_PORT &= LCDM_CS2_PINNum; /* 置片选为 */*下面这个函数用于向液晶模块写入控制指令代码。函数参数:WriteCode向液晶模块写入的控制指令代码 。WC_CSNum片选数值,仅可取二个值 CS1 或 CS2 中的一个。*/void LCDM_WriteCode(Uchar8 WriteCode, Uchar8 WC_CSNum)LCDM_DI_PORT &= LCDM_DI_PINNum;

50、 LCDM_RW_PORT &= LCDM_RW_PINNum; if (WC_CSNum = CS1)LCDM_CS1_PORT |= LCDM_CS1_PINNum;if (WC_CSNum = CS2)LCDM_CS1_PORT |= LCDM_CS2_PINNum;/* 置寄存器选择为 */* 置读写选择为 */* 置片选为 */* 置片选为 */LCDM_DATA_PORT = WriteCode;/* 将控制指令代码输出到的数据端口 */LCDM_EN_PORT &= LCDM_EN_PINNum;/* 使能信号为 */delay_us(2);/* 延时 2us */LCDM_EN

51、_PORT |= LCDM_EN_PINNum;/* 使能信号为 */delay_us(2);/* 延时 2us */LCDM_EN_PORT &= LCDM_EN_PINNum;/* 使能信号为 */LCDM_CS1_PORT &= LCDM_CS1_PINNum; /* 置片选为 */LCDM_CS2_PORT &= LCDM_CS2_PINNum; /* 置片选为 */*下面这个函数用于向液晶模块写入显示数据。函数参数:WriteData向液晶模块写入的显示数据 。WD_CSNum片选数值,仅可取二个值 CS1 或 CS2 中的一个。*/void LCDM_WriteData(Uchar

52、8 WriteData, Uchar8 WD_CSNum)LCDM_DI_PORT |= LCDM_DI_PINNum;/* 置寄存器选择为 */LCDM_RW_PORT &= LCDM_RW_PINNum; if (WD_CSNum = CS1)LCDM_CS1_PORT |= LCDM_CS1_PINNum;if (WD_CSNum = CS2)LCDM_CS1_PORT |= LCDM_CS2_PINNum;/* 置读写选择为 */* 置片选为 */* 置片选为 */LCDM_DATA_PORT = WriteData;/* 将显示数据输出到的数据端口 */LCDM_EN_PORT &=

53、 LCDM_EN_PINNum;/* 使能信号为 */delay_us(2);/* 延时 2us */LCDM_EN_PORT |= LCDM_EN_PINNum;/* 使能信号为 */delay_us(2);/* 延时 2us */LCDM_EN_PORT &= LCDM_EN_PINNum;/* 使能信号为 */LCDM_CS1_PORT &= LCDM_CS1_PINNum; /* 置片选为 */LCDM_CS2_PORT &= LCDM_CS2_PINNum; /* 置片选为 */*函数功能: 本函数用于在液晶屏幕上在指定坐标位置(x,y)显示单个点阵字符的操作。函数参数:x轴坐标,其

54、数值范围:x 。y轴坐标,其数值范围:y 。*pdc_address显示字符点阵数据地址,即指向点阵数据的指针。dc_row_num显示字符行点数,其数值范围:x 。dc_column_num显示字符列点数,其数值范围:x 。备注:参数y(轴坐标)的数值范围:y 。 在移植程序时,请注意 *pdc_address 参数前的 flash 关键字, 此关键字为 CodeViAVR C 所扩充,在移植时要做相应修改。*/void LCDM_Display_Character(Uchar8 x,/* 轴坐标*/Uchar8 y,/* 轴坐标 */const Uchar8 flash *pdc_addr

55、ess, /*字 符 点 阵 数据地址 */const Uchar8 dc_row_num,const Uchar8 dc_column_num)/* 显示字符行点数 */*显示字符列点数 */register Uchar8 i_counter; register Uchar8 j_counter; register Uchar8 temp;register Uchar8 temp_data;/* 行循环计数器变量 */* 列循环计数器变量 */* 临时寄存器变量 */* 临时数据寄存器变量 */LCDM_BackgroundLight(ON); LCDM_Display(ON);LCDM_S

56、etStartLine(0);/* 打开液晶的背景灯 */* 打开液晶显示屏幕 */* 设置显示开始行为第一行 */j_counter = dc_column_num/LCDM_DataBits; /* 列循环次数字符列点数 字符位长 */temp = x + dc_row_num;if (temp 0)for (i_counter=dc_row_num; i_counter0; i_counter-)/* 行循环次数字符行点数 */temp_data = *(pdc_address+); /* 输入显示字符点阵数据 */LCDM_WriteDaemp_data, CS1); /* 将显示字符

57、点阵数据写入液晶显示屏幕 */LCDM_WriteCode(x, CS1);/* 轴坐标退回到设置点 */y = y + 1;/* 显示页数(轴坐标) */LCDM_WriteCode(y, CS1);j_counter-;else/* 否则字符行宽范围即在和之间 */if (x = LCDM_MaxRowDot)x = x - LCDM_MaxRowDot;数 */x = x + LCDM_Yaddress_1; LCDM_WriteCode(x, CS2); y = y + LCDM_DataPage_1; LCDM_WriteCode(y, CS2); while (j_counter0

58、)/* 字符行宽范围是否全部在内? */* 轴坐标轴坐标的最大行点阵/* 设置轴坐标 */* 设置轴坐标 */for (i_counter=dc_row_num; i_counter0; i_counter-)/* 行循环次数字符行点数 */temp_data = *(pdc_address+); /* 输入显示字符点阵数据 */LCDM_WriteDa幕 */emp_data, CS2); /* 将显示字符点阵数据写入液晶显示屏 LCDM_WriteCode(x, CS2);/* 轴坐标退回到设置点 */y = y + 1;/* 显示页数(轴坐标) */LCDM_WriteCode(y, C

59、S2); j_counter-;elsetemp = x + LCDM_Yaddress_1; LCDM_WriteCode(temp, CS1); y = y + LCDM_DataPage_1; LCDM_WriteCode(y, CS1); while (j_counter0)/* 设置轴坐标 */* 设置轴坐标 */for (i_counter=(LCDM_MaxRowDot-x); i_counter0; i_counter-)/*行循环次数的最大行点阵数轴坐标 */temp_data = *(pdc_address+); /* 输入显示字符点阵数据 */LCDM_WriteDa幕

60、*/emp_data, CS1); /* 将显示字符点阵数据写入液晶显示屏 temp = 0 + LCDM_Yaddress_1; LCDM_WriteCode(temp, CS2);LCDM_WriteCode(y, CS2);/* 设置的轴坐标为起点 */* 设置的轴坐标 */for (i_counter=(x + dc_row_num - LCDM_MaxRowDot); i_counter0; i_counter-)/*行循环次数轴坐标显示字符行点数 的最大行点阵数 */temp_data = *(pdc_address+); /* 输入显示字符点阵数据 */LCDM_WriteDa幕

温馨提示

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

评论

0/150

提交评论