武汉理工大学环境温度测试例程设计说明_第1页
武汉理工大学环境温度测试例程设计说明_第2页
武汉理工大学环境温度测试例程设计说明_第3页
武汉理工大学环境温度测试例程设计说明_第4页
武汉理工大学环境温度测试例程设计说明_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学 号:课 程 设 计题 目环境温度测试学 院计算机科学与技术学院专 业计算机科学与技术班 级姓 名指导教师2013年6月26日计算机硬件综合设计任务书学生: 专业班级:指导教师: 学院名称:计算机科学与技术学院课程设计题目: 环境温度测试题 目: 环境温度测试例程设计初始条件:1. 课程设计使用ZG211硬件综合实验平台(8051单片机),配有课程设计接口芯片和辅助芯片以与器件;2. ZG211有程序设计集成开发环境,程序设计语言为C语言;3. ZG211硬件综合实验平台使用说明书;要求完成的主要任务: (包括课程设计工作量与其技术要求,撰写说明书具体要求)1. 学习使用ZG211硬件综合实

2、验平台,程序设计集成开发环境;2. 根据课程设计题目,进行需求分析,搞清楚课程设计需要设计需求和需要解决的设计容。3. 查阅和学习课程设计题目需要的接口芯片资料,掌握接口芯片的使用方法和编程要领。查阅和学习课程设计题目需要的辅助芯片以与器件资料。4. 设计接口芯片和辅助芯片以与器件与8051单片机连接硬件电路原理图。5. 设计与硬件电路原理图对应的C语言程序(或8051汇编语言)。给出程序流程图。在集成开发环境中调试程序。给出程序的详细注释。能够解释使用程序模拟电路时序信号和数据。6. 撰写课程设计报告,1)详细述以上的设计过程;2)详细述电路的调试过程。时间安排:第17周:1. 熟悉ZG21

3、1硬件综合实验平台,KEILC UVISION2集成开发环境;查阅接口芯片资料,熟悉接口芯片和它的使用方法。2. 设计硬件电路原理图,。第18周:1. 使用C语言或汇编语言设计和调试接口程序。2. 撰写计算机硬件综合设计报告。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日环境温度测试1 实验目的应用计算机组成原理、数字逻辑、微机原理与接口技术、单片机原理、C语言程序设计等相关专业知识来学习和使用ZG211 实验板的使用方法、Keilc51在线编程软件环境。使用CH451芯片来进行数码显示和键盘扫描控制,设计实现温度测试功能。掌握对单片机 IO 口的操作,与中断的应用;掌握显示

4、接口芯片 CH451 的应用;了解单总线操作方式,以提高实际动手能力。 这次实验需要掌握IO口操作,掌握显示与键盘芯片的运用;了解中断的运用以与了解单总线操作。2 实验接口芯片与辅助器材2.1 DS18B20DS18B20是新一代支持“一线总线”接口的温度传感器芯片,将电源和信号复合在一起;其测温围为-55+125,允许分辨率可调912位,工作电压为3v5v,在-10+85围,精度为±0.5。该芯片将温度探头与A/D转换模块集成在一起,同时采用单总线与CPU通信,简化了电路设计。借助Rational Rose绘制的芯片原理图如下:由该原理图不难发现,DS18B20芯片包括3个引脚,引

5、脚说明如下图所示:引脚符号说明1VDD电源2DQ数据输入/输出脚3GND地DS18B20通过一种片上温度测量技术来测量温度的,借助visio绘制芯片测量温度的方框图,如下: DS18B20是这样测量温度的:利用一个高温度系统的振荡器确定一个门周期,部计数器在这个门周期对一个低温度系数的振荡器的脉冲进行技术来得到温度值。计数器被预置到对应于-55的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55)的值增加,表明温度大于-55,同时计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿敢问振荡器的抛物线特性。然后计数器又开始计数直到0,如果门周期仍未结

6、束,将重复这一过程。斜坡式累加器用来补偿感温振荡器的非线性,以在测温时获得比较高的分辨力,这是通过改变计数器对温度每增加一度所需要计数的值来实现的。2.2 CD4052由于89S52上的I/O口资源有限,DS18B20的I/O口通过4通道数字控制模拟开关CD4052接到单片机的I/O口上。该芯片是一个差分四通道数字控制模拟开关,有A和B两个二进制控制输入端和一个INH 输入,具有低导通阻抗和很低的截止漏电流。以下是采用Rational Rose绘制的CD4052原理图:CD4052功能说明如下表:AB选通状态00X=X0;Y=Y010X=X1;Y=Y101X=X2;Y=Y211X=X3;Y=Y

7、32.3 CH451CH451 是一个整合了数码管显示驱动和键盘扫描控制以与P 监控的多功能外围芯片,该课题设计开发中我们仅需使用数码管显示驱动和键盘扫描控制功能。在显示驱动上,动态显示扫描控制,可选数码管的段与数据位相对应的不译码方式或者BCD 译码方式;在键盘扫描控制上,低电平输出产生键盘中断,并且提供键盘按键释放标志位。借助Rational Rose绘制的串行接口原理图如上所示。由以上原理图可以看到左侧有四个引脚,功能如下:LOAD用于串行接口的数据加载;DIN用于串行数据的输入;DCLK是串行接口的数据时钟;DOUT用于串行数据的数据输出与键盘中断。其中,DIN、DCLK、LOAD 是

8、带上拉的输入信号线,默认是高电平;DOUT 在未启用键盘扫描功能时作为串行数据输出线,在启用键盘扫描功能后作为键盘中断和数据输出线,默认是高电平。DIN按位从低至高输入每一个数据位,在CH451上电复位后必须给它一个负脉冲以使能4线串行接口。DCLK是DIN数据输入的时钟,在其下降沿将数据从寄存器打出,在其上升沿将数据打入寄存器,因而借助以上原理图不难理解寄存器组移位的原理。在经过DCLK的12个负脉冲后,D0D11则从低位至高位依次存放了我们从DIN打入的数据。LOAD是串行数据帧的完成标志,在LOAD的上升沿,12位数据(不管是否有效)被打入命令寄存器。当DOUT(默认高电平)发出低电平进

9、行中断请求后,我们可以向CH451发送读键盘按键代码命令,此时按键代码(共7位)的最高位K6被发送至DOUT,之后向DCLK发送负脉冲。以一样方式将剩余的低6位按键代码读出。在此次课题设计中将使用到的对CH451进行操作的命令如下表所示:操作命令位11109876543210设置系统参数010000000WDOGKEYBDISP设置显示参数0101MODELIMITINTENSITY加载字数据01000DIG_DATA, DIG0 对应的字数据加载字数据11001DIG_DATA, DIG1对应的字数据加载字数据21010DIG_DATA, DIG2对应的字数据加载字数据31011DIG_DA

10、TA, DIG3对应的字数据加载字数据41100DIG_DATA, DIG4对应的字数据加载字数据51101DIG_DATA, DIG5对应的字数据加载字数据61110DIG_DATA, DIG6对应的字数据加载字数据71111DIG_DATA, DIG7对应的字数据读取按键代码0111××××××××由上表可以看到读取按键代码的操作命令为12位,但是只有高四位是有效位,因而当我们通过DIN向CH451输入高四位后,便可以通过LOAD发出一个负脉冲将12位数据打入命令寄存器。设置系统参数命令用于设置CH451的系统

11、级参数:看门狗使能WDOG,键盘扫描使能KEYB,显示驱动使能DISP;当相应位置为1时表示使能,否则表示禁用,我们在系统实现中使用了键盘扫描使能和显示驱动使能,即相应命令为:0X403。设置显示参数命令用于设置CH451的显示参数:译码方式MODE,扫描极限LIMIT,显示亮度INTENSITY;同样,当相应位置为1时表示使能,否则表示禁用。下表描述的则是在该课题设计实现中需要用到的命令位与相应段与显示字符的对应显示关系表: 位4位0段G段A显示的字符00000B0111111B000001B0000110B100010B1011011B200011B1001111B300100B11001

12、10B400101B1101101B500110B0000111B600111B1111111B701000B1101111B801001B1110111B910000B0000000B空格10010B1000000B- 负号减号2.4 MCU 89S5289S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器,在设计实现中我们使用到了P15、P32、P33和P34口,另外P10、P11、P12和P13已置到相对应的口。寄存器中各个位的含义如下表:MSBLSBEAET2ESET1EX1ET0EX0寄存器中各个位的功能如下,课题设计中我们只使用到了EA和EX0,

13、EX0控制的是键盘按键的外部中断:符号位地址功能EAIE.7中断总允许控制位。EA=0,中断总禁止;EA=1,各中断由各自的中断控制位决定IE.6预留ET2IE.5定时器2中断允许控制位ESIE.4串行口中断允许控制位ET1IE.3定时器1中断允许控制位EX1IE.2外部中断1允许控制位ET0IE.1定时器0中断允许控制位EX0IE.0外部中断0允许控制位2.5 其他除了上述比较关键的硬件之外,尚需以下设备:主板带有并口的PC机一台、ZG-211单片机系统实验板一块、实验连接线5根、并行编程线一根、配套9V电源适配器一个。3 实验要求3.1 能正常操作LED 数码显示;3.2 能通过中断方式接

14、收按键信息;3.3 能通过单总线方式与DS18B20芯片交换数据;3.4 息能正确解释从DS18B20芯片取出的温度数据。4 实验原理上图使用visio绘制的温度测试系统原理图,设计实现中采用了CD4052的X1输入口,将X1与DS18B20的DQ口进行连接,用于向DS18B20发送命令和读取温度数据。P12、P13分别连接至A和B,用于控制选择与X和Y连通的输入通道。P10、P11分别连接至X和Y,89S52通过P10与DS18B20进行交互,而P11在实现中并没有用到。P34、P15、P33分别连接至LOAD、DCLK、DIN,用于向CH451发送数据,而P32连接至DOUT,主要用于接受

15、DOUT产生的键盘按键中断请求,获取按键代码。5 实验步骤5.1 硬件连接首先将ZG-211实验板的总开关(位于左下角)关闭,将实验板的六个支架固定好以保护反面的焊点;然后参照以上给出的原理图进行连线;然后将并行编程线一端连接至PC机主板上的并口,另一端连接至ZG-211实验板左侧的并口;最后检查无误后,将电源适配器的输出端连接至ZG-211左下角的电源输入插座。5.2 软件设计软件设计包括4个部分:常量定义部分、数码管操作部分、温度获取部分、主函数,分别介绍如下:5.2.1 常量定义常量定义主要是考虑到程序的易读性和可维护性,其中包括软件设计中需要用到的一些引脚地址、特殊寄存器地址、特殊寄存

16、器位地址、初始化命令以与操作命令等。5.2.2 数码管操作该部分操作函数包括:延时、向CH451发送数据、键盘按键中断响应例程、数码管显示测试、数码管温度显示。由于中断响应例程在该部分中,所以按键代码key_data必须声明为extern,表明该变量在其它模块中,相当于一个全局变量。5.2.3 温度获取该部分操作包括:DS18B20复位、从DS18B20读取一位与一个字节、向DS18B20写入一位与一个字节、从DS18B20获取温度并计算为十进制形式。为了方便实现温度转换,我们将各个位对应的权值按高低字节定义在了两个数组中。考虑到节省空间,我们将其定义为code,放在ROM区。由于很多函数中使

17、用了空指令_nop_();因而需要包含头文件intrins.h。5.2.4 主函数首先定义一个存放按键代码的char型变量key_data,初始化为0。主函数的主要工作流程是:MCU开中断、数码管显示测试、进入无限循环、如果key_data等于0X64,即最左边的一个键盘按键,则将key_data清零,并获取温度并显示至数码管。6 实验结果6.1接线与结果显示18 / 186.2检测硬件6.2设置89S52芯片特征字6.3打开.hex文件6.4擦除ROM中原有容6.5写入ROM7 程序说明/*|函数名GetTemperat|函数功能利用18B20芯片检测温度,并在LED上显示|参数无|返回值温

18、度|*/unsigned char GetTemperat()unsigned char temp2;unsigned char temperat_C;unsigned char i;while(Reset_18B20(); /复位等待从机应答 write_byte_18B20(0xCC);/忽略ROM匹配 write_byte_18B20(0x44);/发送温度转化命令 delay_1ms(500);/延时 while(Reset_18B20(); /再次复位,等待从机应答 write_byte_18B20(0xCC);/忽略ROM匹配 write_byte_18B20(0xBE);/发送读

19、温度命令 temp0 = read_byte_18B20();/读出温度低8位temp1 = read_byte_18B20();/读出温度高8位 DQ_HIGH();/释放总线 temperat_C = 0;for(i=0; i<3; i+)temperat_C += (temp1&(1<<i)>>i)*temperat_table_Hi;for(i=4; i<8; i+)temperat_C += (temp0&(1<<i)>>i)*temperat_table_Li;return(temperat_C);/*|函

20、数名Display_TEST|函数功能测试显示LED数码管|参数无|返回值无|*/void Display_TEST()/初始化显示芯片disp_initialize();/延时delay_1ms(100);/送显“12345678”send_disp_data( CH451_LOAD0, 0x01);send_disp_data( CH451_LOAD1, 0x02);send_disp_data( CH451_LOAD2, 0x03);send_disp_data( CH451_LOAD3, 0x04);send_disp_data( CH451_LOAD4, 0x05);send_dis

21、p_data( CH451_LOAD5, 0x06);send_disp_data( CH451_LOAD6, 0x07);send_disp_data( CH451_LOAD7, 0x08);delay_1ms(200);/延时delay_1ms(200);/开中断,接受按键信息EX0=1;/"-"send_disp_data( CH451_LOAD0, 0x12);send_disp_data( CH451_LOAD1, 0x12);send_disp_data( CH451_LOAD2, 0x12);send_disp_data( CH451_LOAD3, 0x12)

22、;send_disp_data( CH451_LOAD4, 0x12);send_disp_data( CH451_LOAD5, 0x12);send_disp_data( CH451_LOAD6, 0x12);send_disp_data( CH451_LOAD7, 0x12);/*|函数名display_int|函数功能显示一个整数|参数无|返回值无|*/void display_int(unsigned int m)send_disp_data( CH451_LOAD0, 0x10);send_disp_data( CH451_LOAD1, 0x10);send_disp_data( CH451_LOAD2, 0x10);if (m/10000)send_disp_data( CH451_LOAD3, m/10000);elsesend_disp_data( CH451_LOAD3, 0x10);if (!(m/1000)%10)&&(!(m/10000)send_disp_data( CH451_LOAD4, 0x10);elsesend_disp_data( CH451_LOAD4, (m/1000)%10);send_disp_data( CH451_LOAD5, (m/100)%10);send_disp_data( CH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论