版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、职场大变样社区():下载毕业设计成品全套资料,全部50元以下基于单片机的激光测距仪的设计与实现摘要随着嵌入式系统的不断发展和应用,嵌入式已实现了很多的不同的功能,从而大大的方便了人们的工作及日常生活。随着人们对测量的精确度及实时性的需求日益增长,如:土木工程测距、汽车的倒车防撞、机器人的防撞等等,促使低廉的嵌入式的激光测距仪就应运而生。激光测距仪,是利用激光对目标的距离进行准确测定的仪器。激光测距仪在工作时向目标射出一束很细的激光,由光电元件接收目标反射的激光束,计时器测定激光束从发射到接收的时间,计算出从观测者到目标的距离。本文的激光测距仪是一维的激光测距仪,用于距离测量、定位。本文介绍了以
2、stc12c5a60s2单片机为核心的一种低成本、高精度、微型化的激光测距仪。该测距仪采用了相位法激光测距,将测得的结果经计算反馈到5110屏上,从而实现功能。关键词:单片机;stc12c5a60s2;激光测距the design and implementation of laser range finder based on singlechipabstractwith the continuous development and application of embedded system,embedded system has implemented a lot of function
3、s, greatly facilitating our work and day life. also, as increasing demands on the measurement accuracy and real-time performance, such as civil engineering range, automobile back-draft collision, the collision of robot, etc., the low embedded laser rangefinder occurred.laser rangefinder is to use la
4、ser instrument for accurate determination of target distance. it, at work, emits a rather fine laser beam to the target, then receives the laser beam from target reflection through its optoelectronic component. a timer is used to determine the duration from transmitting to receiving of laser beam, f
5、urther to calculate the distance from the observer to the target. in this study, we used a one-dimension laser range finder for distance measurement and location. this paper introduces a sort of low-cost, high-precision, and miniaturized laser range finder, which core is based on the stc12c5a60s2 si
6、ngle-chip microcomputer. the rangefinder measures the distance by mean of phase laser, and feedbacks the measured results with post-processing onto 5110 screen.key words: single chip microcomputer;stc12c5a60s2;laser rangefinder目 录1. 国内外概况和发展趋势11.1激光测距的优点11.2激光测距研究的国内外概况11.2.1国外概况11.2.2国内概况21.2.3发展趋势
7、32. 激光测距仪的相关技术42.1激光干涉法42.2相位法激光测距42.3脉冲法52.4调频连续波法53. 激光测距仪的开发环境63.1激光收发模块63.2单片机选用的是stc12c5a60s2单片机83.2.1 stc12c5a60s2特点103.2.2引脚功能113.3开发板配置123.4编译环境144.激光测距仪的关键技术与编写语言的设计流程164.1激光测距仪的关键技术164.2编写语言的设计流程174.2.1 5110屏显示的实现174.2.2 中文字符的实现234.2.3 main函数的实现264.2.4 烧录过程305. 测试336.误差分析347.主要参考文献(资料):35结
8、束语36附录:外文资料37中文翻译451. 国内外概况和发展趋势1.1激光测距的优点激光测距的优点:1)测距精度高。2)体积小,重量轻,携带方便。3)分辨率高,抗干扰能力强 。4)激光测距不会受到电磁波及地波干扰,从而在军事上及极端环境下用激光测距将会更加可信赖。1.2激光测距研究的国内外概况1.2.1国外概况 激光测距技术是最早用于军事上的激光技术。1961年在美国休斯飞机公司研制出了全世界第一台激光测距机,被称为柯利达i型,第一台军用激光测距机成功地在1962年进行了示范表演,之后又研制成功几类实验型军用激光测距仪并试验和鉴定成功,从而突出证明激光测距仪可以作为一种新的测距仪代替原来的光学
9、测距仪。激光测距仪供炮兵的侦查员和相关部门使用。此后,各类型号的侦查用激光测距仪陆续装备各个国家的部队上。 通过前后三十多年的不断研制发展,激光测距仪己经更新了两代,并研制发展了三代.第一代激光测距使用的是红外红宝石激光器和光电倍增管探测器,可以说是最初的激光测距仪,1970年后激光测距仪少量装备到军队,后来因为隐藏性太差、使用效率低、体积太大、质量及耗电量大,不久便被第二代激光测距仪所代替。第二代激光测距机使用发射近红外钕激光器和硅光电二极管探测器。第二代与第一代相比较隐藏性提高、使用效率提高、更为小巧及消耗少的优点,所以第二代激光测距仪的研制进展迅速。1977年美国第一个成功研制被称为an
10、/gvs.5型的手持型使用的小型激光测距仪,该测距仪的结构第一次次使用了适合手持使用的双目望远镜式结构,大小和标准军用双目望远镜相当,总重量仅2kg。测距仪在设计上采用组件结构,在技术上首次成功采用轻小、成本低、不耗电的bdn被动染料片q 开关和工作电压为350v的低压硅雪崩光电二极管探测器,用大规模集成电路实现接收电路的固体组件化。 第三代激光测距仪,即是关于人眼安全的激光测距仪。目前已研制成工作波长为10.6/am和 1.54/am的三种不同类型的各种型号的人眼安全激光测距机,己进入生产和应用阶段。当下的激光测距技术已经迈入到民事应用领域。从1970年初至今的近40年中,国外许多大学、研究
11、机构和公司也开展了这方面的研究工作,来进一步造福人类。研究内容从各分系统到整机及其应用研究,其产品涉及工业、航天、海洋及机器人视觉等 多方面。美国有多家著名公司开展了这方面的研究,schwartzelectro-optics公司为美国国家数据中心研制了激光海浪测量装置,用于无人看守的海浪测量站;为美国联邦政府高速公路管理局研制了激光自动传感系统,用于车辆速度和高度的测量。1992年美国亚特兰大激光公司为警方专门设计的手持式人眼安全激光二极管测距机,用于对车辆的测距和测速。近十几年来,又有关于几家美国公司开展 这方面研究的报道。1996年,美国bushnell公司推出了测距能力400m的400型
12、ld激 光测距机yardaga400,1997年被评为世界100项重要科技成果之一,随后又推出了测距能力500m-1000m系列激光测距仪,该系列测距机的特点:利用对眼睛无害的透明红外线激光发射及接收;快速测距,测量精度高;高倍液晶显示瞄准器:无声操作;即使在阵雨等恶劣天气条件下,亦能精确测量;目标与仪器间有障碍物 如灌木林亦能如常测量:连续跟踪目标;防水、舫震;轻便和袖珍式设计便于携带, 广泛应用于建筑施工勘测设计、消防系统等领域。1.2.2国内概况 我国的激光测距仪起步于1970年后,是在固体激光测距仪和气体激光测距仪的基础上发展而来的。现在的基础技术已经完全具备,最主要的是要解决工程的应
13、用问题,来开发各种应用上的产品。我国航天八三五八所研制出了测量距离200m,精准度为0.5m,数据率是100hz的激光测距仪。中科院的上海光机所研制出了便携式激光测距机,从而大大方便了单人的测量操作,对于漫反射墙体的测距达到100m,采用了300mhz的计数方式,测距的精度是0.5m,重复频率是1khz。接着中国计量学院信息工程系光电子所与国外合作开发了低廉、便携式、半导体激光测距仪,作用测距lkm,精度划m,采用4mhz晶振,线性时间放大技术。常州的莱塞公司成功研制了作用距离200m,测距精度0.5m的半导体激光测距仪。 1.2.3发展趋势 人眼安全,标准化、小型化和固体组件化,激光测距机多
14、功能化、与其他光电仪器集成化,研制远程激光测距仪。由于激光的聚集的特性,可使照射到的局部短时间内能量过高而能实现在医疗上的应用。现在运用激光作用在人眼上,从而直接作用到人眼里面实现人眼激光手术。目前,激光手术已经非常成熟,为人类的健康做出了巨大贡献。为了测量的方便,及可操作性变强,小型化是激光的发展方向。便于个人操作,从而大大提高劳动效率,所以小型化是必不可少的。超远程的激光测距仪是全世界研究的方向,它能解决探索太空的种种麻烦,从而对人类的发展提供重要的基础保障。还有与其他光电仪器的集成化,主要体现在对激光的各种应用,如激光切割、激光指示器、激光探照灯等2. 激光测距仪的相关技术 目前多用的激
15、光测距方法有:调频连续波法、激光干涉法、相位法、脉冲法等。2.1激光干涉法干涉测量分为多波长干涉侧量和调频干涉侧量两种。干涉法测量技术的原理是用小数重合和在它的基础上发展的合成波长,一对不同频率的单色光的波外差干涉,其公式为: l是与被测物之间的距离,n是被侧距离内包含的整数级次,为小数级次。干涉仪是只能侧量小数级次,如果是整数级次则可以根据粗测值经过计算得到。下一级合成波长的四分之一大于上一级测量的不确定度,就可以沿着合成波长链向下逐级精确化。波长为1的光,它的最大可确定距离是2,从而制约了它的测量范围,所以通常情况下使用合成波长。如果两列波的波长为1、2相差非常小时,则它的合成波长:,这个
16、值大于任意的一个波长,从而实现扩大测量范围。2.2相位法激光测距相位法激光测距是通过测量强度调制的正弦波往返被测距离后产生的相移来侧量距离的。相位法激光测在厘米到百米或者千米级的测量范围内都可以完成测量,测量精度达到微米级别,有着测量的准度高、测量距离远等特点。目前测量需求在不断增加,测量的要求不断多元化,远距离测量正朝着更高效的方向发展。此前国外的很多机构对长远测量系统进行了相关研究,一些机构已经研制出了工业化产品,但大体上对中远距离测量系统的研究并不完善,要实现中远距离坐标的自动化和高效化测量并满足工业测量的具体需求,还要进行更加深入的研究和开发。2.3脉冲法计算发射脉冲与接收脉冲之间的时
17、间间隔来实现对距离的测量,在脉冲激励源的激励下,半导体激光器发射高峰值功率的激光脉冲。这个脉冲中有一部分能量经过内光路系统到达到光电探测电路,这个信号是参考的信号,是作为计时的起点:部分光的脉冲能量发射向被测目标位置,该激光脉冲经过被测目标反射后被光电探测电路接收,这就是回波信号。然后参考信号和回波信号的时间差值算得到被测与测量点之间的距离: d是与被测物之间的距离,c是光在真空中的速度,t 是时间间隔测量模块测量的时间。 脉冲激光测距仪以其测程远、质量轻、结构简单等优点,广泛应用于军事、航天航空等领域。但是受到计时的精度限制,脉冲激光测距的测量精度较差,只达到 cm 量级。目前主要应用在测量
18、范围大,对精度要求不高的测量中。2.4调频连续波法压控振荡器vco期线性扫频模块的控制下经放大器至激光器,使之发射调频周期是线性变化的光波re(t),其调频周期或时远大于最大作用距离所对应的回波延时,调制激光束经过目标反射后返回测量端,经光电器件接收经滤波放大后与fe(t)混频滤波得到差频信号,通过对该差频信号进行处理,得到目标的距离和速度信息。3. 激光测距仪的开发环境本程序由keil uvision2软件编译而成,生成hex文件,然后用stc-isp-v6烧录hex文件。3.1激光收发模块此模块是相位激光测距模块其技术参数:u 测量范围:0.045-d(d 是最大量程)目前模块有 d=40
19、,d=70,d=80,d=100 等规格。u 分辨率:0.01毫米(0.00001米)。u 测量精度(标准差):2.mm(10米内) 大于10米计算公式2+0.05*(d-10),d是距离。u 距离单位:m。u 激光类型:620-690nm。u 激光等级:级,1mw (二级安全)。u 单次测量时间: 0.25 秒。u 在距离 m 处光斑直径:6mm10m。u 工作温度:-0+40。u 贮存温度:-20+60。u 重量:约 60g。u 尺寸(长宽厚):4.8cmx3.7cmx1.8cm。u 供电电压: dc3v-3.3v。u io 电压:ttl 电平兼容 3v-5v 电压。u 通信接口:模块采用
20、 ttl 串口进行数据交换,通信速率高达 115k(波特率 115200)。只打开激光,但不测量,可用于瞄准目标(激光打开后自动超时关闭)u 连续测量模式:连续测量模式下主机发送一个连续测距指令模块可以执行 101(501 次连续测量),模块每次返回的数据均包含本次测量距离,最大值,最小值等,并在每个值前面有3位字符用来标记本条数据是否有效,如果测距中出现错误(遮挡到激光发射口,透镜,或者距离太近)会输出错误码,并将测量计数置为 9999,并终止本次连续测距,模块在连续测距模式下,每 5 次测量会关闭激光并重新打开一次,此模式一般用于慢速扫过一个平面或者立体面,如墙角,从而得到最大值和最小值,
21、也可用于实时测距,一次触发百次测量减轻 cpu 负担,并提高测量速度。u 连续测量模式的数据解析:1 测量数据长度为 38 字节2 蓝色(第 1-6 位)共 6 位: 保留以备未来扩展3 红色(第 7-10 位)共 4 位: 测量次数计数,最后一次测量或者出错终止测量时,测量次数计数器4 等于 9999,则本条数据可以忽略,或重发批量测距数据,以用于不间断连续测距5 黑色(第 11-13 位)共 3 位: 本次测量测距是否有效,后面意义相同6 粉红(第 14-18 位)共 5 位: 本次测量距离7 浅蓝(第 22-26 位)共 5 位:最大值8 绿色(第 30-37)共 7 位第: 表示距离,
22、7 位中的前两位表示整数部分,后 5 位表示小数部分主机发$00022426&9 模块先给一个 10 字节应答$00023335& 然后返回测距数据,实际模块返回的数据如下图,图3-1 数据流分析10 注意第一次回传测量数据会在前面带一个响应,直接丢弃即可。u 测距模块外观尺寸和接口:图3-2探头端口图表3-1 端口介绍端口电压功能备注vcc3.3v模块供电大于3.3v会烧坏gnd模块电源地txd3v-5v模块数据发送引脚可以直接5v单片机相连rxd3v-5v模块接收数据引脚可以直接5v单片机相连3.2单片机选用的是stc12c5a60s2单片机stc12c5a60s2系列单片机是单个时钟/机
23、器周期(1t)的单片机,是指令代码完全兼容传统的8051单片机,是新一代高速/低功耗/超强抗干扰的8051单片机,速度却快8051 8-12倍。在内部集成了max810复位电路、2路pwm、8路高速、10位a/d转换(250k/s),对于电机的控制有着出色的表现,适合于强干扰场合。1.该单片机属于增强型的8051 cpu,1t,单时钟/机器周期,指令代码完全兼容传统8051。2.工作电压:stc12c5a60s2系列工作电压:5.5v-3.3v(5v单片机)这次选用的是5v电压。3.工作的频率范围:0 - 35mhz,相当于普通8051的 0420mhz。4.用户应用程序空间8k /16k /
24、 20k / 32k / 40k / 48k / 52k / 60k / 62k字节。5.片上集成1280字节ram。6.通用i/o口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统i/o口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个i/o口驱动能力均可达到20ma,但整个芯片最大不要超过120ma。7. isp(在系统可编程)/iap(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(p3.0/p3.1)直接下载用户程序,数秒即可完成一片。8.有eeprom功能(stc12c5a62s2/ad/pwm无内部eeprom)。9.
25、内部集成max810专用复位电路(外部晶体12m以下时,复位脚可直接1k电阻到地)。10.外部掉电检测电路:在p4.6口有一个低压门槛比较器,5v单片机为1.32v,误差为+/-5%,3.3v单片机为1.30v,误差为+/-3%。11.时钟源:外部高精度晶体/时钟,内部r/c振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部r/c振荡器还是外部晶体/时钟,常温下内部r/c振荡器频率为:5.0v单片机为:11mhz15.5mhz,3.3v单片机为:8mhz12mhz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准。12.共4个16位
26、定时器 两个与传统8051兼容的定时器/计数器,16位定时器t0和t1,没有定时器2,但有独立波特率发生器 做串行通讯的波特率发生器 再加上2路pca模块可再实现2个16位定时器。13. 2个时钟输出口,可由t0的溢出在p3.4/t0输出时钟,可由t1的溢出在p3.5/t1输出时钟。14.外部中断i/o口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的pca模块, power down模式可由外部中断唤醒,int0/p3.2,int1/p3.3,t0/p3.4, t1/p3.5, rxd/p3.0,ccp0/p1.3(也可通过寄存器设置到p4.2 ), ccp1/p1.4 (也可
27、通过寄存器设置到p4.3)。15. pwm(2路)/pca(可编程计数器阵列,2路):图3-3 stc12c5a60s2管脚u 也可用来当2路d/a使用。u 也可用来再实现2个定时器。u 也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)。16.a/d转换, 10位精度adc,共8路,转换速度可达250k/s(每秒钟25万次)18.通用全双工异步串行口(uart),由于stc12系列是高速的8051,可再用定时器或pca软件实现多串口;17. stc12c5a60s2系列有双串口,后缀有s2标志的才有双串口,rxd2/p1.2(可通过寄存器设置到p4.2),txd2/p1.
28、3(可通过寄存器设置到p4.3);18.工作温度范围:-40 - +85(工业级) / 0 - 75(商业级)21.封装:pdip-40,lqfp-44,lqfp-48 i/o口不够时,可用2到3根普通i/o口线外接74hc164/165/595(均可级联)来扩展i/o口, 还可用a/d做按键扫描来节省i/o口,或用双cpu,三线通信,还多了串口。3.2.1 stc12c5a60s2特点stc12c5a60s2是8051系列单片机,与普通51单片机相比有以下特点:1、同样晶振的情况下,速度是普通51的812倍。2、有8路10位ad。3、多了两个定时器,带pwm功能。4、有spi接口。5、有ee
29、prom。6、有1k内部扩展ram。7、有watch_dog。8、多一个串口。9、io口可以定义,有四种状态。10、中断优先级有四种状态可定义。3.2.2引脚功能vcc:供电电压。gnd:接地。p0口:p0口是一个双向i/o口,这个口具有8位漏级开路,每一个管脚都可以吸收8ttl门电流。当p1口的管脚写“1”时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在flash编程时,p0口作为原码输入口,当flash进行校验时,p0输出原码,此时p0外部电位必须被拉高。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。
30、p1口管脚写入“1”后,电位被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,p2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器
31、的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,p3口将输出电流(ill),也是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口:p3.0 rxd(串行输入口)。p3.1 txd(串行输出口)。p3.2 int0(外部中断0)。p3.3 int1(外部中断1)。p3.4 t0(记时器0外部输入)。p3.5 t1(记时器1外部输入)。p3.6 wr (外部数据存储器写选通)。p3.7 rd (
32、外部数据存储器读选通)。同时p3口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高平时间。ale / prog :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令时ale才起作用。另外,该引脚被略
33、微拉高。如果微处理器在外部执行状态ale禁止,置位无效。psen:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期psen两次有效。但在访问内部部数据存储器时,这两次有效的psen信号将不出现。ea/vpp:当ea保持低电平时,访问外部rom;注意加密方式1时,ea将内部锁定为reset;当ea端保持高电平时,访问内部rom。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。3.3开发板配置板子尺寸:7.5*95*1.5(cm)1. 4按键键盘:输入设备,可做中断实验用。
34、2. 2个led灯:可做各种花样灯实验或状态显示设备。3. 超声波传感器接口:可做超声波测距实验。4. 24l01无线模块:可以做无线通信,自组网实验。5. 红外接收ic接口:可使用h1838等接收头做红外接收实验,可扩展红外遥控键盘。6. 温度传感器ds18b20接口:学习“单总线”通讯,可做温度计,温度报警装置。7. 温湿度传感器dht11接口:可做温度计和湿度计。8. 光敏电阻传感器接口:可接光敏电阻,学习用ad采集光照强度。9. 压敏电阻传感器接口:可接压敏传感器,学习用ad采集压力值。10. 以max3232为核心的串口1:此做为串行通讯的232-3.3/5v电平转换,可做串行通讯实
35、验,stc单片机也是通过此串口1烧写程序的。11. 以max3232为核心的串口2:有了第二串口,我们可以用2个串行同时通信,可以用串口2进行监控和调试。12. 1602lcd接口:可直插字符型1602,点阵图型12232等。13. 12864lcd接口:可直插点阵图型12864等。14. nokia 5110lcd屏接口:可接5110液晶和3310液晶。(三种液晶共用一个20管脚排母,可通过跳帽选择,详见使用手册)15. p口扩展:板子单片机的p口都有扩展插针引出,方便扩展。16. 输入电源:usb口供电与外电源供电端,选择一种就可以了。17. 系统电源:3.3v/5v电源可通过跳线帽选着,
36、既可以调试5v单片机和3.3v单片机。输入电压是5v。18. 输出电源:五组3.3v/5v电源扩展接口,可供其它设备取电。图3-4 双串口原理图本次设计用的是nokia5110屏nokia5110是一款经典机型,可能由于经典的缘故,旧机器很多,所以很多 电子工程师就把旧机器的屏幕拆下来, 自己驱动 nokia5110, 用于开发的设备显 示,取代 lcd1602。 使用 nokia5110液晶的四大理由:性价比高,lcd1602 可以显示 32 个字符,而 nokia5110可以显示 15 个汉 字,30 个字符。nokia5110裸屏仅 8.8 元,lcd1602 一般 15 元左右,lcd
37、 12864 一般 5070 元。 2) 接口简单,仅四根 i/o 线即可驱动,lcd1602 需 11 根 i/o 线,lcd12864 需 12 根。速度快,是 lcd12864 的 20 倍,是 lcd1602 的 40 倍。 nokia5110工作电压 3.3v,正常显示时工作电流 200ua 以下,具有掉电模 式,适合电池供电的便携式移动设备。3.4编译环境keil uvision2 是德国keil software公司出品的51系列单片机c语言软件开发系统。其在c语言上加入了单片机特有的语法,并最大程度上保留了c语言上的大部分的语法规则,从而大大方便了编程,也提高了人们对其的认可程
38、度。测试环境的可用性: #include sbit led=p10;void main(void) led=1; while(1) led=0; 图3-4 keil测试经测试该编译器可用,编译环境就搭建好了。4.激光测距仪的关键技术与编写语言的设计流程4.1激光测距仪的关键技术总体结构图如下:图4-1模块连接图图4-2 isis professional上的模拟图由于isis professional上没有激光的收发单元件,就以跑步机的设计为模拟图,经测试通过。5110屏幕的线序为:sbit res = p14; /复位,0复位sbit sce = p13; /片选sbit dc = p12;
39、 /1写数据,0写指令sbit sdin = p11; /数据sbit sclk = p10; /时钟4.2编写语言的设计流程本设计包括3 大模块,包括激光收发模块、单片机模块、5110显示屏模块。由于激光收发模块的完整封装性,它提供了开灯、开始连续测量、停止连续测量、指令确认及关闭激光的命令接口,所以在连接玩单片机后只需在编译时给出合理的编写逻辑即可。第二个模块是5110屏,由于以前从没有接触过lcd,用的都是led,在查找了5110的资料后对其的原理有了较为直观的了解。 第三个模块是单片机本身,在综合了网上的各种资料后,选择了51系列的单片机,其完全符合本设计的要求。4.2.1 5110屏
40、显示的实现通过指令完成了连续模式的测量实现,激光探头向单片机发送数据流,单片机截取的数据流并向lcd屏幕上通过函数实现lcd的显示,其中包括了字库的调用、坐标的设定、屏幕的初始化、及刷新等功能。void delay(int t)uchar i;while (t-)for (i=0;i125;i+)void lcd5110writedta(uchar dat)unsigned char i;sce=0;dc=1;for (i=0;i8;i+)if (dat&0x80)sdin=1;elsesdin=0;dat=dat1;sclk=0;nop();sclk=1;dc=1;sce=1;sdin=1;
41、void lcd5110writecmd(uchar dat)unsigned char i;sce=0;dc=0;for (i=0;i8;i+)if (dat&0x80)sdin=1;elsesdin=0;dat=dat1;sclk=0;nop();sclk=1;dc=1;sce=1;sdin=1;/*-lcd_init: lcd初始化- */void lcd5110init(void)char i;/ res=0;/ delay(10);/ res=1; /以上三句 不用也行lcd5110writecmd(0x21 );/初始化lcd,功能设定使用扩充指令lcd5110writecmd(0
42、xa0 );/设定液晶偏置电压/lcd5110writecmd(0xc0);/设定液晶偏置电压 /调试用 显示全黑lcd5110writecmd(0x02 );/温度校正lcd5110writecmd(0x13 );/1:48lcd5110writecmd(0x20 );/使用基本指令lcd5110writecmd(0x0c );/设定显示模式,正常显示for (i=0;i84;i+)y0rami=y1rami=y2rami=y3rami=0;/*- lcd_set_xy: 设置lcd坐标函数 输入参数:x:083 y:05-*/void lcd5110setxy(uchar x,y)lcd5
43、110writecmd(0x40 | y );/ 垂直方向 0-5lcd5110writecmd(0x80 | x );/ 水平方向0-83/*-lcd_clear: lcd清屏函数-*/void lcd5110clear(void)unsigned char t;unsigned char k;lcd5110setxy(0,0);for (t=0;t6;t+)for (k=0;k84;k+)lcd5110writedta(0x00);lcd_write_shu是显示8(宽)*16(高)点阵列数字字母符号等半角类,addr是写入地址,row是第几行 对于6*8点阵 实际5*7留有空边,字高8个
44、点, 屏幕一共6行 竖着48个点,dd是代表字符。void lcd5110write6x8ataddr(uchar row, addr, dat)unsigned char i;dat=dat-32; /ascii转换为字库偏移地址lcd5110setxy(addr, row-1);/ 某行的某个地址 行1-6地址0-83for (i=0; i6;i+)lcd5110writedta(ascii6x8dat*6+i);void lcd5110show6x8ascwithnoaddr(uchar dat)/显示一个6*8点阵uchar i;dat-=32;for (i=0; i6;i+)lcd5
45、110writedta(ascii6x8dat*6+i);void lcd5110string6x8(uchar row , addr, uchar *p)lcd5110setxy(addr, row);/ 列,页while (*p!=0)lcd5110show6x8ascwithnoaddr(*p+);void lcd5110show8x16ascataddr(uchar row,addr, dat)uchar i ;dat-=32;lcd5110setxy(addr,row);for (i=0; i8;i+)lcd5110writedta(ascii8x16dat*16+i);lcd511
46、0setxy(addr,row+1);for (i=8; i16;i+)lcd5110writedta(ascii8x16dat*16+i);/*行 范围 1-6一共6行,但在行=6的时候会显示不全*/void lcd5110string8x16(uchar row , addr, uchar *p)/不再用8*16的ascii了,直接屏蔽掉,想用的时候在解除屏蔽即可uchar dat;while (*p!=0)dat =*p;lcd5110show8x16ascataddr(row-1 ,addr, dat);*p+;addr+=8;void lcd5110displayascii8x12a
47、taddr(uchar row,addr, dat)uchar i, localhalfwidth,localfullwidth; /半宽字体,全宽字体localhalfwidth=8;/8*12的字体,光看上面一半8字节localfullwidth=16;/8*12的字体,上下两行就是16字节dat-=32;if (row=0)/按照4行显示,首行为0,地址就是0-3行,不是控制器的地址lcd5110setxy(addr, row);/ 列,页for (i=0; ilocalhalfwidth;i+) /上半部分 12个像素lcd5110writedta(ascii8x12dat*local
48、fullwidth+i);lcd5110setxy(addr, row+1);/ 列,页for (i=localhalfwidth; ilocalfullwidth;i+) /下半部分 12个像素y0ramaddr+i-localhalfwidth=ascii8x12dat*localfullwidth+i; /第0行的下半部分12个字节存起来lcd5110writedta(y0ramaddr+i-localhalfwidth | y1ramaddr+i-localhalfwidth4 );if (row=1)lcd5110setxy(addr, row);/ 列,页for (i=0; ilo
49、calhalfwidth;i+) /上半部分 12个像素y1ramaddr+i=ascii8x12dat*localfullwidth+i;/第1行上半部分存起来lcd5110writedta(y1ramaddr+i4 | y0ramaddr+i);lcd5110setxy(addr, row+1);/ 列,页for (i=localhalfwidth; ilocalfullwidth;i+) /下半部分 12个像素lcd5110writedta(ascii8x12dat*localfullwidth+i4 );if (row=2)/按照4行显示,首行为0,地址就是0-3行,不是控制器的地址l
50、cd5110setxy(addr, row+1);/ 列,页for (i=0; ilocalhalfwidth;i+) /上半部分 12个像素lcd5110writedta(ascii8x12dat*localfullwidth+i);lcd5110setxy(addr, row+2);/ 列,页for (i=localhalfwidth; ilocalfullwidth;i+) /下半部分 12个像素y2ramaddr+i-localhalfwidth=ascii8x12dat*localfullwidth+i; /第0行的下半部分12个字节存起来lcd5110writedta(y2rama
51、ddr+i-localhalfwidth | y3ramaddr+i-localhalfwidth4 );if (row=3)/按照4行显示的话,地址就是0-3行lcd5110setxy(addr, row+1);/ 列,页for (i=0; ilocalhalfwidth;i+) /上半部分 12个像素y3ramaddr+i=ascii8x12dat*localfullwidth+i;/第1行上半部分存起来lcd5110writedta(y3ramaddr+i4 | y2ramaddr+i);lcd5110setxy(addr, row+2);/ 列,页for (i=localhalfwidth; ilocalfullwidth;i+) /下半部分 12个像素lcd5110writedta(ascii8x12dat*localfullwidth+i4);4.2.2 中文字符的实现根据点阵来实现显示中文的功能,如图是12*12的点阵。图4-3 12*12点阵void disponechs12x12(uchar row,addr,uchar *p)uchar i, localhalfwidth,localfullwidth; /半宽字体,全宽字体if (row=0)/按照4行显示,首行为0,地址就是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妇产科产后出血预防性护理常规
- 总装流水线产能负荷分析报告
- 2026年普通高等学校招生全国统一考试康德调研(五)地理+答案
- 物流输送线更换周期管理制度
- 机加车间成品包装稳定性检验规范
- 焊接线热输入稳定性控制制度
- 高考地理评分细则能给我们哪些启示
- 2026年思想政治工作调研报告(2篇)
- 入职报告、个人自述报告、个人简历简介(2篇)
- 济源市廉洁方面谈心谈话制度
- 小学语文阅读教学中情境教学法应用
- 工厂6S管理标准
- 《新能源发电与控制技术 第4版》 课件 第1章 新能源发电与控制技术导论
- DL-T5418-2009火电厂烟气脱硫吸收塔施工及验收规程
- (高清版)JTG D50-2017 公路沥青路面设计规范
- 安全隐患排查及整改制度
- 2024年福建烟草海晟投资管理有限公司招聘笔试参考题库附带答案详解
- 人教版小学四年级信息技术上册知识点整理与归纳
- 2024年新华文轩出版传媒股份有限公司招聘笔试参考题库含答案解析
- 小学语文文言文教学策略
- 《肿瘤分子生物学》课件
评论
0/150
提交评论