第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。
3.LCD1602内部的控制器共有11条控制指令,如表3.4所示。
表3.4 控制命令表
序号 指令 1 2 3 4 5 6 7 8 9 10 清显示 光标返回 置输入模式 显示开/关控制 光标或字符移位 置功能 置字符发生存贮器地址 置数据存贮器地址 读忙标志或地址 写数到CGRAM或DDRAM) 从CGRAM或DDRAM读数 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 D 0 1 1 * I/D S C B * * S/C R/L * F * DL N 字符发生存贮器地址 显示数据存贮器地址 BF 计数器地址 要写的数据内容 11 1 1 读出的数据内容 3.5 数字温度计DS18B20
数字温度计DS18B20提供 9 位温度读数,指示器件的温度信息经过单线接口送入 DS18B20 或从 DS18B20 送出因此从中央处理器到 DS18B20 仅需连接一条线和地
读写和完成温度变换所需的电源可以由数据线本身提供
而不需要外部电源其拥有以下等特性 独特的单线接口只需1个接口引脚即可通信 多点multidrug能力使分布式温度检测应用得以简化 不需要外部元件 可用数据线供电 不需备份电源
测量范围从-55至+125257F 增量值为0.9F
以 9 位数字值方式读出温度
在 1 秒典型值内把温度变换为数字 用户可定义的非易失性的温度告警设置
告警搜索命令识别和寻址温度在编定的极限之外的器件温度告警情况 应用范围包括恒温控制工业系统消费类产品温度计或任何热敏系统
引脚说明 GND
图3.8 DS18B20温度温度计
DQ
增量值为 0.5等效的华氏温度范围是-67F至
地
数字输入输出
VDD 可选的 VDD NC
DNC
空引脚 不连接
4 系统软件设计
系统软件的设计,它所需要完成的主要是针对系统功能的实现及数据的处理和应用。
4.1 超声波测距时序
超声波测距时序图如图4.1所示。
图4.1 超声波测距时序图
以上时序图表明你只需要提供一个10uS以上脉冲触发信号,该模块内部将发出 8 个 40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信号,回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号 时间间隔可以计算得到距离。
注:1、此模块不宜带电连接,若要带电连接,则先让模块的 GND 端先连接,否则会影响 模块的正常工作。
2、测距时,被测物体的面积不少于 0.5 平方米且平面尽量要求平整,否则影响测量的结果
4.2 主程序设计
主程序是单片机程序的主体,整个单片机端系统软件的功能的实现都是在其中完成的,主程序流程图如图4.2所示。
开始
LCD显示结果
图4.2 主程序流程图
计算距离 发送超声波脉冲 系统初始化 等待反射超声波脉冲 主程序如下 void main(void) {
unsigned int valA,tempe=0,tempe1=0; unsigned char TempCyc; //play = 0;
Delay400Ms(); //启动等待,等LCM讲入工作状态 LCMInit(); //LCM初始化 // // // //
Delay5Ms(); //延时片刻(可不要) DisplayListChar(0, 0, mcustudio); DisplayListChar(0, 1, email); ReadDataLCM();//测试用句无意义
for (TempCyc=0; TempCyc<10; TempCyc++) Delay400Ms(); //延时 //DisplayListChar(0, 1, Cls); TMOD=0x01; TH0=0;
TL0=0;
ET0=1; //允许T0中断 EA=1;
//开启总中断
//设T0为方式1,GATE=1;
Init_DS18B20(); {
// tempe=ReadTemperature(); //读温度
tempe=ReadTemperature(); //读温度 WriteCommandLCM(0x80,1); WriteDataLCM('T');
WriteCommandLCM(0x81,1); WriteDataLCM('=');
WriteCommandLCM(0x82,1); WriteDataLCM(tempe/100+0x30); WriteCommandLCM(0x83,1);
WriteDataLCM(tempe/10-tempe/100*10+0x30); WriteCommandLCM(0x84,1); WriteDataLCM('.');
WriteCommandLCM(0x85,1); while(1)
WriteDataLCM(tempe-(tempe/100)*100-(tempe/10-tempe/100*10)*10+0x30);
WriteCommandLCM(0x86,1); WriteDataLCM('C');
////////////////
tempe1=ReadTemperature1(); //读温度 WriteCommandLCM(0x88,1); WriteDataLCM('T');
WriteCommandLCM(0x89,1); WriteDataLCM('=');
WriteCommandLCM(0x8a,1); WriteDataLCM(tempe1/100+0x30); WriteCommandLCM(0x8b,1);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的倒车雷达设计学士学位毕业论文 - 图文(4)在线全文阅读。
相关推荐: