下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、智能测控系统课程大作业作业题目 :环境温度测量及湿度检测学院名称 :电气工程学院专业班级 :测控 1303 班学生姓名 :杜栋梁学号 :201323030320完成时间:2016-6任课教师 :王威目录1 课程大作业内容31.1 课题设计背景31.2 课题设计的意义31.3 设计目标32 系统设计方案42.1 温湿度传感器选型与论证42.2 显示屏的选择与论证42.2 信号采集电路52.3 供电电源的选择63 硬件设计63.1 结构框图73.2 温度信号采集电路73.2.1 传感器简介83.3 单片机的最小电路图94 软件设计104.1程序模块104.2软件设计流程图105 调试116 总结1
2、1参考文献12附件12程序121 课程大作业内容1.1 课题设计背景随着科技的发展对对检测技术要求的不断增高, 迫使新材料的开发及寻找检测能力的不断提升。 传感器的种类与测量精度以及测量稳定性也发生了巨大的变化,从最初的接触式测温到非接触式测温, 膨胀式、热电阻式以及热电偶式测温, 使温度检测领域得到了快速发展。 再加上单片机技术的不断发展,测量检测变得更加方便。 温湿度传感器除电阻式、 电容式湿敏元件之外,还有电解质离子型湿敏元件、 重量型湿敏元件 (利用感湿膜重量的变化来改变振荡频率)、光强型湿敏元件、声表面波湿敏元件等。湿敏元件的线性度及抗污染性差,在检测环境湿度时,湿敏元件要长期暴露在
3、待测环境中,很容易被污染而影响其测量精度及长期稳定性。在公共工作场所为了达到让人感到舒适的环境温度及湿度, 往往需要对温度、湿度进行检测已达到最佳的效果。 本课题以 ds18b20 温度传感器为温度检测器件,设计了一个对单点温度实时检测的单片机温度检测系统。以 bsp_dht11 湿度传感器为湿度检测器件。1.2 课题设计的意义( 1)、该设计具有以下优点:制作简单,便于使用,价格便宜,稳定可靠,功耗低省电。( 2)通过设计与制作可以达到这些目的:熟悉 MSP430单片机技术的应用范围; 掌握 MSP430单片机编程的特点, 提高实践操作能力能够在制作过程中发现并改正错误。达到一定的解决问题的
4、能力。提高了动手的能力。1.3 设计目标使用 ds18b20 温度传感器测量环境温度并完成A/D 转换。bsp_dht11 湿度传感器测量湿度,把数据发送到MSP430中进行转换用 LCD进行显示。2 系统设计方案系统设计方案的选择是决定设计作品完整度与精度的重要前提, 一个好的作品的完成需要选择比较多种方案, 从多种方案中选择最优方案, 才能使设计作品精度更高。本次设计主要从实用性,稳定性,精度等级,可靠性,经济性等方面进行考虑。 在完成本次课程设计要求、 目的的情况下尽可能的准确和经济的条件下进行选择。2.1 温湿度传感器选型与论证本设计采用测量精度高, 性能稳定可靠的 ds18b20 温
5、度传感器作为温度检测器件和 bsp_dht11 温湿度传感器作为湿度监测器件。 尽管 bsp_dht11 也能够检测出环境温度, 但该传感器的测温范围窄, 精度不够,和要求测量的环境较为苛刻。因此选用较为精确的 ds18b20 来测量温度。 该传感器具有适应性强检测迅速, 受环境影响较小。 且对温度可以接触和非接触测量均可。而其他传感器价格和测量条件较为苛刻因此不建议选取。2.2 显示屏的选择与论证方案一:采用LCD1602显示。LCD1602是一种专门用于显示字母、数字、符号等点阵式LCD,能够同时显示16x02 即32 个字符。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都
6、可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。由于它不能显示汉字, 而温度湿度的显示需要显示汉字,所以此方案不可行。方案二:采用 LCD5110 显示。LCD5110 采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,支持多种串行通信协议, 传输速率高达 4Mbps,可全速写入显示数据, 无等待时间。它由 84x48 的点阵 LCD 组成,可显示汉字和字符。 LCD5110 工作电压 3.3V,正常显示时工作电流200uA 以下,而且接口简单,体积小便于安装携带,速度快,价格便宜。所以采用此方案,显示模块选择用LCD 5110。但屏幕色彩较
7、暗,在光线较强的地方无法清晰的辨别。方案三:采用 TFT 彩屏显示。TFT-LCD 采用低压应用,低驱动电压,固体化使用安全性和可靠性提高;平板化,又轻薄,节省了大量原材料和使用空间;低功耗,它的功耗约为CRT 显示器的十分之一, 反射式 TFT-LCD 甚至只有 CRT 的百分之一左右, 节省了大量的能源;高亮度,高对比度,高响应速度。无辐射、无闪烁,对使用者的健康无损害。适用范围宽,从 -20到 +50的温度范围内都可以正常使用,寿命超过3 万小时,且价格便宜因此本次设计采用TFT-LCD 作为显示屏。2.2 信号采集电路ds18b20是一种 64 位只读存储器储存器件的唯一片序列号。高速
8、暂存器含有两个字节的温度寄存器,这两个寄存器用来存储温度传感器输出的数据。除此之外,高速暂存器提供一个直接的温度报警值寄存器(TH和TL),和一个字节的配置寄存器。配置寄存器允许用户将温度的精度设定为9,10,11 或12 位。 TH,TL 和配置寄存器是非易失性的可擦除程序寄存器(EEPROM),所以存储的数据在器件掉电时不会消失。ds18b20通过达拉斯公司独有的单总线协议依靠一个单线端口通讯。当全部器件经由一个3态端口或者漏极开路端口( DQ引脚在 ds18b20上的情况下 ) 与总线连接的时候, 控制线需要连接一个上拉电阻。在这个总线系统中,微控制器(主器件)依靠每个器件独有的64位片
9、序列号辨认总线上的器件和记录总线上的器件地址。由于每个装置有一个独特的片序列码 , 总线可以连接的器件数目事实上是无限的。ds18b20的另一个功能是可以在没有外部电源供电的情况下工作。当总线处于高电平状态,DQ与上拉电阻连接通过单总线对器件供电。同时处于高电平状态的总线信号对内部电容( Cpp)充电,在总线处于低电平状态时,该电容提供能量给器件。这种提供能量的形式被称为 “寄生电源”。作为替代选择, ds18b20同样可以通过 VDD引脚连接外部电源供电。如下图2.1s18b20 的工作原理 图 2.1用户单片机发送一次开始信号后, DHT11 从低功耗模式转换到高速模式, 待主机开始信号结
10、束后, DHT11 发送响应信号,送出 40bit 的数据,并触发一次信采集。信号发送如图所示。数据时序图 2.2bsp_dht11 时序原理图 2.22.3 供电电源的选择本设计采用标准USB数据线 5V 为该设计供电。3 硬件设计硬件电路的设计是该系统重要的部分,是系统运行的前提, 如果硬件设计的科学合理就能大大增加该系统功能的稳定性,可靠性。系统软件的设计是以硬件设计为前提, 硬件设计是单片机高效工作的前提与重要保障,但是只有软件和硬件都正确, 并且软件与硬件能够相互兼容、协调工作才能使系统工作达到我们想要的效果。 本系统的硬件设计部分主要包括传感器电桥电路设计、运算放大电路的设计、单片
11、机最小系统设计下面进行详细介绍。3.1 结构框图本设计采用均采用3.3V 电源供电,温度传感器和温湿度传感器采集到数据后发送到单片机,单片机根据接收到的数据进行处理后再LCD 屏幕上显示。如图 3.1位系统结构框图。图 3.1系统结构框图3.2 温度信号采集电路温度信号的获取关系到后续电路设计的难度,因此温度信号是获取是本设计的关键。3.2.1传感器简介ds18b20的简介:独特的单线接口仅需一个端口引脚进行通讯每个器件有唯一的 64 位的序列号存储在内部存储器中简单的多点分布式测温应用无需外部器件可通过数据线供电。供电范围为3.0V到 5.5V测温范围为 -55 125( 67 257)在
12、10 85范围内精确度为± 5温度计分辨率可以被使用者选择为912位最多在 750ms 内将温度转换为 12 位数字用户可定义的非易失性温度报警设置报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件与 ds1822兼容的软件应用包括温度控制、工业系统、消费品、温度计或任何热感测系统bsp_dht11 的简介:DATA 用于微处理器与 DHT11之间的通讯和同步 , 采用单总线数据格式 , 一次通讯时间 4ms左右 , 数据分小数部分和整数部分 , 当前小数部分用于以后扩展 , 现读出为零 . 操作流程如下 :一次完整的数据传输为 40bit,高位先出。数据格式 :8bit湿
13、度整数数据 +8bit 湿度小数数据+8bi 温度整数数据 +8bit 温度小数数据+8bit校验和数据传送正确时校验和数据等于“ 8bit 湿度整数数据 +8bit 湿度小数数据 +8bi 温度整数数据 +8bit 温度小数数据”所得结果的末 8位。实际使用时发现小数位都是0,这一步忽略对结果也不造成影响。3.3 单片机的最小电路图MSP430g2553简介:MSP430G2553性能参数 (DIP-20)工作电压范围: 1.83.6V。5 种低功耗模式。16 位的 RISC 结构,62.5ns指令周期。超低功耗运行模式 -230 A ;待机模式 -0.5 A;关闭模式 -0.1 A;可以在
14、不到 1s 的时间里超快速地从待机模式唤醒。基本时钟模块配置:具有四种校准频率并高达16MHz 的内部频率;内部超低功耗LF 振荡器; 32.768KHz 晶体;外部数字时钟源。两个16 位 Timer_A,分别具有三个捕获比较寄存器。用于模拟信号比较功能或者斜率模数(A/D) 转换的片载比较器。带内部基准、 采样与保持以及自动扫描功能的10 位 200-ksps 模数 (A/D) 转换器。16KB 闪存, 512B 的 RAM 。 16 个 I/O 口。这里给出了本次实验的最小电路图3.1最小电路图 3.14 软件设计4.1 程序模块本装置主要用到 MSP430g2553单片机的 IO 功能
15、程序设计中主要包括:1. 单片机对温度传感器的数据接收模块。2. 单片机对温湿度传感器的数据接收模块。3. 对 LCD屏的显示模块。4.2 软件设计流程图图 4.1 软件流程图5 调试本次设计最主要的工作之一就是对系统的调试部分, 因为一个测量显示软件的主要功能就是显示正确的结果。 开始显示的数据会因为采集的不准确和其他方面的误差导致接收到的数据不能正确表示想要的得到的数据, 也可能会因为采集过程出现频繁的错误等问题。 因此调试的工作极其重要, 在温度传感器的采集过程中经过和标准的温度值的校准, 测出了误差的范围和误差的大致规律最后在现实过程中消除了这种误差让温度测量更加准确稳定。在湿度传感器
16、的调试过程中的工作更是复杂, 湿度传感器可以返回温度和湿度值,但经过检测返回的温度值与实际的温度值偏差较大, 而湿度的计算方法是在该温度条件下的空气中水含量的多少,这就使得测得的温度不准导致湿度不准确,最后查阅资料找到了湿度的测量计算方法。 将返回的湿度值加权后再显示出来。这些工作很复杂湿度传感器的工作要求的时序很高就导致在时序配置上要花很大功夫一点不对就不能返回正确的结果屡屡出错。总之调试工作发杂多变。6 总结本次设计的东西看起来很简单, 好像没有什么技术含量。 但当实际操作时想要完美的运行却遇到了重重的困难。因为 MSP430 是开始接触的单片机,之前也一直没有做过关于它的太多试验。 修改
17、驱动显示屏程序也花费了很长时间才将原来 51 单片机的程序移植过来,结果刷屏与显示与想要显示的位置不符,后来请教同学计算了 LCD 的显示位置才更改过来。接下来的湿度调试,因为开始找不到 bsp_dht11温湿度传感器的原理图就在网上找了关于它的程序结果发现不能用不管怎么更改总是无法返回正确的数值,最后终于找到了关于该传感器的详细资料。 发现该传感器的工作要求对时序的要求特别严格, 最后精确计算了延时时间并且进行了延时时间的修改才能返回结果。 但得到的湿度值与正常的湿度值存在较大的偏差, 但没有标准湿度值可以进行比较于是选取了天气预报软件上面公布的湿度值进行校准。因为这次作业选用的是模块化的传
18、感器且传感器对电压的要求不太严格3.0V5.0V 均可以,为了降低设计设计的复杂度就选取了给单片机供电的3.3V 电压作为传感器和显示屏的供电电压。本次对单片机的实际制作成东西才感到动手的重要性, 和一些看起来简单的东西也许不那么简单。 在以后的学习中要增加动手的能力。参考文献1 杨家成单片机原理与应用及 C51程序设计 北京:清华大学出版社,20072 夏路易 石宗义 Protel 99se 电路原理图与电路板设计教程北京:北京希望电子出版社, 20043 李林功单片机原理与应用基于实例驱动和 Proteus 仿真北京:科学出版社, 20114 皮大能等 . 单片机课程设计指导书 . 北京:
19、北京理工大学出版社, 20105 MSP430单片机 C 语言应用程序设计实例精讲 电子工业出版社 2006.05附件程序主程序#include<msp430g2553.h>#include"font.h"#include"sys.h"#include"lcd.h"#include"ds18b20.h"#include"dht11.h"voidCLK_Init ( void )/ 时钟配置if(CALBC1_16MHZ =0xFF | CALDCO_16MHZ = 0xFF)whil
20、e (1);/ If calibrationconstants erased/ do not load, trapCPU!DCOCTL=0;BCSCTL1 = CALBC1_16MHZ;DCOCTL = CALDCO_16MHZ;/ Set range/ Set DCO step +modulation */BCSCTL2 |= 0X06;/SMCLK为DCO的 8分频, 2Mvoidshowjiemian ()/ 界面显示LCD_Fill(0,0,128,40,WHITE);/ 在指定区域填充颜色showhanzi(0,4,0);showhanzi(32,4,1);showhanzi(64,
21、4,2);showhanzi(96,4,3);/ 环境监测LCD_ShowString(100,68, "%"); /% :showhanzi1(14,42,0,RED,YELLOW);showhanzi1(34,42,1,RED,YELLOW); / 温度showhanzi1(100,42,2,BLUE,YELLOW); / showhanzi1(14,68,3,RED,YELLOW);showhanzi1(34,68,4,RED,YELLOW); / 湿度LCD_ShowString(56,42, "" );/ 温度显示LCD_ShowChar(72
22、,42,'.',0);LCD_ShowString(70,68, "" );/ 湿度显示intmain( void )WDTCTL = WDTPW | WDTHOLD; / Stop watchdog timer unsigned int temp=0,temp1,temp2,temp3; /ucharRH_data_H = 0;P2DIR |= 0x1f;/ 设置 P2为输出方式输出方式P2OUT |= 0X1f;BACK_COLOR=YELLOW;POINT_COLOR=BLUE;/ 背景色,画笔色CLK_Init();Lcd_Init();LCD_Cl
23、ear(YELLOW);DHT11_IO_Init();showjiemian();while (1)temp=Read_Temp();temp1=temp/100;temp2=temp%100/10;temp3=temp%10;LCD_ShowNum(56,42,temp1,2);/ 显示数字LCD_ShowNum(80,42,temp2,1);/ 显示数字LCD_ShowNum(88,42,temp3,1);/ 显示数字DHT11();LCD_ShowNum(88,68, ucharRH_data_H,3);delay_ms(1000);温度采集#include<msp430g255
24、3.h>#include"ds18b20.h"#include"sys.h"voidDS18B20_Init ( void )/DS18B20初始化函数DQ_OUT;DQ_L;/ 拉低总线delay_us(480);/ 精确延时大于DQ_H;/ 释放总线delay_us(48);DQ_IN;DQ_OUT;DQ_H;delay_us(360);480usvoidDS18B20_WriteData(u8 dat)/ 写一个字节u8 i;for (i=0;i<8;i+)/ 位计数值DQ_L;/ 拉低总线产生写信号delay_us(5);if (da
25、t&0x01) DQ_H; / 此位数据是否为高 , 是高则将单总线拉高 else DQ_L;/ 是低则将单总线拉低dat>>=1;/ 准备下一位数据的传送delay_us(50);DQ_H;/ 释放总线,等待总线恢复delay_us(8);u8 DS18B20_ReadData( void ) / 读一个字节u8 i;u8 dat=0;for (i=0;i<8;i+)/ 位计数值dat>>=1; / 右移,准备接受新的数据位DQ_L; / 拉低总线产生读信号delay_us(5);DQ_H; / 释放总线准备读数据delay_us(5);/ 等待 5微秒
26、DQ_IN;/ 配置为输入,开始读取数据位_NOP();if (READ_DQ)/ 该位是否为高dat|=0x80; / 是就将此位置高delay_us(50);/ 等待 50微秒DQ_OUT;DQ_H;delay_us(5);return (dat);/ 将读到的一个字节返回u16 Read_Temp( void )/ 读取温度u16 temp_low,temp_high,d;floatc;DS18B20_Init();/ 初始化,每次写命令都从初始化开始DS18B20_WriteData(0xcc);/ 跳过 ROM命令DS18B20_WriteData(0x44);/ 温度转换命令DS1
27、8B20_Init();/ 初始化,每次写命令都从初始化开始DS18B20_WriteData(0xcc);/ 跳过 ROM命令DS18B20_WriteData(0xbe);/temp_low=DS18B20_ReadData();/ 读温度低字节 temp_high=DS18B20_ReadData(); / 读温度高字节temp_high<<=8;d=temp_high|temp_low;c=d*0.0625;d=(u16)(c*100);return (d);/ 返回 16位变量湿度采集#include "dht11.h"#include"sy
28、s.h"#include<msp430g2553.h>unsignedintuchartemp;unsignedcharucharT_data_H,ucharT_data_L,ucharRH_data_H,ucharRH_data_L,ucharcheckd ata;unsignedcharucharT_data_H_temp,ucharT_data_L_temp,ucharRH_data_H_temp,ucharRH_dat a_L_temp,ucharcheckdata_temp;voidDHT11_IO_Init ()P1SEL &= BIT0;voidCO
29、M( void )unsignedchar i;unsignedchar ucharFLAG;uchartemp=0;P1DIR &= BIT0;for (i=0;i<8;i+)ucharFLAG=2;while (!(P1IN&0x01)&&ucharFLAG+);delay_us(30);uchartemp=uchartemp<<1;if (P1IN&0x01)uchartemp |= 1;ucharFLAG=1;while (P1IN&0x01)&&ucharFLAG+);voidDHT11( void )
30、unsignedchar ucharFLAG;P1DIR |= BIT0;/ 设置 P1.0 为输出口DATA_L;delay_ms(20);/>18MSDATA_H;delay_us(30);P1DIR &= BIT0;if (!(P1IN&0x01)ucharFLAG=1;while (!(P1IN&0x01)&&ucharFLAG+);ucharFLAG=1;while (P1IN&0x01)&&ucharFLAG+);COM();ucharRH_data_H_temp=uchartemp;COM();ucharRH_
31、data_L_temp=uchartemp;COM();ucharT_data_H_temp=uchartemp;COM();ucharT_data_L_temp=uchartemp;COM();ucharcheckdata_temp=uchartemp;uchartemp=(ucharT_data_H_temp+ucharT_data_L_temp+ucharRH_data_H_temp+ ucharRH_data_L_temp);if (uchartemp=ucharcheckdata_temp)ucharRH_data_H=ucharRH_data_H_temp;ucharRH_data
32、_L=ucharRH_data_L_temp;ucharT_data_H=ucharT_data_H_temp;ucharT_data_L=ucharT_data_L_temp;ucharcheckdata=ucharcheckdata_temp;elseucharRH_data_H=12;ucharT_data_H=23;/P2DIR |= BIT0;显示#include<msp430g2553.h>#include"font.h"#include"sys.h"#include"lcd.h"u16 BACK_COLOR,
33、 POINT_COLOR;/ 背景色,画笔色 void LCD_Writ_Bus( char da) / 串行数据写入u8 i;for (i=0; i<8; i+)if (da & 0x80)SDA_H;elseSDA_L;SCK_L;da <<= 1;SCK_H;voidLCD_WR_DATA8( char da)/ 发送数据 -8 位参数AO_H;LCD_Writ_Bus(da);voidLCD_WR_DATA( intda)AO_H;LCD_Writ_Bus(da>>8);LCD_Writ_Bus(da);voidLCD_WR_REG( char d
34、a)AO_L;LCD_Writ_Bus(da);voidLCD_WR_REG_DATA( intreg, intda)LCD_WR_REG(reg);LCD_WR_DATA(da);void Address_set ( unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2)LCD_WR_REG(0x2a);LCD_WR_DATA8(x1>>8);LCD_WR_DATA8(x1);LCD_WR_DATA8(x2>>8);LCD_WR_DATA8(x2);LCD_WR_REG(0x2b);LCD
35、_WR_DATA8(y1>>8);LCD_WR_DATA8(y1+32);LCD_WR_DATA8(y2>>8);LCD_WR_DATA8(y2+32);LCD_WR_REG(0x2C);voidLcd_Init( void )/ 调用一次这些函数,免得编译的时候提示警告CS_H;/*if(LCD_CS=0)LCD_WR_REG_DATA(0,0); LCD_ShowString(0,0," "); LCD_ShowNum(0,0,0,0); LCD_Show2Num(0,0,0,0); LCD_DrawPoint_big(0,0); LCD_Dra
36、wRectangle(0,0,0,0); Draw_Circle(0,0,0);*/REST_H;delayms(5);REST_L;delayms(5);REST_H;CS_H;delayms(5);CS_L;/ 打开片选使能LCD_WR_REG(0x11);/Sleep outdelayms(120);/Delay 120ms/-ST7735S FrameRate-/LCD_WR_REG(0xB1);LCD_WR_DATA8(0x05);LCD_WR_REG(0x11);/Sleep exitdelayms (120);/ST7735R Frame RateLCD_WR_REG(0xB1)
37、;LCD_WR_DATA8(0x01);LCD_WR_DATA8(0x2C); LCD_WR_DATA8(0x2D);LCD_WR_REG(0xB2);LCD_WR_DATA8(0x01); LCD_WR_DATA8(0x2C); LCD_WR_DATA8(0x2D);LCD_WR_REG(0xB3);LCD_WR_DATA8(0x01); LCD_WR_DATA8(0x2C); LCD_WR_DATA8(0x2D);LCD_WR_DATA8(0x01); LCD_WR_DATA8(0x2C); LCD_WR_DATA8(0x2D);LCD_WR_REG(0xB4);/Column inver
38、sionLCD_WR_DATA8(0x07);/ST7735R Power SequenceLCD_WR_REG(0xC0);LCD_WR_DATA8(0xA2); LCD_WR_DATA8(0x02); LCD_WR_DATA8(0x84); LCD_WR_REG(0xC1); LCD_WR_DATA8(0xC5); LCD_WR_REG(0xC2);LCD_WR_DATA8(0x0A); LCD_WR_DATA8(0x00);LCD_WR_REG(0xC3);LCD_WR_DATA8(0x8A); LCD_WR_DATA8(0x2A);LCD_WR_REG(0xC4);LCD_WR_DAT
39、A8(0x8A); LCD_WR_DATA8(0xEE);LCD_WR_REG(0xC5);/VCOMLCD_WR_DATA8(0x0E);LCD_WR_REG(0x36);/MX, MY, RGB modeLCD_WR_DATA8(0xC8);/ST7735R Gamma SequenceLCD_WR_REG(0xe0);LCD_WR_DATA8(0x0f); LCD_WR_DATA8(0x1a);LCD_WR_DATA8(0x0f); LCD_WR_DATA8(0x18);LCD_WR_DATA8(0x2f); LCD_WR_DATA8(0x28);LCD_WR_DATA8(0x20);
40、LCD_WR_DATA8(0x22);LCD_WR_DATA8(0x1f); LCD_WR_DATA8(0x1b);LCD_WR_DATA8(0x23); LCD_WR_DATA8(0x37); LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x07);LCD_WR_DATA8(0x02); LCD_WR_DATA8(0x10);LCD_WR_REG(0xe1);LCD_WR_DATA8(0x0f); LCD_WR_DATA8(0x1b);LCD_WR_DATA8(0x0f); LCD_WR_DATA8(0x17);LCD_WR_DATA8(0x33); LCD_WR_DAT
41、A8(0x2c);LCD_WR_DATA8(0x29); LCD_WR_DATA8(0x2e);LCD_WR_DATA8(0x30); LCD_WR_DATA8(0x30);LCD_WR_DATA8(0x39); LCD_WR_DATA8(0x3f);LCD_WR_DATA8(0x00); LCD_WR_DATA8(0x07);LCD_WR_DATA8(0x03); LCD_WR_DATA8(0x10);LCD_WR_REG(0x2a);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x7f);LCD
42、_WR_REG(0x2b);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x7f);LCD_WR_REG(0xF0);/Enable test commandLCD_WR_DATA8(0x01);LCD_WR_REG(0xF6);/Disable ram power save modeLCD_WR_DATA8(0x00);LCD_WR_REG(0x3A);/65k modeLCD_WR_DATA8(0x05);LCD_WR_REG(0x29);/Display onLCD_WR_REG(0x2C);
43、/ 清屏函数/Color:要清屏的填充色voidLCD_Clear(u16 Color)u8 VH,VL;u16 i,j;VH=Color>>8;VL=Color;Address_set(0,0,LCD_W-1,160);for (i=0;i<LCD_W;i+)for (j=0;j<LCD_H;j+)LCD_WR_DATA8(VH);LCD_WR_DATA8(VL);/ 在指定位置显示一个汉字 (32*33 大小 ) /dcolor 为内容颜色, gbcolor 为背静颜色voidshowhanzi ( unsignedintx, unsignedinty, unsig
44、nedchar index)unsignedchar i,j;constunsignedchar *temp=hanzi;Address_set(x,y,x+31,y+31);temp+=index*128;for (j=0;j<128;j+)/ 设置区域for (i=0;i<8;i+)if (*temp&(1<<i)!=0)LCD_WR_DATA(POINT_COLOR);elseLCD_WR_DATA(BACK_COLOR);temp+;/ 在指定位置显示一个汉字 (16*16 大小 ) /dcolor 为内容颜色, gbcolor 为背静颜色voidsho
45、whanzi1( unsignedintx, unsignedinty, unsignedchar index,u16p_color,u16 b_color)unsignedchar i,j;constunsignedchar *temp=hanzi1;BACK_COLOR = b_color;POINT_COLOR = p_color; Address_set(x,y,x+15,y+15); temp+=index*32; for (j=0;j<32;j+) / 设置区域for (i=0;i<8;i+)if (*temp&(1<<i)!=0)LCD_WR_DA
46、TA(POINT_COLOR);elseLCD_WR_DATA(BACK_COLOR);temp+;/ 画点/POINT_COLOR:此点的颜色voidLCD_DrawPoint(u16 x,u16 y)Address_set(x,y,x,y);/ 设置光标位置LCD_WR_DATA(POINT_COLOR);/ 画一个大点/POINT_COLOR:此点的颜色voidLCD_DrawPoint_big(u16 x,u16 y)LCD_Fill(x-4,y-4,x+4,y+4,POINT_COLOR);/ 在指定区域内填充指定颜色/ 区域大小 :/ (xend-xsta)*(yend-ysta)voidLCD_Fill (u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color)u16 i,j;Address_set(xsta,ysta,xend,yend);/ 设置光标位置for (i=ysta;i<=yend;i+)for (j=xsta;j<=xend;j+)LCD_WR_DATA(color);/ 设置光标位置/ 画线/x1,y1:起点坐标/x2,y2:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初二物理八年级上册8.1走进实验室学习科学探究 教案
- 2024年企业知识产权保护管理合同
- 商场顾客健康安全管理制度
- 高铁拌合站信息化管理方案
- 建筑材料采购管理制度
- 2024年危险品仓储安全管理合同
- 二年级下册数学教案 - 认识算盘 北京版
- 2024年农产品代购与加工合作协议
- 2024年互联网医院建设与运营合同
- 中班健康活动教案:身体
- 消防车事故培训课件模板
- 【城市轨道交通运营安全管理研究5300字】
- 2024年中核汇能有限公司招聘笔试参考题库含答案解析
- 上海市2024届高三7月模拟预测历史试题(等级考)(解析版)
- 肺炎护理查房课件
- 北京地区成人本科学士学位英语统一考试应试指南
- 部编《道德与法治》二年级上册教材解析及教学建议
- 民俗学-人生礼仪民俗(诞生成年)
- 餐饮服务挂靠合同
- 消防工程质量保修协议
- 地貌与公路工程-山岭地貌(工程地质课件)
评论
0/150
提交评论