




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机电课程设计-温度巡回检测仪温度巡回检测仪机电课程设计目录一 设计背景-2二设计思路及方案选定-22.1设计要求-22.2设计方案-3三硬件的选择与设计-53.1 CPU-53.2 检测模块-53.3 显示模块-83.4 键盘输入模块-103.5 时钟模块-11四软件设计-124.1主程序-124.2时钟显示-144.3 键码检测-194.4温度采集-254.5 温度数值的转化-274.5 温度的显示-27五设计小结-22六参考文献-22七 附录(总程序)-23一设计背景 温度的检测在很多方面都有非常广泛的应用,小到日常生活中的一些应用,比如挂式温度显示仪等,大到大型工程应用,比如在汽车的很多系统中便有温度检测设备,用以实时的监视各个功能模块的运行状况。 温度巡回检测仪 一种输入温度,直流电压等模拟信号,在规定的时间间隔进行数据记录的巡回检测记录仪。温度巡回检测仪分成一体式和分离式二种,其中一体式有30点、20点、15点三种测定点数;分离式有主体和端子箱组成,主体箱装有把手可携带,也可用于嵌装。最大测量点数可达到210点,共有5个种类。广泛应用于工业炉温度分布、电子产品特性试验、气象观察、发动机测试、公害测定管理、原子能材料试验、全自动校正装置、测量研究和试验等。温度检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。由单片集成电路构成的温度传感器的种类越来越多,测量的精度越来越高,响应时间越来越短,因其使用方便、无需变换电路等特点已经得到了广泛的应用。随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生产的自动控制系统开始进入了人们的生活,以单片机为核心的温度采集系统就是其中之一。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。温度采集系统的开发在很大意义上提高了生产生活的需要,方便了生产中对温度的控制,有效的提高了生产质量。外围电路比较简单杂,测量精度较高,分辨力高,使用方便。温度检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。本次设计正是为了完成温度巡回采集而设计的,而且采用了温度传感器LM35,可以说与人们的日常生活是息息相关的,具有很大的现实意义。二设计思路及方案选定2.1设计要求本设计要求学生设计一个以8031单片机为核心的8路温度的温度巡回检测仪,并用AEDK51T仿真器调试、开发该系统的硬件和软件。温度巡回检测仪的具体设计要求如下:* 系统开机未按任何键时,LED显示实时时钟(时、分、秒);* 系统能与各种热电阻、热电偶相配用;* 8点温度通道,可由用户根据需要选择其中的几个通道进行检测;* 要求每点温度采样8次,经算术平均滤波后,送到LED显示,温度显示格式为:通道号 温度值。2.2总体设计方案:设计思路如下:(1)单片机通过键盘和数码管选择工作模式,即时间或某一路温度信号(2)由传感器采集温度的模拟信号(3)经过AD转换后进入单片机进行运算(4)显示在数码管上(5)显示时间则需要一个时钟芯片总体来说需要四大模块:测量模块、显示模块、键盘模块、时钟模块检测模块CPU键盘控制模块显示模块时钟模块EPROM时钟芯片ROM8031数码管A/D放大电路温度传感器键盘整体硬件结构如下:总电路图见下图:三硬件功能与设计3.1 CPU根据要求选用MCS-8031单片机,由于没有内置ROM,内部RAM存储量也较小,所以添加一块片外ROM EPROM2732(12位,4K),以及一块片外RAM6264(13位,8K),通过74LS373锁存器和单片机连接接线图如下:3.2检测模块(1)温度传感器本设计中采用的温度传感器是LM35,它具有很高的工作精度和较宽的线性工作范围,它的输出电压与摄氏温度成比例。LM35无需外部校准,可以提供0.25的常用室温精度。该传感器在25时,输出电压为0.25V,随着室温的升高,输出电压与温度成线性关系,因此可以根据得到的电压值计算出温度。(2)LM35工作特性:比例因子:10MV/ 测量范围:-55150 工作电压:4V30V 精度:0.5由于A/D转换器选用的是ADC0809,输入模拟电压为05V,数字量是28,为了提高温度的转换精度,本设计选定温度传感器的测量范围是0125(3)放大电路采用的是LM324运算放大器。LM324可采用单极性或者双极性电源供电,可以在0+5V下工作,它内部集成了四个运放模块,它的输入端是温度补偿的。温度/LM输出电压/VADC0809输入模拟电压/V000250.251500.52751.753100141251.255放大电路如下图:(4)A/D转换器A/D转换器选用ADC0809。ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和微机直接接口。A引脚结构:ADC0809采用双列直插式封装,共有28条引脚。其引脚结构图如下图所示。B地址输入和控制线:4条ALE 为地址锁存允许输入线,高电平有效。当ALE现为高电平时,地止锁存与译码器将ADDA、ADDB和ADDC三条地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择如下表所示。ADDCADDBADDA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7C数字量输出及控制线:11条START 为转换启动信号。当START上升沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,START应保持低电平。EOC位转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三态输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7D0位数字数出线。电路图如下:3.3显示模块数码管是一种在单片机系统中广泛使用的数字显示输出装置。对于数码管的驱动控制一般有两种方式,即静态驱动和动态驱动。静态驱动中硬件开销大,成本高,电路板面积增大,布线复杂;动态驱动中一般只需一块驱动芯片,多个数码管以极高的频率逐个选通,显示相应的数字,它优点在于硬件电路大大简化。本电路中使用6个LED共阴数码管显示,格式为,小时:分钟:秒 或,通道 温度LED动态显示数码管通过8255可编程并行I/O扩展(占用8255的PA与PB口)引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输. RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。 A1,A0:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器. 当A1=0,A0=0时,PA口被选择; 当A1=0,A0=1时,PB口被选择; 当A1=1,A0=0时,PC口被选择; 当A1=1.A0=1时,控制寄存器被选择. 电路图接线如下:8255 8255工作方式控制字格式根据上如图所示,8255芯片的PA端口地址为7FFFCH,PB端口地址为7FFDH可以设置A口和B口输出,两者均采用工作方式0,控制字为80H。3.4键盘输入模块采用3*3的矩阵式键盘,各行分别接P1.3,P1.4,P1.5,各列分别接P1.0,P1.1,P1.2设有9个按钮,1-8为通道号,9为返回电路图如下:3.5时钟模块本电路中采用的是时钟芯片DS1302,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,按要求只需时、分、秒进行计时。工作电压为2.5V5.5V,对采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。电路图如下:其中Vcc1为后备电源,VCC2为主电源。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。四软件设计4.1主程序流程图见右:键码检测温度采集温度数值转化温度显示返回键是否按下开始程序初始化时钟显示30H是否为0 4.1主程序:ORG 0000HSJMP STARTORG 0003HAJMP INTR0ORG 0040HSTART: MOV A,#0C7H ;开放行(行输出全为0)MOV P1,ACLR P3.3 CLR IT0 ;电平触发 MOV IE,#81H ;开放INT0中断 MOV 30H, #00H ;设定时钟初值 MOV SECOND,#00H MOV MINUTE,#00H MOV HOUR,#12H LCALL SET1302 LCALL GET1302 LCALL DISPLAYMAIN: MOV R5,#25 MOV TMOD,#01H;工作方式1 MOV TH0,#63H ;置定时器初值(定时40ms) MOV TL0,#0C0H SETB TR0 ;启动定时器0 LP1: MOV A, 30H JNZ SHOWTEMJBC TF0,LP2 ;查询计数溢出 SJMP LP1 ;未到40 ms继续计数LP2: MOV TH0,#63H ;重新置定时器初值 MOV TL0,#0C0H LCALL DISPLAY ;显示 DJNZ R5,LP1 ;未到1 S继续循环 LCALL GET1302 ;每过1s从DS1302读取一次时间 MOV R5,#25 SJMP LP1SHOWTEM: MOV A, 30H JZ LP14.2时钟显示程序:T_CLK Bit P3.4 ;实时时钟时钟线引脚T_IO Bit P3.5 ;实时时钟数据线引脚T_RST Bit P3.1;实时时钟复位线引脚SECOND EQU 50H ;秒寄存器MINUTE EQU 51H ;分寄存器HOUR EQU 52H ;时寄存器子程序名:DISPLAY功 能:显示程序调 用:CHAG,DELAY影响资源: A R2 R3 R6 R7DISPLAY: MOV DPTR, #7FFFH MOV A, #80H MOVX DPTR,A ;设置8255控制字 MOV R3,SECOND LCALL CHAG MOV DPTR, #7FFDHMOV A, #0FEHMOVX DPTR, A MOV DPTR, #7FFCHMOV A, R2MOVX DPTR, A LCALL DELAY MOV DPTR, #7FFDHMOV A,#0FDHMOVX DPTR, A MOV DPTR, #7FFCHMOV A, R3MOVX DPTR, A LCALL DELAY MOV R3, MINUTE LCALL CHAG MOV DPTR, #7FFDHMOV A,#0FBH MOVX DPTR, AMOV DPTR, #7FFCHMOV A, R2MOVX DPTR, A LCALL DELAY MOV DPTR, #7FFDHMOV A,#0F7H MOVX DPTR,A MOV DPTR, #7FFCHMOV A, R3MOVX DPTR, A LCALL DELAY MOV R3, HOUR LCALL CHAG MOV DPTR, #7FFDHMOV A,#0EFH MOVX DPTR, A MOV DPTR, #7FFCHMOV A, R2MOVX DPTR, A LCALL DELAY MOV DPTR, #7FFDHMOV A, #0DFH MOVX DPTR,A MOV DPTR, #7FFCH MOV A, R3 MOVX DPTR, A LCALL DELAY RET子程序名:DELAY功 能:延时程序影响资源: R6 R7DELAY: MOV R7,#50 D1: MOV R6,#10 D2: DJNZ R6,$ DJNZ R7,D1 RET子程序名:CHAG功 能:将R3中数据拆分,低字节放入R2,高字节放入R3影响资源: A R2 R3 CHAG: PUSH ACC ;低字节放入R2,高字节放入R3 MOV A,R3 ANL A,#0FH MOV R2,A MOV A,R3 SWAP A ANL A,#0FH MOV R3,A MOV DPTR,#DATATAB MOV A,R2MOVC A,A+DPTR MOV R2,A MOV A,R3MOVC A,A+DPTR MOV R3,A POP ACC RETDATATAB: DB 0B7H,90H,3DH,0B9H,9AH,0ABH,0AFH,0B0H,0BFH,0BBH*子程序名:Set1302功 能:设置DS1302 初始时间,并启动计时。调 用:RTInputByte入口参数:初始时间在:Second,Minute,Hour,Day,Month,Week.Year (地址连续。起始80H)影响资源:A B R0 R1 R7SET1302:CLR T_RSTCLR T_CLKSETB T_RST MOV B, #8EH ;控制寄存器 LCALL RTInputByte MOV B, #00H ;写操作前WP=0 LCALL RTInputByte SETB T_CLK CLR T_RST MOV R0, #Second; MOV R7, #7 ; MOV R1, #80H ;秒写地址S13021: CLR T_RST CLR T_CLK SETB T_RST MOV B, R1 ;写秒 分 时 LCALL RTInputByte MOV A, R0 ;写秒数据 MOV B, A LCALL RTInputByte INC R0 INC R1 INC R1 SETB T_CLK CLR T_RST DJNZ R7, S13021 CLR T_RST CLR T_CLK SETB T_RST MOV B, #8EH ;控制寄存器 LCALL RTInputByte MOV B, #80H ;控制,WP=1,写保护 LCALL RTInputByte SETB T_CLK CLR T_RST RET子程序名:GET1302功 能:从DS1302 读时间调 用:RTInputByte,RTOutputByte入口参数:时间保存在:Second,Minute,Hour,Day,Month,Week.YearL影响资源:A B R0 R1 R4 R7GET1302: MOV R0, #SECOND; MOV R7, #7MOV R1, #81H ;秒地址G13021: CLR T_RST CLR T_CLK SETB T_RSTMOV B, R1 ;秒 分 时 LCALL RTInputByte LCALL RTOutputByte MOV R0, A ;秒 INC R0 INC R1 INC R1 SETB T_CLK CLR T_RSTDJNZ R7, G13021 RET*子程序名:RTInputByte功 能:写1302一字节 (内部子程序)影响资源:A B R4RTInputByte: MOV R4, #8 Inbit1: MOV A, B RRC A MOV B, A MOV T_IO, C SETB T_CLK CLR T_CLK DJNZ R4, Inbit1 RET*子程序名:RTOutputByte功 能:读1302一字节 (内部子程序)影响资源:A R4RTOutputByte: MOV R4, #8 Outbit1: MOV C, T_IO RRC A SETB T_CLK CLR T_CLK DJNZ R4, Outbit1 RET4.3键盘输入模块流程图见下: 采用3*3的矩阵式键盘,各列分别接P1.3,P1.4,P1.5,各行分别接P1.0,P1.1,P1.2设有9个按钮,1-8为通道号,9为返回电路图如下:行列式键盘电路图:键盘扫描原理简介(图):在上图(a)中,当没有键被按下时,单片机3条列线全部输出为0,则将从行线读入的位数全为1.在上图(b)中,当圆圈中的按键被按下时,列线输出全部为0,被按下键所在行线读入位数字为0,其它行线仍然为1,这样可通过检测行状态判断是否有按键被按下,并且图视情况可知被按下的键所在行号为2.当判断有键按下后,令三条列线中只有一条输出为0,其他列线输出为1,然后检测行线的位数字是否出现0,若没有则依次使下一列线输出为0,重复行线检测,直道有按键按下的行位数字为0为止,从而实现确定按键的位置。(如下图)通过列扫描,键值公式可由K=(行数i-1)*3+列数j求得。键盘程序:INTR0: LACALL DELAY ;延时去抖MOV A,P1 ;读取P1口列值ANL A, #0C7H ;屏蔽低六位CJNE A,#0C7H,SKEY ;不等转移指令,判断是否有键闭合,有转SKEY键盘扫描AJMP FINISH ;无键闭合,返回SKEY: MOV A,#00H ;列扫描MOV R0,A ;R0作为列计数器,开始为0MOV R1,A ;行计数器MOV R3,#0F7H ;R3为列扫描字暂存SKEY2: MOV A, R3 ;扫描第一列MOV P1,A ;输出列扫描字NOPNOPNOP ;三个nop操作使P1口输出稳定MOV A,P1;读行值MOV R1,A;暂存行值ANL A,#OC7H ;与运算,无闭合键则0C7H不变,取行值CPL A;取反,高电平则有键闭合JNZ SKEY3 ;非0跳转,有键按下转SKEY3,无则进行下一列扫描INC R0 ;列计数器加一SETB C ;为行扫描字左移做准备MOV A,R3 RLC A ;带进位C左移MOV R3,A ;形成下一列扫描字MOV A,R0CJNE A,#03H,SKEY2 ;共需扫描3列AJMP FINISH行号译码SKEY3: MOV A,R1JNB ACC.2, SKEY4JNB ACC.1, SKEY5JNB ACC.0, SKEY6 AJMP FINISHSKEY4:MOV A,#01HMOV R2,A ;存1行号AJMP DKEYSKEY5:MOV A,#02HMOV R2,A ;存2行号AJMP DKEYSKEY6:MOV A,#03HMOV R2,A ;存3行号AJMP DKEY键位置译码DKEY: MOV A,R2 ;取行号ACALL DECODE ;MOV DPTR, #TABLE1JMP A+DPTRTABLE1: ACALL AAACALL BBACALL CCACALL DDACALL EE ACALL FF ACALL GG ACALL HHACALL II FINISH: RETI键号译码DECODE: MOV A,R2 ;取行号送A DEC A ;(行号-1);MOV B,#03H ;每行按键个数MUL AB ;(行号-1)*按键数ADD A,R0 ;(行号-1)*按键数+列号=键号,存在A中RET延时DELAY: MOV R7,#18H TM:MOV R6,#0FFH TM1:DJNZ R6,TM1DJNZ R7,TMRET延时时间=(15*16+15)*(1*16+8)*机器周期T4.4温度采集: 温度采集程序:AA: MOV R0, #00H ;存数据高八位 MOV R1, #00H ;存数据低八位MOV R2, #08H ;共8次采样 MOV DPTR, #0BFF8H ;定义ADC转换器首地址LP4:MOV DPTR, A ;开始转换ACALL DELAY ;延时LP1:JNB P3.3,LP1 ;等待转换完毕LP2: MOVX A, DPTR ;读一个数据ADD A, R1 ;与低八位相加JNC LP3 ;无进位转移 INC R0 ;有进位则高八位加一 CLR C LP3: MOV R1, A ;保存低八位DJNZ R2, LP4 ;循环8次MOV R2, #03H ;需要循环右移3次,即除以8LP5; MOV A, R0 ;取高八位RRC A ;高8位右移一位,即除以2MOV R0, A ;保存高八位MOV A, R1 ;取低八位RRC A ;低八位右移一位MOV R1, A ;保存低八位 DJNZ R2, LP5 ;循环右移三次,即除以8 MOV 30H, #01H ;30H置1 MOV 31H, R1 ;采样得到的温度值入31H保存 RET4.5温度数值的转化 温度转化程序:MOV A, 31H ;温度数值转化 MOV B,#20 MUL AB MOV B,#51 DIV ABMOV R1,AMOV A,BMOV B,#10MUL ABMOV B,#51DIV ABMOV 32H,A;小数后一位放于32HMOV 31H,R1;结果存放31HMOV B,#100MOV A,31H DIV ABMOV 73H,A ;温度的百位MOV A,BMOV B,#10DIV ABMOV 72H,A ;温度的十位MOV 71H,B ;温度的个位MOV 70H, 32H ;温度的十分位MOV 75H, 30H ;通道数4.6温度的显示程序: MOV DPTR, #7FFFH ;选择控制存储器地址MOV A, #80H ;写入方式0控制字到A,A口和B口均为输出 MOVX DPTR,A ;芯片初始化,设置8255控制字 MOV DPTR, #7FFDH ;DPTRB口地址MOV A, #0FEH ;选LED右数第一位(十分位)MOVX DPTR, A ;PB口赋值MOV DPTR, #TAB1 ;选不带小数点共阴极数码段编码MOV A, 70H ;A70H单元中温度的十分位数值MOVC A, A+DPTR ;查到70H单元中所对应的数码值MOV DPTR, #7FFCH ;选PA口地址MOVX DPTR, A ;PA赋值显示LCALL DELAY MOV DPTR, #7FFDH ;DPTRB口地址MOV A, #0FDH ;选LED右数第二位(个位)MOVX DPTR, A ;PB口赋值 MOV DPTR, #TAB2 ;选带小数点共阴极数码段编码MOV A, 71H ;A71H单元中温度的个位数值MOVC A, A+DPTR ;查到71单元中所对应的数码值MOV DPTR, #7FFCH ;选PA口地址MOVX DPTR, A ;PA赋值显示LCALL DELAYMOV DPTR, #7FFDH ;DPTRB口地址MOV A, #0FBH ;选LED右数第三位(十位) MOVX DPTR, A ;PB口赋值 MOV DPTR, #TAB1 ;选不带小数点共阴极数码段编码MOV A, 72H ;A72H单元中温度的十位数值MOVC A, A+DPTR ;查到72单元中所对应的数码值MOV DPTR, #7FFCH ;选PA口地址MOVX DPTR, A ;PA赋值显示LCALL DELAY MOV DPTR, #7FFDH ;DPTRB口地址MOV A, #0F7H ;选LED右数第四位(百位)MOVX DPTR, A ;PB口赋值MOV DPTR, #TAB1 ;选不带小数点共阴极数码段编码MOV A, 73H ;A73H单元中温度的百位数值MOVC A, A+DPTR ;查到73单元中所对应的数码值MOV DPTR, #7FFCH ;选PA口地址 MOVX DPTR, A ;PA赋值显示LCALL DELAY MOV DPTR, #7FFDH ;DPTRB口地址MOV A, #0DFH ;选LED右数第六位(通道位) MOVX DPTR, A ;PB口赋值 MOV DPTR, #TAB1 ;选不带小数点共阴极数码段编码MOV A, 75H ;A75H单元中通道数值MOVC A, A+DPTR ;查到75单元中所对应的数码值MOV DPTR, #7FFCH ;选PA口地址MOVX DPTR, A ;PA赋值显示 LCALL DELAY MOV A, 30H ;A30H单元中通道数 JZ LP3 ;判断返回键是否按下,是则30H为零, AJMP SHOWTEM ;绝对转移到时钟程序 LP3: LJMP LP1 ;判断返回键是否按下,否则继续温度显示循环TAB1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH ;0-9不带小数点共阴极数码段编码 TAB2:DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87HDB 0FFH,0EFH ;0-9带小数点共阴极数码段编码 5任务分工略6小结通过本次课程设计,我们充分了解到了单片机的学习不仅仅是编程这么简单,外部电路的设计,各种芯片的选择搭配都是非常重要的。同时我们对单片机有了更深一步的了解,比如硬件接口、地址分配,编程的技巧得到了提高。总的来说,课程设计中遇到了很多困难,比如时钟芯片DS1302的功能使用和汇编程序,十六进制转化成十进制等等,我们通过网络查阅了大量资料,查参考书了解了许多单片机专业开发人员的经验,觉得获益非浅。在设计的过程中,不但丰富了知识、锻炼了能力,而且养成了好的思维习惯,一种严谨的治学态度。7参考文献1李广弟 单片机基础 北京航空航天大学出版社2杨旭方 单片机控制与应用实训教程 电子工业出版社3. 张迎新 单片机初级教程 北京航空航天大学出版社4. 杨汝清 机电控制技术 科学出版社七附录:总程序:T_CLK Bit P3.4 ;实时时钟时钟线引脚T_IO Bit P3.5 ;实时时钟数据线引脚T_RST Bit P3.1;实时时钟复位线引脚SECOND EQU 50H ;秒寄存器MINUTE EQU 51H ;分寄存器HOUR EQU 52H ;时寄存器ORG 0000HSJMP STARTORG 0003HAJMP INTR0ORG 0040HSTART: MOV A,#0C7H ;开放行(行输出全为0)MOV P1,ACLR P3.3 CLR IT0 ;电平触发 MOV IE,#81H ;开放INT0中断 MOV 30H, #00H ;设定时钟初值 MOV SECOND,#00H MOV MINUTE,#00H MOV HOUR,#12H LCALL SET1302 LCALL GET1302 LCALL DISPLAYMAIN: MOV R5,#25 MOV TMOD,#01H;工作方式1 MOV TH0,#63H ;置定时器初值(定时40ms) MOV TL0,#0C0H SETB TR0 ;启动定时器0 LP1: MOV A, 30H JNZ SHOWTEMJBC TF0,LP2 ;查询计数溢出 SJMP LP1 ;未到40 ms继续计数LP2: MOV TH0,#63H ;重新置定时器初值 MOV TL0,#0C0H LCALL DISPLAY ;显示 DJNZ R5,LP1 ;未到1 S继续循环 LCALL GET1302 ;每过1s从DS1302读取一次时间 MOV R5,#25 SJMP LP1SHOWTEM: MOV A, 30H JZ LP1MOV A, 31H ;温度数值转化 MOV B,#20 MUL AB MOV B,#51 DIV ABMOV R1,AMOV A,BMOV B,#10MUL ABMOV B,#51DIV ABMOV 32H,A;小数后一位放于32HMOV 31H,R1;结果存放31HMOV B,#100MOV A,31H DIV ABMOV 73H,A ;温度的百位MOV A,BMOV B,#10DIV ABMOV 72H,A ;温度的十位MOV 71H,B ;温度的个位MOV 70H, 32H ;温度的十分位MOV 75H, 30H ;通道数MOV DPTR, #7FFFH MOV A, #80HMOVX DPTR,A ;设置8255控制字 MOV DPTR, #7FFDH MOV A, #0FEHMOVX DPTR, A MOV DPTR, #TAB1MOV A, 70HMOVC A, A+DPTR MOV DPTR, #7FFCHMOVX DPTR, A LCALL DELAY MOV DPTR, #7FFDHMOV A, #0FDHMOVX DPTR, A MOV DPTR, #TAB2MOV A, 71HMOVC A, A+DPTR MOV DPTR, #7FFCHMOVX DPTR, A LCALL DELAYMOV DPTR, #7FFDHMOV A, #0FBHMOVX DPTR, A MOV DPTR, #TAB1MOV A, 72HMOVC A, A+DPTR MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东南粤银行佛山分行招聘模拟试卷及答案详解(网校专用)
- 2025年石英玻璃光掩模基片项目立项申请报告模板
- 2025年勘察设计注册电气工程师考试(供配电专业知识)仿真试题及答案
- 2025年中国便携卷烟器行业市场分析及投资价值评估前景预测报告
- 图书馆吊顶施工方案
- 变压器及配电室建设项目风险评估报告
- 甲醇手套应急预案
- 3.1 重要的自然资源 说课稿-2023-2024学年八年级地理上学期仁爱科普版
- 幕墙系统综合测试与调试方案
- xx镇集中供水工程风险评估报告
- 资阳产业投资集团有限公司第三轮一般员工市场化招聘笔试参考题库附答案解析
- 2025年淮南市大通区和寿县经开区公开招聘社区“两委”后备干部30名笔试备考题库及答案解析
- 《文献检索与科技论文写作入门》课件(共八章)
- 2025云南红河红家众服经营管理有限公司社会招聘工作人员8人笔试参考题库附带答案详解
- 共享实验室合作协议书
- 客服人员安全操作培训课件
- 城管协管员面试题目及答案
- DL-T 794-2024 火力发电厂锅炉化学清洗导则
- 天津市受问责干部管理办法
- 内科进修汇报护理
- 口腔咨询师沟通技巧培训
评论
0/150
提交评论