基于MSP430的简易超声波探测仪.doc_第1页
基于MSP430的简易超声波探测仪.doc_第2页
基于MSP430的简易超声波探测仪.doc_第3页
基于MSP430的简易超声波探测仪.doc_第4页
基于MSP430的简易超声波探测仪.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

0 单片机原理与接口技术单片机原理与接口技术 课程设计课程设计 题目名称:题目名称: 简易超声波测距仪简易超声波测距仪 专业班级:专业班级: 测控测控 11011101 班班 学生姓名:学生姓名: 学学 号:号: 指导教师:指导教师: 成绩: 评语: 指导老师签名: 日期: 1 目 录 引言.4 第一章 绪论 1.1 超声波测量原理.4 1.2 系统概述 .4 第二章 设计方案与论证 2.1 超声波测距模块.5 2.2 供电模块.5 2.3 显示模块.5 2.4 测温模块 .6 第三章 硬件设计 3.1 系统原理方框图.6 3.2 主电路图.7 3.3 I/O 口分配 .7 3.4 元器件选型.8 3.4.1 主控制芯片 MSP430G2553 .8 3.4.2 HC-SR04 超声波模块 .8 3.4.3 温度传感器 DS18B20 .9 3.4.4 稳压芯片 LM1117 .9 3.4.5 5110 液晶显示 .10 第四章 软件设计 2 4.1 主流程图及介绍.11 第五章 系统调试 5.1 测距调试.12 第六章 设计心得.12 参考文献.14 附录 1:源程序 .15 附录 2:相关照片 .28 3 引言引言: 设计一个超声波测距仪,可应用于汽车倒车、 建筑施工工地以及一些工业 现场的位置监控, 也可用于如液位、 井深、 管道长度的测量、 移动机器人、 安全线提示, 银行及取款机的一米线提示等场合。要求测量范围在 0.204.00m, 测量精度 1cm, 测量时与被测物体无直接接触, 能够清晰稳定 地显示测量结果。 第第 1 1 章章 绪论绪论 1.11.1 超声波测量原理超声波测量原理 超声波为直线传播方式,频率高,反射能力强;在空气中传播速度为 340m/s, 容易控制;受环境影响小,因此采用超生波传感器作为距离探测的 眼睛。用于测距领域的超声波频率为 20kHz 400kHz 的频段,空气介质中常 用为 40kHz。避障系统的超声波测距通常运用超声波的反射原理,采用渡越时 间法,通过测量超声波发射到返回之间的时间间隔来计算距离。由于时间长度 与声音通过的距离成正比关系,当发射超声波传感器发出一个短暂的脉冲波时, 记时开始;当接收超声波传感器接收到第一个回波脉冲后,计时立即停止。此 时,记录得到的时间值为 t,那么从超声波发射位置到障碍物之间的实际距离 就可按下式求得。 L=ct/2 (I) 式(I)中:L 为超声波发射位置到障碍物之间的实际距离; t 为超声波发生器发出超声波到接收到超声波的时间间隔。 1.21.2 系统概述系统概述 此系统为一个简易超声波测距仪,测量 4m 以内的距离。它以 MSP430G2553 为中心控制器,由测距、显示、供电、以及测温部分组成。测距部分采用 HC- SR04 模块,显示部分为 5110 液晶显示。系统由两块串联到一起的手机电池供 电,通过两个 1117 稳压芯片把电压转换成 5v 和 3.3v 给各个模块供电。 DS18B20 芯片首先测得当前温度,对于超声波测距进行校正,并和温度值一起 在 5110 液晶上进行显示。还可以通过两个按键锁定和解锁液晶。完成对于距离 的测量。 考虑到这是一个便携式的设备,系统要尽可能的简化电路以减少功耗。程 序设计也尽可能的减少硬件的工作次数,比如较为复杂温度的测量就是每隔 30s 刷新一次。不仅如此系统的大小还得考虑,合理的安排元件的位置,以减 4 少板子的大小。 第第 2 2 章章 设计方案与论证设计方案与论证 2.12.1 超声波测距模块超声波测距模块 方案一: 按照电路图手工焊接相关电路。优点:可以合理安排零件的位置,减少系 统的大小。缺点:调试难度大,并且精度没有保证。最后不予考虑。 方案二: 使用超声波模块 KS103。测距最大距离 8 米,盲区为最小 1cm 之内。测量 精度平均 3mm,最高达 1mm.而且相当灵敏。具有目前其他同类超声波模块产品所 无法达到的性能优势和质量保障。测量距离,温度,光强,三合一功能 。但是 缺点是价格太高,不予考虑。 方案三: 使用超声波模块 HC-SR04 模块。模块特点:HC-SR04 超声波测距模块可提 供 2cm-400cm 的非接触式距离感测功能,测距精度可达高到 3mm;模块包括超 声波发射器、接收器与控制电路。综合价格、大小、精度等各方面因素,系统 最后选择此模块座位测距模块。 2.22.2 供电模块供电模块 方案一: 使用若干节五号干电池供电。由于直流升压芯片相比降压来说要少,并且 在稳压过程中的损耗比降压要大,所以需要 5v 以上的电压供电。干电池每节 1.5v,也就是说需要 4 节干电池。体积较大,并且不能充电,所以不采用此方 案。 方案二: 使用手机电池供电。手机电池为锂电池,电量大,体积小。要达到 5v 以上 电压只需两块电池串联。并且还可以充电,便于循环使用。两块手机电池串联 之后实际电压为 8.4v,1117 稳压芯片也很便宜。经过两级降压分别输出 5v 和 3.3v 的电压。本系统就是采用这个方案。 2.32.3 显示模块显示模块 方案一: 5 1602 液晶显示屏,可以显示两排数字以及字符。但是它所占用的引脚太多, 除去供电引脚外还需 12 个引脚。MSP430G2 只有组 8 位 I/O 口,所以 1602 不予 考虑。 方案二: 5110 液晶显示屏可以显示 15*6 个数字或字符,并且还能显示汉字。除去 电源引脚外只需占用 5 个 I/O 口即可工作,所以本系统采用此液晶显示。 2.42.4 测温模块测温模块 方案一: 使用热电阻组成电桥电路,将温度转换成电压值,经过单片机内部的 AD 转 换电路变成数字量。但是电桥电路的平衡由于存在各种漂移不容易调整,并且 电桥持续工作浪费电量,不符合便携式的设计要求,综上不予考虑此方案。 方案二: 数字化芯片 DS18B20 温度传感器,控制较为简单,并且只需占用一个引脚。 集成程度高,休眠时的功率也很小。精度为 0.5 摄氏度。满足本系统的设计要 求。 第第 3 3 章章 硬件设计硬件设计 3.13.1 系统原理方框图系统原理方框图 6 图 3-1 系统原理方框图 3.23.2 主电路图主电路图 图 3-2 主电路图 3.33.3 I/OI/O 口分配口分配 P1.0 接 DS18B20,P1.1 和 P1.2 分别接 HC-RS04 的 Trig 和 Echo 引 脚。 P1.3 P1.4 接两个按钮。 P1.7 P1.6 P2.5 P2.4 P2.3 接 5110 液晶显示屏 7 图 3-3 单片机 I/O 口分配图 3.43.4 元器件选型元器件选型 3.4.13.4.1 主控制芯片主控制芯片 MSP430G2553MSP430G2553 MSP430G2 系列是德州仪器推出的一款产品, 在秉承 MSP430 超低功耗, 高集 成度 的优点的同时,具有高性价比的特点 MSP430 单片机片上外围模块: 16MHz 主频 16 位 CPU 片上程序存储器 FLASH(512B/1KB/2KB/4KB/8KB/16KB)及 FLASH 控制器 片上随机存储器 SRAM(128B/256B/512B) 通用并行输入输出端口 GPIO(4 位/16 位/20 位/24 位) 支持电容触摸式 I/O 看门狗定时器 WDT 上电复位模块 BOR 多功能通信模块 USI(I2C/SPI)USIC_A(UART/LIN/IrDA/SPI) USIC_B(I2C 8 (2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回; (3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就 是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S)/2。 图 3-4 HC-SR04 模块原理图 3.4.33.4.3 温度传感器温度传感器 DS18B20DS18B20 独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外 部元件 可用数据总线供电,电压范围为 3.0 V 至 5.5 V 无需备用电源 测量温度范围为-55 C 至+125 。 -10 C 至+85 C 范围内精度 为0.5 C。 温度传感器可编程的分辨率为 912 位,温 度转换为 12 位数字格式最大值为 750 毫秒,用 户可定义的非易失性温度报警设置。 由于 DS18B20 是一条口线通信,所以中央 微处理器与 DS18B20 只有一个一条口线连接。 为读写以及温度转换可以从数据线本身获得能 量,不需要外接电源。 因为每一个 DS18B20 的 包含一个独特的序号,多个 ds18b20s 可以同时存在于 图 3-5 DS18B20 接 线图 1 条总线。这使得温度传感器放置在许多不同的 2 条地方。 9 3.4.43.4.4 稳压芯片稳压芯片 LM1117LM1117 AMS1117 是一个正向低压降稳压器,在 1A 电流下压降为 1.2V。AMS1117 有 两个版本:固定输出版本和可调版本,固定输出电压为 1.5V、1.8V、2.5V、2.85V、3.0V、3.3V、5.0V,具有 1的精度;固定输出电 压为 1.2V 的精度为 2%。AMS1117 内部集成过热保护和限流电路,是电池供电和 便携式计算机的最佳选择。 图 3-6 1117 稳压模块原理模块 3.4.53.4.5 51105110 液晶显示液晶显示 该模块具有以下特点: 1、84x48 的点阵 LCD,可以显示 4 行汉字, 2、采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,包括电源 和地在内的信号线仅有 9 条。支持多种串行通信协议(如 AVR 单片机的 I、MCS51 的串口模式等) ,传输速率高达 4Mbps,可全速写入显示数据。 3、可通过导电胶连接模块与印制版,而不用连接电缆,用模块上的金属钩可将 模块固定到印制板上,因而非常便于安装和更换。 4、LCD 控制器驱动器芯片已绑定到 LCD 晶片上,模块的体积很小。 5、采用低电压供电,正常显示时的工作电流在 200A 以下,且具有掉电模式 10 图 3-7 5110 原理图 第第 4 章章 软件设计软件设计 4.14.1 主流程图主流程图及介绍及介绍 图 4-1 系统软件流程图 11 程序初始化之后,首先由 DS18B20 为温度赋初值。之后 HC-SR04 模块开始 测距,测距时使用的定时器 T0 为模块返回的高脉冲计时,按模块的设计要求, 计算出脉冲宽度即可得到声波反射所需时间。得出时间后代入公式测试:距离 =(高电平时间*声速(340M/S)/2。并且此时的声速已经经过了温度矫正,以减 少误差。与此同时定时器 T1 一直在定时,每隔 50ms 就会产生一次中断,在中 断程序中标志位每次加 1,当标志位加到 600 时,即一共 30s 时,程序就会刷 新温度值。 在 5110 液晶上显示的为距离值,单位 cm,以及温度值。当按键 1 按下时, 触发中断改变标志位,使得液晶锁屏。按键 2 按下时触发中断解锁屏幕。 由于超声波计数和温度测量时的程序不允许打断,在这两项进行的时候全 局中断关闭,防止打断程序影响结果。 第五章第五章 系统调试系统调试 5.15.1 测距调试测距调试 首先将 HC-SR04 模块固定,前方放置一个长直尺,单片机中烧入测距程序并循 环此程序。在循环开始处设置断点,通过 CCS 软件自带的单步执行功能在电脑 上显示出测距值,并于直尺上的数值进行对照。 在 3cm 之内时测量 实际 值/cm 0.511.52.02.53.03.5 测量 值/cm 无结果2.4 左 右 2.02.22.43.13.7 表 5-1 近距离系统测试结果 (在 3cm 之内的程序略有不同,对于数值的显示精确度进行了修改) 在 3cm 之外的测量 实际 值/cm 510152030405060 测量 49142029405059 12 值/cm 表 5-2 远距离系统测试结果 通过结果可得在 2cm 之内时,测距值精确度不高,因为盲区的影响不能实现近 距测量。但是 3cm 之后的测量比较准确,基本可以实现设计要求。 第第 6 6 章章 设计心得设计心得 通过此次课程设计首先我学习 HC-SR04 超声波测距模块的使用方法,也了 解了很多超声波的应用以及测距的发展历史。另外 DS18B20 的使用是我对于串 行口的数据输出、输入的常用格式有了一定的了解。其次对于 5110 液晶的学习 使得以后再显示应用中有了更多的选择,不需要再进行繁琐的数码管焊接,并 且显示的效果也更好。当然对于其他电路,比如稳压电路也是一种复习。但是 5110 的显示功能很强,这一次只用到了很少的一部分功能,以后还要继续研究 学习。 在这次设计工程中,查阅了许多关于便携式设备的资料,了解到当前便携 式设备最主要考虑的一个问题就是功耗问题。由于不能随时充电,对于低功耗 的设计就显得很重要。这方面的研究还有很大的前景等着我们去探索。本系统 的芯片选型就考虑到了这方面的要求,芯片选型就是采用 TI 公司专门为这方面 设计的单片机。不过这款单片机的真正功能在这个系统中并未很好的体现出来, 对于它复杂的时钟系统以及各种休眠模式的应用并不多,以后可以继续改进程 序。 在制作、编程过程中我学习到细节的重要性。焊接电路版的时候任何小的 接线都会影响整个系统的正常运行。特别是在软件上,有时候一个符号的错误 都会导致整个程序的混乱,所以下次制作一定要细心,减少这种事情的发生。 总之,通过此次课程设计,不仅学习到了一些实际应用,也将我们的理论 和实践相结合,取得了不少了收获。 13 参考文献参考文献 【1】郭天祥. 51 单片机 C 语言教程入门、提高、开发、拓展全攻略. 电子工业出版社 2009 【2】沈建华 杨艳琴 MSP430 系列 16 位低功耗原理与应用 清华大学出版 社,2004 【3】谭浩强. C 程序设计 (第二版) 清华大学出版社,2000 【4】阎石. 数字电子技术基础 (第五版) 高等教育出版社 2005 【5】夏路易 石宗义.电路原理图与电路板设计教程 Protel 99SE 北京希 14 望电子出版社 2002 【6】张迎新. 单片机微型计算机 原理、应用及接口技术 (第二版) 国防 工业出版社 2009 【7】康华光. 电子技术基础 模拟部分 (第五版) 高等教育出版社 2005 【8】电子发烧网电子论坛 15 附录附录 1 1:源程序:源程序 /*主程序函数*/ #include #include Display.h #include Distance.h #include Temperature.h #define uint unsigned int #define uchar unsigned char int T; uint distance_main,count; uchar style; void init() WDTCTL=WDTPW+WDTHOLD; if (CALBC1_1MHZ =0 xFF | CALDCO_1MHZ = 0 xFF) while(1); BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; TA1CTL |= TASSEL_0+ MC_1 + TACLR; TA1CCR0 = 1637; TA1CCTL0 = CCIE; P1DIR|=BIT2; P1DIR TACTL|=TASSEL_1; P1DIR P1REN|=BIT3+BIT4; P1OUT|=BIT3+BIT4; P1IES|=BIT3+BIT4; 16 P1DIR |= BIT6+BIT7; P2DIR |= BIT3+BIT4+BIT5; void main(void) init(); LCD_init(); T = Temperature(); _EINT(); while(1) distance_main = Distance(); if(style) Display(distance_main,T); _delay_cycles(50000); #pragma vector=PORT1_VECTOR _interrupt void Port(void) _delay_cycles(10000); if(P1IN if(P1IN P1IFG #pragma vector = TIMER1_A0_VECTOR _interrupt void Timer_A(void) count+; if(count600) T = Temperature(); 17 count = 0; /*超声波测距函数*/ #ifndef DISTANCE_H_ #define DISTANCE_H_ int Distance(); #endif /* DISTANCE_H_ */ #include #include Distance.h #define uint unsigned int #define uchar unsigned char int T; uint distance,times; int Distance() P1OUT|=BIT2; _delay_cycles(10); P1OUT while(!(P1IN TACTL|=MC_2+TACLR; while(P1IN TACTL times=TAR; distance=times*(332 + 0.607*T/10)/655.36; times=0; return distance; /*温度测量程序*/ #ifndef TEMPERATURE_H_ 18 #define TEMPERATURE_H_ #define uint unsigned int #define uchar unsigned char #define POUT P1DIR|=BIT0; #define PIN P1DIR #define P_1 P1OUT|=BIT0; #define P_0 P1OUT uchar Temperature_init(void); void Temperature_write(uchar data); uchar Temperature_read(void); int Temperature_main(void); int Temperature(void); #endif /* TEMPERATURE_H_ */ #include #include Temperature.h #define uint unsigned int #define uchar unsigned char extern uint T; uchar Temperature_init(void) uchar i; POUT; P_0; _delay_cycles(600); P_1; _delay_cycles(60); if(P1IN else i=1; _delay_cycles(480); return i; void Temperature_write(uchar data) 19 uchar i; for(i=0;i=1 uchar Temperature_read(void) uchar tem=0,i; for(i=0;i=1; POUT; P_0; P_1; PIN; if(P1IN _delay_cycles(40); return tem; int Temperature_main(void) uchar T_L,T_H; int num=0; while(!Temperature_init(); 20 Temperature_write(0 xcc); Temperature_write(0 x44); _delay_cycles(400); while(!Temperature_init(); Temperature_write(0 xcc); Temperature_write(0 xbe); T_L=Temperature_read(); T_H=Temperature_read(); if(T_H num=T_H|T_L; num=-(num+1)*0.625; else num=(T_H0;n-) T+=Temperature_main(); _EINT(); T=T/3; /*5110 液晶显示程序*/ #define uint unsigned int #define uchar unsigned char #define DC_1 P2OUT|=BIT5; 21 #define DC_0 P2OUT #define CE_1 P1OUT|=BIT6; #define CE_0 P1OUT #define RST_1 P1OUT|=BIT7; #define RST_0 P1OUT #define SDIN_1 P2OUT|=BIT4; #define SDIN_0 P2OUT #define SCLK_1 P2OUT|=BIT3; #define SCLK_0 P2OUT void LCD_write_byte(uchar data,uchar command); void LCD_set_XY(uchar X,uchar Y); void LCD_clear(); void LCD_init(); void LCD_write_char(uchar c); void LCD_write_Char(uchar X,uchar Y,uchar asc); void LCD_write_English_string(uchar X,uchar Y,char *s) ; void LCD_write_nummber_1(uchar X,uchar Y,uint num); void LCD_write_nummber_2(uchar X,uchar Y,uint num); void Display(uint dis,int T); #endif /* DISPLAY_H_ */ #include #includeDisplay.h const uchar font6x86 = 0 x00, 0 x00, 0 x00, 0 x00, 0 x06, 0 x00 , / sp 32 0 x00, 0 x00, 0 x00, 0 x2f, 0 x00, 0 x00 , / ! 33 0 x00, 0 x00, 0 x07, 0 x00, 0 x07, 0 x00 , / 34 0 x00, 0 x14, 0 x7f, 0 x14, 0 x7f, 0 x14 , / # 0 x00, 0 x24, 0 x2a, 0 x7f, 0 x2a, 0 x12 , / $ 0 x00, 0 x62, 0 x64, 0 x08, 0 x13, 0 x23 , / % 0 x00, 0 x36, 0 x49, 0 x55, 0 x22, 0 x50 , / 0 x00, 0 x08, 0 x14, 0 x22, 0 x41, 0 x00 , / 0 x00, 0 x02, 0 x01, 0 x51, 0 x09, 0 x06 , / ? 0 x00, 0 x32, 0 x49, 0 x59, 0 x51, 0 x3E , / 0 x00, 0 x7C, 0 x12, 0 x11, 0 x12, 0 x7C , / A 0 x00, 0 x7F, 0 x49, 0 x49, 0 x49, 0 x36 , / B 0 x00, 0 x3E, 0 x41, 0 x41, 0 x41, 0 x22 , / C 0 x00, 0 x7F, 0 x41, 0 x41, 0 x22, 0 x1C , / D 0 x00, 0 x7F, 0 x49, 0 x49, 0 x49, 0 x41 , / E 0 x00, 0 x7F, 0 x09, 0 x09, 0 x09, 0 x01 , / F 0 x00, 0 x3E, 0 x41, 0 x49, 0 x49, 0 x7A , / G 0 x00, 0 x7F, 0 x08, 0 x08, 0 x08, 0 x7F , / H 0 x00, 0 x00, 0 x41, 0 x7F, 0 x41, 0 x00 , / I 0 x00, 0 x20, 0 x40, 0 x41, 0 x3F, 0 x01 , / J 0 x00, 0 x7F, 0 x08, 0 x14, 0 x22, 0 x41 , / K 0 x00, 0 x7F, 0 x40, 0 x40, 0 x40, 0 x40 , / L 0 x00, 0 x7F, 0 x02, 0 x0C, 0 x02, 0 x7F , / M 0 x00, 0 x7F, 0 x04, 0 x08, 0 x10, 0 x7F , / N 0 x00, 0 x3E, 0 x41, 0 x41, 0 x41, 0 x3E , / O 0 x00, 0 x7F, 0 x09, 0 x09, 0 x09, 0 x06 , / P 0 x00, 0 x3E, 0 x41, 0 x51, 0 x21, 0 x5E , / Q 0 x00, 0 x7F, 0 x09, 0 x19, 0 x29, 0 x46 , / R 23 0 x00, 0 x46, 0 x49, 0 x49, 0 x49, 0 x31 , / S 0 x00, 0 x01, 0 x01, 0 x7F, 0 x01, 0 x01 , / T 0 x00, 0 x3F, 0 x40, 0 x40, 0 x40, 0 x3F , / U 0 x00, 0 x1F, 0 x20, 0 x40, 0 x20, 0 x1F , / V 0 x00, 0 x3F, 0 x40, 0 x38, 0 x40, 0 x3F , / W 0 x00, 0 x63, 0 x14, 0 x08, 0 x14, 0 x63 , / X 0 x00, 0 x07, 0 x08, 0 x70, 0 x08, 0 x07 , / Y 0 x00, 0 x61, 0 x51, 0 x49, 0 x45, 0 x43 , / Z 0 x00, 0 x00, 0 x7F, 0 x41, 0 x41, 0 x00 , / 0 x00, 0 x55, 0 x2A, 0 x55, 0 x2A, 0 x55 , / 55 0 x00, 0 x00, 0 x41, 0 x41, 0 x7F, 0 x00 , / 0 x00, 0 x04, 0 x02, 0 x01, 0 x02, 0 x04 , / 0 x00, 0 x40, 0 x40, 0 x40, 0 x40, 0 x40 , / _ 0 x00, 0 x00, 0 x01, 0 x02, 0 x04, 0 x00 , / 0 x00, 0 x20, 0 x54, 0 x54, 0 x54, 0 x78 , / a 0 x00, 0 x7F, 0 x48, 0 x44, 0 x44, 0 x38 , / b 0 x00, 0 x38, 0 x44, 0 x44, 0 x44, 0 x20 , / c 0 x00, 0 x38, 0 x44, 0 x44, 0 x48, 0 x7F , / d 0 x00, 0 x38, 0 x54, 0 x54, 0 x54, 0 x18 , / e 0 x00, 0 x08, 0 x7E, 0 x09, 0 x01, 0 x02 , / f 0 x00, 0 x18, 0 xA4, 0 xA4, 0 xA4, 0 x7C , / g 0 x00, 0 x7F, 0 x08, 0 x04, 0 x04, 0 x78 , / h 0 x00, 0 x00, 0 x44, 0 x7D, 0 x40, 0 x00 , / i 0 x00, 0 x40, 0 x80, 0 x84, 0 x7D, 0 x00 , / j 0 x00, 0 x7F, 0 x10, 0 x28, 0 x44, 0 x00 , / k 0 x00, 0 x00, 0 x41, 0 x7F, 0 x40, 0 x00 , / l 0 x00, 0 x7C, 0 x04, 0 x18, 0 x04, 0 x78 , / m 0 x00, 0 x7C, 0 x08, 0 x04, 0 x04, 0 x78 , / n 0 x00, 0 x38, 0 x44, 0 x44, 0 x44, 0 x38 , / o 0 x00, 0 xFC, 0 x24, 0 x24, 0 x24, 0 x18 , / p 0 x00, 0 x18, 0 x24, 0 x24, 0 x18, 0 xFC , / q 0 x00, 0 x7C, 0 x08, 0 x04, 0 x04, 0 x08 , / r 0 x00, 0 x48, 0 x54, 0 x54, 0 x54, 0 x20 , / s 0 x00, 0 x04, 0 x3F, 0 x44, 0 x40, 0 x20 , / t 0 x00, 0 x3C, 0 x40, 0 x40, 0 x20, 0 x7C , / u 0 x00, 0 x1C, 0 x20, 0 x40, 0 x20, 0 x1C , / v 0 x00, 0 x3C, 0 x40, 0 x30, 0 x40, 0 x3C , / w 0 x00, 0 x44, 0 x28, 0 x10, 0 x28, 0 x44 , / x 24 0 x00, 0 x1C, 0 xA0, 0 xA0, 0 xA0, 0 x7C , / y 0 x00, 0 x44, 0 x64, 0 x54, 0 x4C, 0 x44 , / z 0 x14, 0 x14, 0 x14, 0 x14, 0 x14, 0 x14 / horiz lines ; void LCD_write_byte(uchar data,uchar command) uchar i; CE_0; if(command=0) DC_0; else DC_1; for(i=0;i8;i+) if(data else SDIN_0; SCLK_0; data=1; SCLK_1; CE_1; void LCD_set_XY(uchar X,uchar Y) LCD_write_byte(0 x40|Y,0); LCD_write_byte(0 x80|X,0); void LCD_clear() uchar i,j; LCD_set_XY(0,0); for(i=0;i6;i+) for(j=0;j84;j+) LCD_write_byte(0 x00,1); 25 void LCD_init() P2DIR|=0XFF; RST_0; ; RST_1; CE_0; ; CE_1; LCD_write_byte(0X21,0); LCD_write_byte(0XC8,0); LCD_write_byte(0X06,0); LCD_write_byte(0X1

温馨提示

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

评论

0/150

提交评论