11级_单片机课程设计_学生.doc_第1页
11级_单片机课程设计_学生.doc_第2页
11级_单片机课程设计_学生.doc_第3页
11级_单片机课程设计_学生.doc_第4页
11级_单片机课程设计_学生.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

基于DS18B20和STC12C单片机的高精度温度计11级_单片机课程设计指导老师:廖迎新设计题目:高精度电子温度计设计要求:利用单片机STC12C5608AD、温度传感器DS18B20和数码块等,设计一个智能温度检测器。元件清单:元件型号、参数图中标号数量10uF电解电容C5,C7,CR130.1 uF电容C6,C823位单排针座CON3139 pF 电容(贴片)CY1,CY22发光二级管D1713位单排针座(DS18B20)JK112位共阴数码块LED1, LED222位单排针座(电源)POWER118050 NPN三极管Q2,Q3,Q4,Q5410kW/5.1kW 电阻(贴片)R17,RST1321kW电阻RS1,RS2,RST2,RST3,RST9,RST106510W 电阻RST1,RST4,RST5,RST6,RST7,RST8,RST11,RST12, R189拨动开关S11复位按钮ST11STC12C5608ADU21STC12C5608AD插座1个12MHz 晶振Y11电源线1根下载器1个硬件电路:程序设计:1、数码块驱动 STC12C5410AD单片机上电复位后为准双向口/弱上拉模式,2V以上为高电平,0.8V以下为低电平。每个I/O口驱动能力可达20mA,但整个芯片不得超过55mA(或90mA)。I/O口工作方式设定如下(n=3,2,1,0)P3M07:0P3M17:0I/O口模式00准双向口01强推挽输出10仅输入11开漏l P3寄存器可位寻址,P3M1、P3M0不可位寻址。P2口设定:P2M1,P2M0。P2寄存器可位寻址,P2M1、P2M0不可位寻址。P1口设定:P1M1,P1M0。P1寄存器可位寻址,P1M1、P1M0不可位寻址。P0口设定:P0M1,P0M0。P0寄存器可位寻址,P0M1、P0M0不可位寻址。P2M0=0x00; /P2口设为推挽模式,提高数码块亮度P2M1=0xff;P3M0=0x00; /P3口设为推挽模式P3M1=0xff;2、DS18B20访问图2 温度采样流程图发DS18B20复位信号发跳过ROM命令CCH发读温度命令BEH发启动转换命令44HY转换结束否否?N发DS18B20复位信号发跳过ROM命令CCH接收并保存温度数据 返回图1 主程序流程图T0初始化,实现4ms定时(每个数码块显示时间)开T0溢出中断,并启动T0调整显存采样时间到否?Y对温度采样TR0=0(禁止中断)TR0=1(开中断)对采样数据进行处理,采样标志清零N图3 T0中断服务子程序Y返回显示1位数,并准备下次显示数的序号采样标志置11s到否?开始Nl INITIALIZATION TIMINGl READ/WRITE TIME SLOT TIMING负数补码取反+1=负数原码大小(负数补码-1)取反=负数原码大小YDQ0=0,之后延时2us返回DQ0=1,之后延时2us保存接收到的1位数据,之后延时120us接收完8位否?开始N图4读1个字节NYDQ0=0,之后延时2us返回DQ0=1,之后延时2us发送1位数据,之后延时120us发送完8位否?开始图5写1个字节TEMPERATURE REGISTER FORMATbit7bit6bit5bit4bit3bit2bit1bit0LS Byte232221202-12-22-32-4bit15bit14bit13bit12bit11bit10bit9bit8MS ByteSSSSS262524TEMPERATURE/DATA RELATIONSHIPTEMPERATUREDIGITAL OUTPUT(Binary)DIGITAL OUTPUT(Hex)+125C0000 0111 1101 000007D0h+85C*0000 0101 0101 00000550h+25.0625C0000 0001 1001 00010191h+10.125C0000 0000 1010 001000A2h+0.5C0000 0000 0000 10000008h0C0000 0000 0000 00000000h-0.5C1111 1111 1111 1000FFF8h-10.125C1111 1111 0101 1110FF5Eh-55C1111 1100 1001 0000FC90h开发工具Keil开发工具选择Intel80C51芯片,在源文件中加“#include”STC-ISP-V4.83下载工具MCU Type COM 打开程序文件 DOWNLOAD/下载CP2102下载器驱动软件程序1.C#include #define uint unsigned intvoid delay(uint i)/延时函数 while(i-);void main()delay(1000);程序1.C的反汇编程序:传统12T的8051模式(1T模式)LJMP STARTUPSTARTUP :MOV R0,#0X7FCLR AIDATALOOP:MOV R0,ADJNZ R0, IDATALOOPMOV SP,#0X07LJMP MAINMAIN:MOV R7,#0xE8; 12TOSC(2 TOSC)MOV R6,#0x03; 12TOSC(2 TOSC)LJMP DELAY; 24TOSC(4 TOSC)DELAY: MOV A,R7; 12 TOSC(1 TOSC)DEC R7; 12 TOSC(3 TOSC)MOV R4,0X06; 24TOSC(4 TOSC)JNZ D1; 24 TOSC(3 TOSC)DEC R6; 12 TOSC(3TOSC)D1:ORL A,R4; 12 TOSC(2 TOSC)JNZ DELAY; 24 TOSC(3 TOSC)(若R6,R7都减到0,退出)RET; 24 TOSC(4 TOSC)R6=y,R7=x时,延迟时间=48+108x+108*256+12* y+12 +24 (TOSC)=84+108*(y*256+x)+12y (TOSC)(或8+16x +16*256+3 * y +3+4=15+16*(y*256+x)+3y (TOSC)附录A 电阻电容参数识别一、电阻1、电阻的参数标注方法有3种,即数标法、色标法和直标法。1)数标法。主要用于贴片等小体积电路,如:472 表示 47100(即4.7K); 104则表示100K2)色环标注法。常用的有四色环电阻 五色环电阻(精密电阻)。色环顺序识别技巧:(1)最常用的表示电阻误差的颜色是:金、银、棕,金环和银环绝少用做电阻色环的第一环,所以电阻上若有金环和银环,则这是最末一环。 (2)棕色环是否是误差标志的判别。可以根据色环之间的间隔判别:如一个五道色环的电阻,第五环和第四环之间的间隔比第一环和第二环之间的间隔要宽一些。 (3)利用电阻的生产序列值加以判别。如一个电阻的色环读序是:棕、黑、黑、黄、棕,其值为:100104=1M误差为1,属于正常的电阻系列值,若是反顺序读:棕、黄、黑、黑、棕,其值为140100=140,误差为1。显然后一种排序的电阻值在生产系列中没有,故后一种色环顺序不对。四色环电阻:如“棕 红 红 金”,则阻值为12102=1.2K,误差为5% 五色环电阻:如“红 红 黑 棕 金”,则阻值为220101=2.2K,误差为5%二、电容1、电容的参数标注方法有3种,即数标法、色标法和直标法。大容量电容的容量值直接标明,如10 uF/16V小容量电容的容量值用字母表示或数字表示字母表示法:1m=1000 uF,1P2=1.2PF,1n=1000PF 数字表示法:一般用三位数字表示容量大小,前两位表示有效数字,第三位数字是倍率。如:102表示10102PF=1000PF,224表示22104PF=0.22 uF(其中:1F=103 mF =106 uF =109 nF =1012 pF)2、电容容量误差表符号 F G J K L M允许误差 1% 2% 5% 10% 15% 20%如:一瓷片电容为104J表示容量为0. 1 uF、误差为5%。 附录B STC12C5608AD单片机 STC12C5608AD:工作电压3.5-5.5V,4KB Flash程序存储器,768Bytes SRAM,8路10位A/D转换电路等。 若用户板使用外部晶振,必须在下载程序时,在“STC-ISP”下载软件界面设置“外部晶体或时钟”。 STC12C5608AD是1T的8051单片机,为了兼容传统的8051,定时器0和定时器1在复位后是传统8051的速度,即12分频。 STC12C5608AD单片机上电复位后为准双向口/弱上拉模式,2V以上为高电平,0.8V以下为低电平。每个I/O口驱动能力可达20mA,但整个芯片不得超过55mA。I/O口工作方式设定如下(n=3,2,1,0)P3M07:0P3M17:0I/O口模式00准双向口01强推挽输出10仅输入11开漏举例:MOV P3M0,#10100000B;MOV P3M1,#11000000BP3.7为开漏,P3.6为强推挽输出,P3.5为高阻输入,/P3.4/ P3.3/ P3.2/ P3.1/ P3.0为准双向口。l P3寄存器可位寻址,P3M1、P3M0不可位寻址。P2口设定:P2M1,P2M0。P2寄存器可位寻址,P2M1、P2M0不可位寻址。P1口设定:P1M1,P1M0。P1寄存器可位寻址,P1M1、P1M0不可位寻址。P0口设定:P0M1,P0M0。P0寄存器可位寻址,P0M1、P0M0不可位寻址。附录C STC12C5410AD单片机 STC12C5410AD:工作电压3.5-5.5V,10KB Flash程序存储器,512Bytes SRAM,8路10位A/D转换电路等。 STC12C5410AD是1T的8051单片机,为了兼容传统的8051,定时器0和定时器1在复位后是传统8051的速度,即12分频。 STC12C5608AD单片机上电复位后为准双向口/弱上拉模式,2V以上为高电平,0.8V以下为低电平。每个I/O口驱动能力可达20mA,但整个芯片不得超过55mA。I/O口工作方式设定如下(n=3,2,1,0)P3M07:0P3M17:0I/O口模式00准双向口01强推挽输出10仅输入11开漏举例:MOV P3M0,#10100000B;MOV P3M1,#11000000BP3.7为开漏,P3.6为强推挽输出,P3.5为高阻输入,/P3.4/ P3.3/ P3.2/ P3.1/ P3.0为准双向口。l P3寄存器可位寻址,P3M1、P3M0不可位寻址。P2口设定:P2M1,P2M0。P2寄存器可位寻址,P2M1、P2M0不可位寻址。P1口设定:P1M1,P1M0。P1寄存器可位寻址,P1M1、P1M0不可位寻址。P0口设定:P0M1,P0M0。P0寄存器可位寻址,P0M1、P0M0不可位寻址。附录D DS1820* DQ(引脚2):数据输入输出引脚,漏极开路。单线总线要求5k左右的上拉电阻。* DS1820的两种充电方式:1) DQ充电方式。DQ=H,给内部电容充电;L停止充电。2)用外部5V 电源供电。* DS1820 8位数据发送顺序:先低位D0,再高位图1 DS1820 方框图DS18B20 内部寄存器阵列1) 暂存存贮器0Temp_read低字节1Temp_read高字节2高限报警温度值TH3低限报警温度值TL4保留5保留6计数(Count_remain)7单位温度计数(Count_per_c)8CRC* 2、3字节:是TH 、TL 的易失性拷贝,在每一次上电复位时被刷新。* 7字节:是计数寄存器,用于获得较高的温度分辨率。* 8字节:为循环冗余校验CRC 字节它,是前面8 个字节的CRC 值。* DS1820在1 秒(典型值)内把温度变换为数字。温度数字输出/二进制数字输出十六进制+12500000000 1111101000FAh+2500000000 001100100032h+1/200000000 000000010001h+000000000 000000000000h-1/211111111 11111111FFFFh-2511111111 11001110FFCEh-5511111111 10010010FF92h温度/数据关系(数字输出=(温度/2)的补码)小数:0, 0.0 1, 0.57位整数8位符号高精度温度计算公式:* 访问DS1820 的协议:初始化ROM 操作命令存贮器操作命令处理/数据1) 初始化:总线主机发一复位脉冲(最短为480 s 的低电平信号)后,释放总线;DS1820检测到I/O 引脚的上升沿后,等待15-60s,接着送出存在脉冲(60-240s 的低电平信号)。2) ROM 操作命令:主机检测到从属器件存在,可发器件ROM 操作命令之一:(1) Read ROM(读ROM) 33h:主机读DS1820 的8 位产品系列编码、48 位序列号以及8 位CRC。(2) Match ROM( 符合 ROM) 55h:命令后继以64 位的ROM 数据序列,允许总线主机对多点总线上特定的DS1820寻址,只有与64 位ROM 序列严格相符的DS1820 才能对后继的存贮器操作命令作出响应,所有与64位ROM 序列不符的从片将等待复位脉冲;(3) Skip ROM( 跳过ROM ) CCh:允许主机不提供64 位ROM 编码而访问存储器;(4) Search ROM( 搜索ROM) F0h:允许主机使用一种消去elimination 处理来识别总线上所有从片的64 位ROM 编码;(5) Alarm Search(告警搜索) ECh:命令流程与搜索ROM 命令相同,但仅在最近一次温度测量出现告警的情况下,DS1820才对此命令作出响应,告警的条件定义为温度高于TH 或低于TL。只要DS1820 一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH 或TL 的设置,使得测量值再一次位于允许的范围之内,贮存在EEPROM 内的触发器值用于告警。 3) 存贮器操作命令指令代码说明单总线的操作注温度变换44h启动温度变换读温度转换状态:0,DS1820忙;1,温度变换完成温度变换需要2 秒钟读暂存存储器BEh从暂存存储器读字节读9 字节数据始于字节0,直至字节8(CRC)。写暂存存储器4Eh写字节至暂存存储器2 和3处(TH 和TL 温度触发器)写数据至地址2和3的2 个字节复制暂存存储器43h把暂存存储器复制到非易性存储器E2PROM(仅地址2和3)读复制状态重新调出E2PROME3h把贮存在非易失性存储器内的数值重新调入暂存存储器(温度触发器)读温度忙状态读电源B4h发DS1820 电源方式的信号至主机读电源状态存储器操作举例:温度变换与内插假定采用外部电源,且仅有一个DS1820主机方式数据(LSB在先)注 释TXCCh跳过ROM命令TX44h启动温度变换命令RX1 个数据字节读“忙”标志3 次。主机连续读字节或位,直至数据为FFh(温度变换完成)TXReset (复位) 复位脉冲(最短为480 s 的低电平信号)RXPresence(存在)存在脉冲(60-240s 的低电平信号)TXCCh 跳过ROM命令TXBEh Read Scratchpad 读暂存存储器命令

温馨提示

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

评论

0/150

提交评论