1、级单片机课程设计学生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,Q5410k/5.1k 电阻。I/O口工作方式设定如下取反=负数原码大小TEMPERAT
2、URE REGISTER FORMATbit7bit6bit5bit4bit3bit2bit1bit0LS Byte232221202-12-22-32-4bit15bit14bit13bit12bit11bit10bit9bit8MS ByteSSSSS262524TEMPERATURE/DATA RELATIONSHIPTEMPERATUREDIGITAL OUTPUT(BinaryDIGITAL OUTPUT(Hex+125C0000 0111 1101 000007D0h+85C*0000 0101 0101 00000550h+25.0625C0000 0001 1001 00010
3、191h+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 #d
4、efine 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。12TOSC2TOSC)MOV R6,#0x03。12TOSC2TOSC)LJMP DELAY 。24TOSC4TOSC)DELAY: MOV A,R7。12TOS
5、C1TOSC)DEC R7。12TOSC3TOSC)MOV R4,0X06 。24TOSC4TOSC)JNZ D1 。24TOSC3TOSC)DEC R6。12TOSC3TOSC)D1:ORL A,R4 。12TOSC2TOSC)JNZ DELAY。24TOSC3TOSC)若R6,R7都减到0,退出)RET。24TOSC=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)数标法。主要用于贴片等小体积电路,如:47
6、2 表示 47100即4.7K); 104则表示100K2)色环标注法。常用的有四色环电阻 五色环电阻精密电阻)。色环顺序识别技巧:1)最常用的表示电阻误差的颜色是:金、银、棕,金环和银环绝少用做电阻色环的第一环,所以电阻上若有金环和银环,则这是最末一环。 2)棕色环是否是误差标志的判别。可以根据色环之间的间隔判别:如一个五道色环的电阻,第五环和第四环之间的间隔比第一环和第二环之间的间隔要宽一些。 3)利用电阻的生产序列值加以判别。如一个电阻的色环读序是:棕、黑、黑、黄、棕,其值为:100104=1M误差为1,属于正常的电阻系列值,若是反顺序读:棕、黄、黑、黑、棕,其值为140100=140,
7、误差为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=
8、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,定
9、时器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为准双向口。 P3寄存器可位寻址,P3M1、
10、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分频。 STC12C560
11、8AD单片机上电复位后为准双向口/弱上拉模式,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为准双向口。 P3寄存器可位寻址,P3M1、P3M0不可位寻址。P2口设定:P2M1,P2M0。P2寄存器可位寻址,P2M
12、1、P2M0不可位寻址。P1口设定:P1M1,P1M0。P1寄存器可位寻址,P1M1、P1M0不可位寻址。P0口设定:P0M1,P0M0。P0寄存器可位寻址,P0M1、P0M0不可位寻址。附录D DS1820* DQ 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
13、* 2、3字节:是TH 、TL 的易失性拷贝,在每一次上电复位时被刷新。* 7字节:是计数寄存器,用于获得较高的温度分辨率。* 8字节:为循环冗余校验CRC 字节它,是前面8 个字节的CRC 值。* DS1820在1 秒典型值)内把温度变换为数字。温度数字输出/二进制数字输出十六进制+125000000001111101000FAh+2500000000 001100100032h+1/200000000 000000010001h+000000000 000000000000h-1/211111111 11111111FFFFh-2511111111 11001110FFCEh-551111
14、1111 10010010FF92h温度/数据关系数字输出= 初始化:总线主机发一复位脉冲最短为480 s的低电平信号)后,释放总线;DS1820检测到I/O 引脚的上升沿后,等待15-60s,接着送出存在脉冲 ROM 操作命令:主机检测到从属器件存在,可发器件ROM 操作命令之一:(1 Read ROM(读ROM 33h:主机读DS1820 的8 位产品系列编码、48 位序列号以及8 位CRC。(2 Match ROM( 符合 ROM 55h:命令后继以64 位的ROM 数据序列,允许总线主机对多点总线上特定的DS1820寻址,只有与64 位ROM 序列严格相符的DS1820 才能对后继的存
15、贮器操作命令作出响应,所有与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
16、 或TL 的设置,使得测量值再一次位于允许的范围之内,贮存在EEPROM 内的触发器值用于告警。 3存贮器操作命令指令代码说明单总线的操作注温度变换44h启动温度变换读温度转换状态:0,DS1820忙;1,温度变换完成温度变换需要2 秒钟读暂存存储器BEh从暂存存储器读字节读9 字节数据始于字节0,直至字节8CRC)。写暂存存储器4Eh写字节至暂存存储器2 和3处TH 和TL 温度触发器)写数据至地址2和3的2 个字节复制暂存存储器43h把暂存存储器复制到非易性存储器E2PROM仅地址2和3)读复制状态重新调出E2PROME3h把贮存在非易失性存储器内的数值重新调入暂存存储器温度触发器)读温度
17、忙状态读电源B4h发DS1820 电源方式的信号至主机读电源状态存储器操作举例:温度变换与内插假定采用外部电源,且仅有一个DS1820主机方式数据LSB在先)注释TXCCh跳过ROM命令TX44h启动温度变换命令RX1 个数据字节读“忙”标志3 次。主机连续读字节或位,直至数据为FFh 复位脉冲最短为480 s 的低电平信号)RXPresence存在)存在脉冲 复位脉冲RXPresence 存在存在脉冲,操作完成附录E DS18B20TEMPERATURE REGISTER FORMATbit7bit6bit5bit4bit3bit2bit1bit0LS Byte232221202-12-22
18、-32-4bit15bit14bit13bit12bit11bit10bit9bit8MS ByteSSSSS262524TEMPERATURE/DATA RELATIONSHIPTEMPERATUREDIGITAL OUTPUT(BinaryDIGITAL 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-25.0625C1111 1110 0110 1111FE6Fh-55C1111 1100 1001 0000FC90h
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1