基于单片机实现的数字电压表温度计设计

上传人:jiups****uk12 文档编号:40158270 上传时间:2018-05-24 格式:DOC 页数:16 大小:553.50KB
返回 下载 相关 举报
基于单片机实现的数字电压表温度计设计_第1页
第1页 / 共16页
基于单片机实现的数字电压表温度计设计_第2页
第2页 / 共16页
基于单片机实现的数字电压表温度计设计_第3页
第3页 / 共16页
基于单片机实现的数字电压表温度计设计_第4页
第4页 / 共16页
基于单片机实现的数字电压表温度计设计_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《基于单片机实现的数字电压表温度计设计》由会员分享,可在线阅读,更多相关《基于单片机实现的数字电压表温度计设计(16页珍藏版)》请在金锄头文库上搜索。

1、电子信息科学系单片机实验 设计报告设计题目设计题目: 数字电压表、温度计 专专 业:业: 09 通信工程 1 班 学生姓名学生姓名: : 高诗 指导教师指导教师: 徐宏宏 单片机实验设计报告2摘摘 要要:本课题主要采用 AT89S51 芯片和 ADC0809 芯片来完成一个简易的数字电压表,能够对输入的 05V 的模拟直流电压进行测量,并通过一个 4 位一体的 7 段 LED 数码管进行显示,测量误差约为 0.02V。该电压表的测量电路主要由三个模块组成:A/D 转换模块、数据处理模块及显示控制模块。A/D 转换主要由芯片 ADC0809 来完成,它负责把采集到的模拟量转换为相应的数字量再传送

2、到数据处理模块。数据处理则有芯片 AT89S51 来完成,其负责把ADC0809 传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着 ADC0809 芯片的工作。显示模块主要由 7 段数码管及相应的驱动芯片(74HC245)组成,显示测量到的电压值。关键词关键词:简易数字电压表、ADC0809、AT89S51。 单片机实验设计报告3目目 录录一一总体设计总体设计.41.1.电路设计电路设计.41.11.1 基础设计基础设计.41.21.2 分频设计分频设计.52.2.程序设计程序设计.5二二系统测试系统测试.141.1.测试仪器测试仪器.142.2.测试过程测

3、试过程.142.12.1 测试条件测试条件.142.22.2 测试结果测试结果.153.3.结果分析结果分析.16三三设计总结设计总结.16四四参考文献参考文献.16单片机实验设计报告4一一总体设计总体设计1.1.电路设计电路设计1.11.1 基础设计基础设计利用单片机上的 P0 作为液晶的数据口,P0-2 作为液晶的控制口线。利用 P2 口采集 0809 转换结束后的数据, P34; P33; P32,P17 分别作为 0809 的控制口线 OE,EOC,START,ALE, P16; P15; P14;作为0809 的 c,b,a 输入通道选择, P37,P36, P35 作为按键控制08

4、09 的通道选择。 图 1单片机实验设计报告51.21.2 分频设计分频设计通过对单片机的 30 引脚 ALE 输出 2MHz 的时钟信号 4 分频,产生500KHz 的时钟信号作为 0809 的制作频率,这里我们采用 74LS74 实现4 分频图 22.2.程序设计程序设计#include #include #includetypedef unsigned int uint;typedef unsigned char uchar; /*/*IO 引脚定义*/sbit LCD_RS=P10;/定义引脚sbit LCD_RW=P11;sbit LCD_E=P12;单片机实验设计报告6/*宏定义*

5、/#define LCD_Data P0#define Busy 0x80 /用于检测 LCD 状态字中的 Busy 标识/*函数声明*/void WriteDataLCD(unsigned char WDLCD);/写数据void WriteCommandLCD(unsigned char WCLCD,BuysC);/写命令unsigned char ReadDataLCD(void);/读数据unsigned char ReadStatusLCD(void);/读状态void LCDInit(void);/初始化void DisplayOneChar(unsigned char X, un

6、signed char Y, unsigned char DData);/相应坐标显示字节内容void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData); /相应坐标开始显示一串内容void Delay5Ms(void);/延时void Delay400Ms(void);/延时/*写数据*/void WriteDataLCD(unsigned char WDLCD)ReadStatusLCD(); /检测忙LCD_Data = WDLCD;LCD_RS = 1;LCD_RW = 0;LCD_

7、E = 0; /若晶振速度太高可以在这后加小的延时LCD_E = 0; /延时LCD_E = 1;单片机实验设计报告7/*写指令*/void WriteCommandLCD(unsigned char WCLCD,BuysC) /BuysC 为 0 时忽略忙检测if (BuysC) ReadStatusLCD(); /根据需要检测忙LCD_Data = WCLCD;LCD_RS = 0;LCD_RW = 0; LCD_E = 0;LCD_E = 0;LCD_E = 1; /*读数据*/unsigned char ReadDataLCD(void)LCD_RS = 1; LCD_RW = 1;L

8、CD_E = 0;LCD_E = 0;LCD_E = 1;return(LCD_Data);/*读状态*/unsigned char ReadStatusLCD(void)单片机实验设计报告8LCD_Data = 0xFF; LCD_RS = 0;LCD_RW = 1;LCD_E = 0;LCD_E = 0;LCD_E = 1;while (LCD_Data /检测忙信号return(LCD_Data);/*初始化*/void LCDInit(void)LCD_Data = 0;WriteCommandLCD(0x38,0); /三次模式设置,不检测忙信号Delay5Ms(); WriteCommandLCD(0x38,0);Delay5Ms(); WriteCommandLCD(0x38,0);Delay5Ms(); WriteCommandLCD(0x38,1); /显示模式设置,开始要求每次检测忙信号WriteComm

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号