基于单片机的双路信号检测系统综合设计_毕业设计(编辑修改稿)内容摘要:

位置写入数据  主程序部分  流程图 与“总的系统流程图类似”,这里就不再画出,请见第 7 页  较特殊的处理方法  就是通过一个循环,不断检测 按键值,并且通过 key的值实现不同的操作  在温度和电压交替显示时,我们使用了变量 counter,以此将延时的时间变长,当 counter在 03时显示温度,当 counter在 312时显示电压。 四. 系统调试 ( 1) 硬件调试  SmartSOPC 实验箱 SmartSOPC 多功能教学实验开发平台集众多种功能于一体,是 SOPC、 EDA、 DSP、 ARM、 ARM7 SOC 以及 51 教学实验、科研开发的最佳选择。 开发平台采用核心板加主板的结构,更换核心板即可实现不同的功能。 SmartSOPC 多功能教学实验开发平台标配一台 LA1024 高性能逻辑分析仪。 LA1024 分析仪是集逻辑分析仪、总线分析仪、逻辑笔等多种测量开发仪器于一身,是嵌入式系统开发利器、数字电路设计好帮手。 基于标配 QuickSOPC 核心板的开发平台可进行 SOPC、 EDA、 DSP 的开发和实验。 与一般的实验箱不同, SmartSOPC 主板上大部分外设都不需要进行跳线设置,做实验时方便简单;此外每个外设的信号都设置了测试点,方面用户使用逻辑分析仪进行信号测量。 13 一切为设计为用户考虑是本开发平台的出发点。 考虑到核心板对用户的 实用性,各核心板 (Quick51 除外 )除设计最小系统外,还设计有按键、 LED 以及电源插座等。 用户通过在用户扩展 PACK 上实现自己的功能电路(如主板上的某部分电路),核心板就能脱离主板而单独使用,这样核心板可用于用户自己的设计中,亦可用于电子设计大赛。  Quick51 核心板 Quick51 核心板是与 SmartSOPC 相配套的 8051 单片机核心板。 Quick51 核心板是一款自由的,开放全部系统资源的单片机实验板。 单片机芯片采用 philips 最新推出的拥有 64KB Flash 的增强型 8052 内 核单片机 P89LV51RD2,工作电压。 Quick51核心板和 SmartSOPC 结合,可以完成各种实验,本次实验也是基于这两个硬件的基础之上完成的。  跳线的连接情况 基本跳线设置: 电压检测的跳线设置: SmartSOPC 实验箱 B2 区 JP6 的跳线全部断开; Quick51 实验板 J14 的 PBLE 用杜邦线连接到 J9; Quick51 实验板的 P1 端口用 8 芯排线连接到 SmartSOPC 实验箱 B3 区的 COM6; Quick51 的 J11( PB端口)用 8 芯排线连接到 SmartSOPC 实验箱 B3 区的 COM3; Quick51 实验板 J5 的 /INT0 用杜邦线连接到 SmartSOPC 实验箱 D4 区的 nCS; Quick51 实验板 J5 的 /INT1 用 杜邦线连接到 SmartSOPC 实验箱 D4 区的 DAT; Quick51实验板 J5的 T0用杜邦线连接到 SmartSOPC实验箱 D4区的 CLK。 温度测试的跳线设置: 请参照《 Quick51 跳线设置表》检查 Quick51 电路板上跳线 JP1~ JP7 是否为默认设置; SmartSOPC 实验箱 C2 区的 SCL 用杜邦线连接到 Quick51 实验板 J5 的 RXD; SmartSOPC 实验箱 C2 区的 SDA用杜邦线连接到 Quick51 实验板 J5 的 TXD; 跳线编号 跳线名称 跳线接法 功能描述 JP1 /EA 跳线 VCC 与 /EA 短接(默认) 执行存储于片内Flash 的程序 /EA 与 GND 短接 执行存储于片外Flash 的程序 JP2 /PSEN 跳线 /PSEN 与 GND 断开(默认) 正常模式 /PSEN 与 GND 短接 用于某些型号单 片机的 ISP 下载 JP3 复位跳线 WDT 与 RST 短接 看门狗复位 RST 与 RC 短接(默认) 阻容复位 JP4~ JP6 Flash 扩展地址跳线 A16~ A18 全接 GND(默认) 不使用扩展地址( 64KB 以内) A16~ A18 分别接 P10~ P12 使用扩展地址(可达512KB) JP7 串行口跳线 RXD 短接、 TXD 短接(默认) RXD、 TXD 用于串行口通信 RXD 断开、 TXD 断开 RXD、 TXD 可作为I/O 使用 14 Quick51 实验板 J14 的 PBLE 用杜邦线连接到 J9; Quick51 实验板的 P1 端口用 8 芯排线连接到 SmartSOPC 实验箱 B3 区的 COM6; Quick51 的 J11( PB端口)用 8 芯排线连接到 SmartSOPC 实验箱 B3 区的 COM3; SmartSOPC 实验箱 B2 区 JP6 的跳线全部断开。 ( 2) 软件调试  按键 0 数码显示管全部显示“ p”  按键 1 数码管上显示出当前的电压采样结果,单位:伏特( V)。 轻轻左右旋动 SmartSOPC实验 箱 D4 区的电位器,改变 ADC 采样电压,数码管上显示的结果会跟着变化。 同时用万用表测量焊盘 ADIN 处的电压值,与显示结果对比,看是否基本一致。  按键 2 SmartSOPC实验箱 B3区的数码管实时地显示出当前温度,单位:℃。  按键 3 电压值与温度值交替显示  按键 8 数码显示管全部显示“ p” 五. 附录 ( 1)主程序 include include include include include include //定义 TLC549操作接口 sbit CS = P3^2。 sbit DAT = P3^3。 sbit CLK = P3^4。 // sbit KEY1=P2^0。 sbit KEY2=P2^1。 sbit KEY3=P2^2。 sbit KEY8=P2^7。 unsigned char key。 unsigned int counter。 /***************************************************************** 温度检测函数模块 *****************************************************************/ /* 函数: LM75A_GetTemp 功能:读出 LM75A的温度值 返回: LM75A温度寄存器的数值(乘以 可得到摄氏度值) */ int LM75A_GetTemp() { unsigned char buf[2]。 int t。 I2C_Gets(0x90,0x00,2,buf)。 t = buf[0]。 t = 8。 t += buf[1]。 t = 5。 //去掉无关位 return t。 } /* 函数: ByteToStr() 功能:字节型变量 c转换为十进制字符串 */ void ByteToStr(unsigned char idata *s, unsigned char c) { code unsigned char Tab[] = {100,10}。 unsigned char i。 unsigned char t。 15 for ( i=0。 i2。 i++ ) { t = c / Tab[i]。 *s++ = 39。 039。 + t。 c = t * Tab[i]。 } *s++ = 39。 039。 + c。 *s = 39。 \039。 } /* 函数: DispTemp() 功能:在数码管上显示出温度值 参数: t:补码,除以 8以后才是真正温度值 */ void DispTemp(int t) { code unsigned char Tab[8]=01345689。 unsigned char buf[4]。 bit s。 //符号位 unsigned char i。 //整数部分 unsigned char d。 //小数部分 unsigned char x。 //临时变量 //分离出符号 s = 0。 if ( t 0 ) { s = 1。 t = t。 } //分离出整数和小数部分 i = t / 8。 d = t % 8。 //整数部分转换成字符串 ByteToStr(buf,i)。 x = 4 strlen(buf)。 //清除所有显示 DispClear()。 //显示符号 if ( s ) DispChar(x,39。 39。 )。 x++。 //显示整数部分 //if(buf[0]==0) //{ x+=3。 buf[0]=buf[1]。 buf[1]=buf[2]。 buf[2]=39。 \039。 //} DispStr(x5,buf)。 //显示小数点 DispDotOn(1)。 //显示小数部分 DispChar(2,Tab[d])。 } /***************************************************************** tl549函数模块 *****************************************************************/ /* 函数: ReadAdc() 功能:读取 A/D转换结果 返回: 8位 ADC代码 */ unsigned char ReadAdc() { unsigned char d。 unsigned char n。 CS = 0。 n = 5。 while ( n != 0 )。 n = 8。 do { d = 1。 if ( DAT ) d++。 CL。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。