硬件电路设计智能仪器实验报告精要.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
硬件电路设计智能仪器实验报告精要

洛阳理工学院实验报告 系别 计算机系 班级 B140502 学号 姓名 韩亚辉 课程名称 单片机原理及应用 实验日期 2016/06/11 实验名称 硬件电路设计智能仪器 成绩 实验目的: 完成综合设计实验,学会信号采集、数据处理、键盘控制、LCD或LED显示等功能的智能仪器设计,了解其显示模式与应用 实验条件:计算机一台、ISIS、uVision3编译软件、实验箱 实验内容与步骤: 一.实验要求: 通过数字采集系统中模拟输入通道的硬件电路,实现模拟信号的信号采集、数据处理和显示。 二.实验步骤: (1)设计硬件电路,包括检测电路、信号调理电路、AD转换电路、单片机最小系统、LED显示(单号)、LCD显示(双号)、独立式按键,画出电路原理图。 (2)在草稿纸上画出大致的流程图。 (3)用Keil C51编写程序。 (4)实验结果在LCD或LED上显示出来。 三、实验原理及结果: 实验图原理: 由ADC0808的通道0接入100m的正弦波作为输入信号,以通用I/O口方式与单片机连接,数据并行输出至单片机的P1口,4个控制端口CLOCK、START、EOC、OE分别接入P2.4-P2.7,采用查询方式等待转换结束,转换始终利用定时器中断产生。4个控制按键通过74LS164与单片机连接。74LS254一端与单片机P0口连接,另一端与7SEG-MPX4-CC连接显示输出。 程序原理: 程序主要由3个模块组成: 控制模块,进行监控采样;菜单模块,进行参数设置;按键检测模块,检测按键状态。在3个主模块的基础上又由其他部分同时完成。 四、实验程序代码: #include reg51.h void ad_init(); void control_thread(); void menu_thread(); void main() { ad_init(); while (1) { menu_thread(); control_thread(); } } 控制模块代码control.c: #include reg51.h sbit P16=P1^6; sbit P17=P1^7; unsigned char ad(); void print(char name, unsigned int value); extern unsigned char param_value[2]; extern char menu_status; void control_thread() { //第1步:A/D转换 unsigned char value = ad(); //第2步:根据采样值控制LED灯 if (value param_value[1]) { P16 = 0; P17 = 1; } else if (value = param_value[1] value = param_value[0]) { P16 = 0; P17 = 0; } else { P16 = 1; P17 = 0; } //第3步:如果菜单是关闭的,显示采集到的数值 if (menu_status == 1) { print( , value); } } 菜单模块代码menu.c: #define MENU_ON 0 #define MENU_OFF 1 #define MENU_NUM 2 #define MENU_MAX 999 #define MENU_MIN 0 unsigned char param_value[] = {100, 150}; unsigned char menu_status = MENU_OFF; char _menu_name[] = {L,H}; //参数名的符号 unsigned char _menu_value[] = {0,0}; //供显示用的参数数组 unsigned char _menu_idx = 0; //参数序号 char get_key(); void print(char name, unsigned int value); void menu_thread(void) { char i = 0; char key = get_key(); if (menu_status == MENU_OFF) { //当前菜单为关闭状态时 if (key == 0) { //若按键0已被按下 menu_status = MENU_ON; //置当前菜单为打开状态 _menu_idx = 0

您可能关注的文档

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档