




已阅读5页,还剩100页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京工程学院自动化学院本科毕业设计(论文)模拟量温度测控系统设计毕业论文第一章 绪 论11 课题分析毕业设计的课题为“模拟温度量及并行数字钟”,顾名思义就是实现对实时时间与温度的显示与控制,保证显示时间的准确快捷。 这次毕业设计的着手点在“模拟量”和“并行”上,所以选择合适的模/数转换器和并行时钟芯片是致关重要的,设计中我分别选用了ADC0809芯片和DS12887并行时钟芯片来实现模/数转换功能和并行功能。设计的最终目的是实现显示,我用18个LED数码显示管分别来显示年、月、日、时、分、星期、温度。当时间显示有误时用熊猫彩电的红外遥控器YKQ9进行实时时间的修改,但温度是不可以修改的。12 软件设计的工作步骤1)温度采样 因为要显示温度,所以首先的把温度采集进来。设计采集电路,用模/数转换器进行A/D转换成5V以内的电压,以适合单片机用。这部分的软件主要是CPU怎样控制模数转换器把模拟量转换为数字量。2)并行时钟的实现 本部分主要知道CPU怎样从并行时钟芯片中读取时间,及利用遥控器怎样修改发生错误的实时时间。要了解并行时钟芯片和遥控器。3)温度及实时时间的静态显示 这部分是我的最终目的。4)程序汇编及调试 这部分就要检测我的软件设计的对不对,合不合理。 13 课题的应用范围模拟温度量及并行数字时钟在日常生活中应用极为广范,比如在展览厅、酒店大厅墙上悬挂的LED数码显示屏;树立在街头的噪音分贝检测屏,它们的工作原理都与我们课题设计的原理相似。第二章 硬件设计21 硬件设计的简介本次毕业设计主要是利用AT89C52单片机作为中央处理器,再扩展一系列其他功能模块芯片。主要包括采集环境温度的多个DS12887并行数字温度传感器、采集实时时间的并行时钟电路、用于修改实时时间的红外遥控器电路以及显示环境温度与实时时间的数码显示电路。其硬件结构如下图所示:22设计原理电路图23 硬件设计综述本电路设计主要是由中央处理器、并行时钟、温度及时间显示装置和温度采样电路构成。根据课题及要求可以把硬件设计分成三部分:温度、时间和显示。温度是由AD590感应外界温度产生电流,我们通过把这电流转成电压、调零、放大、反相得到05V的模拟量电压值。从模/数转换器的IN0通道口输入,在单片机的控制下有效地进行A/D转换(模/数转换器和单片机的连接说明等到第二章详述),模/数转换器和单片机通过接口P0把转换来的数字读取到单片机的RAM中去,等待显示。这就是温度的整个过程。我们是用并行时钟芯片来实现时间。我们把AT89C52单片机的P2.3(A13)作为DS12887的片选信号,ALE与AS连接作为单片机的地址选择信号,/WR和/R/W相连,RD和DS连接,通过AD0AD7与单片机的P0接口连接传输数据。这样,在AT89C52的控制下的时钟就实现了时间的运行。当时钟发生运行错误时,我们采用了熊猫集团的红外遥控器YKQ-9来修改错误时间。遥控器与单片机的P3.2(/INT0)口连接。在CPU的控制下,通过遥控器来修改并行时钟芯片的内部时间。遥控器的有关资料将在第四章介绍。这样,温度、时间都已准备好了,我们下一步就要知道怎样把它们显示出来。这是我们设计的最终目的。因为要显示年、月、日、时、分、秒、星期、温度,我们一共采用了18个静态显示器。我们选用74LS164,用单片机的P1.0来带动74LS164的DIN。由于单片机的接口的带动功率有限,因此我们在18个显示器中间加了两个非门来增强带动功率。74LS164的脉冲启动端接到单片机的P1.1。我们再通过准确的程序编辑来控制,就可以实现时间和温度的正确显示,我们的也就大功告成。我们用到的AT89C52是一个芯片可擦除带有片内的Flash ROM的,与MCS-51产品指令和引脚完全兼容单片机。该芯片具有如下功能:有1个专用的键盘/显示接口;有1个全双工异步串行通信接口;有2个16位定时/计数器。 有40个引脚、1000次擦写周期、三级加密程序存储器、3个16位定时/计数器、32个外部双向输入/输出(I/O)端口、256个数据存储器、8K程序存储器、一个T2定时器、6个中断源(我们用到/INT1作为控制ADC0809A/D转换的中断)、可编程串行UART通道。同时它内含2个外中断口,2个全双工串行通信口,2个读写口线,AT89C52单片机可以按照常规方法进行编程,也可以在线编程。我们没有用到外部的ROM、RAM,所以AT89C52的/PSEN端悬空。CPU的工作在不断的取指令和执行指令,完成数据的处理,传输操作。CPU取出一条指令至该指令执成完毕所需的时间称为指令周期,是以机器周期为基本单位。一个机器周期由6个状态周期(S1、S2、S3、S4、S5、S6)组成。每一个状态周期由2个时钟周期组成(P1、P2)。我们采用的AT89C52的晶体振荡器为12MHZ,所以每个机器周期的时间为1S。第三章 温度采样系统的软件设计31 原理简介因为要显示温度,所以首先要把温度采集进来。设计采集电路,用并行时钟芯片进行A/D转换成5V以内的电压,以适合单片机用。这部分的软件主要是CPU怎样控制并行时钟芯片把模拟量转换为数字量。311 AD590的相关知识AD590是实现测量温度关键部分。如果没有AD590对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。AD590输出信号大,与温度有较好的线性关系,使用方便、测温精度高。其精度经过激光平衡调整,校正准确可达正负0.5,全温区范围线性可达正负0.3(AD590M)。输出量为电流型 ,其灵敏度为1uA/,即温度每变化1,其输出电流变化1uA;还具有绝对零度时输出电压为零的特性,即以热力学温标零点做为零输出点,因此在0时其输出电流为273uA。AD590(如图3-1)将温度信号转化成电流信号,其输出的电流值与绝对温度相对应。经电流电压转换电路,转换成相应的电压信号,再经减法器电路取出与摄氏温度值所对应的电压值,最后经A/D转换器转换后送液晶显示器显示,显示出来的数值即为所测的摄氏温度值。温度检测电路是将温度信号转化为电流信号,再转化为相应的电压信号以便测量。 图3-1 AD590AD590的右边部分是一个K=1的跟随器,N点的电位即为6点的输出电压。AD590的阻抗转换是输入电阻大输出,因而可以稳定输入使得输出电压稳定。因而不需要温度补偿和专门的线性电路。由于AD590上诉独特的优点,使它在温度测控方面得到了广泛的应用。3.1.2 0+5V模拟温度量的获得 (1)0+5V输出电压计算AD590在0时输出的电流I=273uA,温度T每增加1,I增加1uA。在-273时是电流零点I=0A。由此可以算出0时N点的电位:UN=0.273mA*2K=0.546V因为我们采集温度显示范围是 -25+55,因此可以计算出输出电压的变化范围: -25时:UN=U6=(0.273-0.025)mA*2K=0.496V+55时:UN=U6=(0.273+0.055)mA*2K=0.656V电压的变化幅度:UW=0.656V-0.496V=0.16V而我们所用的是05V的电压,所以需要设计运算放大电路。放大倍数为:K=5V/(0.656V-0.496V)=5/0.16=31.25 图3-2 温度采集电路图(2)设计分析 部分A:AD590电路,用于温度采样。 部分B:反相电路,D1IN4001是二极管用来稳压。RW2是定位器。作用为调零。使-25时的温度值对应为0V电压。 部分C:反相放大电路。放大倍数为3125 部分D:反相电路。使输出电压为正。由前面的输出电压计算可知电压的变化范围是0.496V-0.656V,而我们设计所用的电压是05V,所以要在部分C的输出端“0”点产生零电位。在部分B中二极管的导通电压是0.7V通过调节定位器RW2可以调节部分B中引脚“2”的电压,当温度为-25时,部分A“6”脚送入部分C“2”脚的电压为+0.496V,此时调节定位器RW2使得部分B中引脚“2”的电压为+0.496V,因为部分B是反相电路所以部分B“6”脚的输出电压为-0.496V,-0.496V与+0.496V相抵则输入部分C“2”脚的电压为0V,所以在部分C的输出端“0”点产生零电位。当温度发生变化时,就拿+55举例,此时部分A“6”脚的输出电压为0.656V与部分B“6”脚的输出电压为-0.496V相抵后送入反相放大电路部分C中,即部分C的输出端“0”点电压为:-(0.656V-0.496V)*31.25=-5V;再将-5V电压送部分D经反相电路后输出电压即为+5V。当温度在-25+55变化时,我们就可以得到设计所需的05v电压。32 A/D转换的软件实现321 ADC0809的相关知识ADC0809是CMOS的8位A/D转换器,采用逐次逼近式进行A/D转换,有8路模拟量输入通道。模拟输入电压范围05V,不需零点和满刻度校准,转换时间为100S,转换绝对误差小于正负1LSB。分辨率为8位,测量范围为0255。我们所测量的范围为080。因此,我们在设计上把ADC0809输出的结果除以3,来缩小范围,提高精度。ADC0809采用28线双列直插式封装,各引脚功能如下:D7D0 8位数字量输出端。IN7IN0 8路模拟量输入端。ALE 地址锁存信号输入端。该信号的上升沿可将地址选择信号ADDA、ADDB、ADDC锁入地址锁存器内。图3-3 ADC0809引脚图 START 启动A/D转换信号输入端。该信号的上升沿用以清除ADC内部寄存器,下降沿用以启动A/D转换器。EOC 转换结束信号输出端。转换结束时该端由低电平跳转为高电平。OE 输出允许控制端,高电平有效。该信号用以打开三态数据输出锁存器,将转换后的8位数据送至单片机的数据总线上。CLOCK 转换定时时钟输入端,它的频率决定了A/D转换器的转换速度。时钟频率既不能高于640KHz,也不能低于100KHz,对应的转换速度为100us.VRET(+)、VRET(-) A/D转换器参考电压正负端。ADDA、ADDB、ADDC 多路开关地址选择输入端。其取值与通道对应关系如表3-1所示(即时的P23即A15等于0): 多路开关地址线被选中的输入通道对应通道口地址ADDCADDBADDA000IN000H001IN101H010IN202H011IN303H100IN404H101IN505H110IN606H111IN707H表3-1 ADC0809取值与通道对应关系322 A/D转换的软件实现(1)ADC0809时序分析1单片机时钟频率为6MHZ,ALE输出频率为其1/6即1MHZ,再二分频为500KHZ,符合ADC0809的要求。2ADC0809具有输出三态锁存器,其8位D输出分脚可直接单片机的数据总线相连。3地址译码器引脚A、B、C分别与地址A8、A9、A10相连,以选通IN0IN7中的一个通路。4将P27(A15)作为片选信号,在启动A/D转换时,由单片机的写信号/WR和P27控制ADC的地址锁存(ALE)和转换启动(START)。5由于ADC0809的START与ALE连在一起,因此ADC0809在锁存通道地址的同时,启动并进行转换。6在读取转换结果时,用单片机的读信号/RD和P27脚经一级或非门后,产生正脉冲作为OE信号用以打开三态输出锁存器。7从上可知:ALE=START=/(/WR+/P27)、OE=/(/RD+/P27)。P27应设置为低电平,P27=A15=O;A8、A9、A10(即A、B、C)给出被选择的模拟通道的地址,执行一条输出指令,启动A/D转换,执行一条输入指令,读取转换结果。8ADC0809的EOC脚经过以非门连接到AT89C52的/INTI脚。采用中断方式。当转换结束时,EOC发出一脉冲向单片机提出中断请求,响应中断,由外中断1的中断服务程序读A/D结果,并启动下一次ADC0809的转换。外中断采用边沿触发方式。时序图如图3-4所示: CLOCK STARTALE地址模拟输入比较器输入输出允许EOC输出 三态(2)温度采样流程图开始 延时100S 采集温度一次 A除以3 N A25? #25-AA-#25 Y A除以10写入CPURET(3)程序CYWD:MOV DPTR,#DZH0809 ;启动转换 MOVX DPTR,A CALL D100S ;延时100S MOVX A,DPTR MOV B,#3 ;除以3,使范围宿小 DIV AB CJNE A,#25,CYWD1 ;与25做比较CYWD1:JNC CYWD2 MOV B,A ;A25,表示温度值为负 MOV A,#25 CLR C SUBB A,B ;25-A即得到温度数字 MOV SJRQSZ+15,#12 ;在数字前加号 MOV B,#10 ;除以10,把个位和十位分开 DIV AB MOV SJRQSZ+16,A ;送入保存 MOV SJRQSZ+17,B RETCYWD2: MOV B,#25 ;A25,表示温度值为正 SUBB A,B ;A-25即得到温度数字 MOV SJRQSZ+15,#11 ;在前加+号 MOV B,#10 ;除以10,把个位和十位分开 DIV AB MOV SJRQSZ+16,A ;送入保存 MOV SJRQSZ+17,B RET END第四章 并行时钟的软件实现41 DS12887的相关知识及其初始化411 DS12887的相关知识DS12887是内置锂电池的日历时钟芯片,并有128字节带掉电保护的RAM,CPU通过读DS12887的内部时标寄存器得到当前的时间(秒、分、时)和日历(日、月、年、星期),也可通过选择二进制码或BCD码初始化芯片的10个时标寄存器。其114BIT非易失性静态RAM可供用户使用,对于没有RAM的单片机应用系统,可在主机掉电时来保存一些重要的数据。DS12887的4个状态寄存器用来控制和指出DS12887模块的当前工作状态,除数据更新周期外,程序可随时读写这4个寄存器,各寄存器的功能和作用如下。DS12887内部RAM各专用寄存器地址功能,如表4-1:DS12887的RAM和各专用寄存器的访问如下实现,若片选地址DS=#0DDXXH,则芯片内部RAM 和寄存器和地址为#0DD00H#0DD7FH。应指出的是,尽管DS12887的专用时标年寄存器只有一个,但通过软件编程可利用其内部的不掉电的RAM区的一个字节实现年度的高两位显示。 地址功能二进制十进制地址功能二进制十进制00H秒00-3B0-5905H12小时01-0C1-1200-170-2301H秒闹钟00-3B0-5924小时00-170-2302H分00-3B0-5906H星期01-071-703H分闹钟00-3B0-5907H日01-1F1-3104H12小时制01-0C1-1208H月01-0C1-1224小时制00-170-2309H年00-630-99表4-1 DS12887内部RAM和各专用寄存器地址分布表DS12887的引脚功能:AD0AD7:地址/数据 MOT:总线类型选择,与89C52连接时接地。 CS:片选 AS:地址选通,与89C52连接时接ALE。 R/W:读/写控制,与89C52连接时接WD。 DS:数据选通,与89C52连接时接RD。 RESET:复位,接+5V。 IRQ:中断请求输出。 寄存器0AHUIP:更新进行标志DV2- DV0:为010时晶振工作,其他组合停止。 RS3- RS0:频率选择。寄存器0BHSET:为1时禁止更新。为0时正常。 PIE:为1时周期中断允许 AIE:为1时警报中断允许 UIE:为1时更新结束中断允许 SQWE:为1时方波输出允许 DM:为0时时间为BCD码,为1时为二进制。 24/12:为1时是24小时进制。为0时是12小时进制 DSE:置0 寄存器0CH IRQF:中断申请标志 PF:周期中断标志 AF:警报中断标志 UF:更新结束中断标志 寄存器0DHVRT:为0时表示内部锂电池耗尽。412 DS12887内部的初始化DS12887在初始化时,首先应禁止芯片内部的更新周期操作。所以,应先将DS12887状态寄存器B中的SET位置“1”,然后初始化00H09H时标参数寄存器和状态寄存器A。此后,再通过读状态寄存器C,清除寄存器C中的周期中断标志位PF、报警中断标志位AF、更新周期结束中断标志位UF。通过读寄存器D中的VRT位后将自动使该位置“1”。最后,状态寄存器B中的SET位置“0”,芯片开始计时工作。如下初始化程序:TIME: MOV DPTR,# DZH887+0BH ;寄存器B中的SET位置1,禁止芯片内部更新周期 MOV A,#0A2H MOVX DPTR,A ;初始化时标寄存器程序,输入当前时间 MOV DPTR,#DZH887+00H MOV A,#00H MOVX DPTR,A ;秒时标单元 INC DPTR MOV A,#0FFH ;秒时标报警单元送不关心码 MOVX DPTR,A INC DPTR MOV A,#00H MOVX DPTR,A INC DPTR MOV A,#0FFH ;分时标报警单元送不关心码 MOVX DPTR,A INC DPTR MOV A,#0CH ;小时时标单元送12 MOVX DPTR,A INC DPTR INC DPTR MOV A,#06H ;星期时标单元送6 MOVX DPTR,A INC DPTR MOVX DPTR,A INC DPTR MOV A,#02H ;月时标单元送2 MOVX DPTR,A INC DPTR MOV A,#04H ;年时标单元送04 MOVX DPTR,A MOV DPTR,#DZH887+0EH MOV A,#14H ;年度高两位送20 MOVX DPTR,A MOV DPTR,#DZH887+0AH MOV A,#20H ;初始化状态寄存器A MOVX DPTR,A MOV DPTR,#DZH887+0CH MOVX A,DPTR ;清状态寄存器C INC DPTR MOVX A,DPTR ;状态寄存器D的URT位置1 MOV DPTR,#DZH887+0BH MOV A,#22H ;初始化状态寄存器B MOVX DPTR,AMOV IE,#81H ;CPU开中断RET42 CPU读取时间的程序设计421 流程图返回A13?关中断 YAcc.7=1? Y N月个位3? N N秒读取A-#17HA-#12H Y分读取月读取A24? Y年读取A9? N时个位4? N N Y YA-#2AHA-#2AHA-1时间取星期读取年前两位读取A32? Y返回 N日个位2? N YA-#36HA-#31H日读取422 程序START: SETB PSW.3 ;选择01区SHJDCH: SETB P3.3 ;关中断 MOV DPTR,#DZH887+0AH ;启动转换 MOVX A,DPTR JBC ACC.7,SHJDCH ;看CPU是否忙 MOV R1,#SJRQSZ+13 ;CPU不忙,则开始读取 MOV DPTR,#DZH887+00H ;读时标值 MOVX A,DPTR ANL A,#0FH ;秒个位 MOV R1,A DEC R1 MOVX A,DPTR INC DPTR INC DPTR SWAP A ANL A,#0FH ;秒十位 分 分 CJNE A,#24H,XGSHB ;24小时制的实现 XGSHB: JC XGSHB2 ;A24 转XGSHB2 ANL A,#0FH ;A24 取个位数 CJNE A,#04H,XGSHB3 ;个位数与4作比较 XGSHB3: JC XGSHB4 ;若个位数4,跳到XGSHB4 MOVX A,DPTR SUBB A,#24H ;若个位数4,则A-24并读取 JMP XGSHB5 XGSHB4: MOVX A,DPTR ;若个位数4,则A-#2AH SUBB A,#2AH XGSHB5: MOVX DPTR,A XGSHB2: ANL A,#0FH ;时个位 日 月 年 CJNE A,#1,DSHZH ; MOV A,#9 ;因为星期日不用星期7表示,“日”=“8”,所以与“9”做比较DSHZH : DEC A MOV R1,A ;星期 MOV DPTR,#DZH887+0CH ;清中断标志寄存器C MOVX A,DPTR MOV R1,#SJRQSZ MOV A,#02H ;实现年的前两位 “20” MOV R1,A INC R1 CLR A MOV R1,A CALL SMSX ;时间显示 POP DPH ;出栈保护 POP DPL POP A POP PSW RETI43 时钟的修改431 红外摇控器的资料及读键码的软件设计(1)红外摇控器的资料红外摇控器是比按键控制面板更加简便的另一种控制方式。红外摇控器可实现按键面板所实现的大部分功能,其遥控距离为30米左右。红外遥控器采用专用遥控芯片,在不使用时会自动进入低功耗模式,能节省电源和廷长电池的使用寿命。 图4-2 遥控器按键图按键功能说明:“0 9” 键:数字键“空格”键:输入空格“ ”键:输入“ ”“开关”键:在修改数据时退出修改状态“时设”键:设置实时时间和温度“.”键:小数点键“位选”键:在时间或数据设置时,选择修改位置操作说明: 1.开关 在数据修改状态下,按“开关”键,可以退出数据修改状态。2.设置 按“时设”键,进入时间设置。这时可以用数字键更改时间,或用“位选”键改变修改位置。时间修改正确后, “开关”键,退出时间修改。3.在修改状态时,任何时候按“开关”键,都退出修改状态。如图4- 3所示:一引脚接+5V电源;一引脚接地;另一引脚接P3.2接AT89C52的“INT0”脚。 图4-3 接收摇控器信号的芯片的引脚图当按动熊猫彩电的摇控器的键时,以上与单片机相连的芯片接收到红外信号,单片机内程序开始启动。按熊猫彩电的摇控器上相应的键就可以修改显示。给单片机控制系统加一个红外遥控器接口,用手持红外遥控器来代替键盘操作或计算机通信操作,给操作使用者带来了极大的方便和操作的灵活性。单键操作时,M50462AP的键矩阵与键数据码的对应关系如表4-2所示。键数据码(D7D0)中,低位3bit(D2D0)由键输出端(AH)决定,中间3bit(D5D3)由键输入端(I1I8)决定,高位2bit(D7D6)在单键操作时为“00”,因而总共形成26=64组单键操作数据码。数据码与按键序号的对照见表4-3。表4-2 M50462AP键矩阵与数据码的关系数据键输出D0D1D28进制码数据键输出D0D1D28进制码A0000I10000B1001I21001C0102I30102D1103I41103E0014I50014F1015I61015G0116I70116H1117I81117表4-3 M50462AP编码表序号发射器编码D7D0序号发射器编码D7D0序号发射器编码D7D0序号发射器编码D7D01000000001700000010330000010049000001102000010001800001010340000110050000011103000100001900010010350001010051000101104000110002000011010360001110052000111105001000002100100010370010010053001001106001010002200101010380010110054001011107001100002300110010390011010055001101108001110002400111010400011110056001111109000000012500000011410000010157000001111000001001260000101142000011015800001111110001000127000100114300010101590001011112000110012800011011440001110160000111111300100001290010001145001001016100100111140010100130001010114600101101620010111115001100013100110011470011010163001101111600111001320011101148001111016400111111M50462AP设有12条双键指令,即当AI1、BI1、CI1键分别与EI2HI2中的任意键同时按下时,将会有新的数据码出现,如表4所示。前已述及单键操作时,数据码的高两位(D7D6)为“00”;双键操作时,数据码的低6位(D5D0)决定于与I2相连的键(参见表4-2),高两位分别成为“01”、“10”、“11”。没有设计成双重功能的键,如果同时按下,则输出端/OUT保持高电平,不传送编码脉冲。表4-4 M50462AP双键功能与数据码的关系双 键数 据 码十六进制码D7D0AI1EI2010011004CHFI2010011014DHGI2010011104EHHI2010011114FHBI1EI2100011008CHFI2100011018DHGI2100011108EHHI2100011118FHCI1EI2110011000CCHFI2110011010CDHGI2110011100CEHHI2110011110CFHM50462AP发射器输出的控制信号(编码脉冲)主要由用户码和数据码构成。用户码和数据码统称传送码。传送码不是用电平的高低来表示:“1”和“0”,而是采用PCM(脉冲位置调制)方式,按照脉冲的时间关系来区分“1”和“0”:“1”的脉冲周期为“0”的两倍。如图4-4所示。 图4-4 M50462AP PCM(脉冲)码每一条发射指令的传送码就是由这样的PCM码构成的。经载波(38KHz)调制输出时,仅在脉冲部分(负极性)有载波出现,脉冲过后即停止发射,这样可很大程度上降低发射功耗。集成电路M50462AP的用户码为8位(C7C0),其中C0C3与C6、C7在芯片出厂前已设定好。在图2的应用电路中/C4、/C5为用户码选择端子,本电路中令其开路,相当于用户码的C4、C5位为0,从而构成01000111(47H)的用户码。M50462AP的编码方式是将用户码和数据码各发射一次。码的形式(以单键操作4号键为例)如图4-5所示。每一条传送指令由16个“0”、“1”代码组成,指令的末尾再附加一个码头,因此共包括17个宽度为0.25ms的负脉冲(码头)。CPU在收到这种传送码之后,通过对脉冲个数的检查来排除错误的编码,具体说来就是于第17个脉冲之后在4ms的时间之内不应再出现第18个脉冲,否则即视为错误的编码。当键按下时,传送指令码按44ms的周期持续出现,至键松开时停止输出。用户码和数据码在通过/OUT通道串行输出时,均按由低位(LSB)到高位(MSB)的顺序进行,即最先输出的是LSB,最后输出的是MSB。图4-5 M50462AP传送指令码的形式(4号按键为例)(2)读键码子程序以下是51汇编读键码子程序: YKQ:PUSH PSW ;保护现场 SETB PSW.4 ;用第三R寄存器组 YKQ8:MOV R6,#5 ;判5100uS=0.5mS YKQ3:JNB P3.2,YKQ1 JMP YKQ2 ;P3.2为高电平转移 YKQ1:CALL D100US ;延迟100uS DJNZ R6,YKQ3 JMP YKQ4 ;低电平宽度大于0.5mS,出错返回 YKQ2:MOV R6,#35 ;判3.5mS YKQ7:CALL D100US DJNZ R6,YKQ5 JMP YKQ106 ;高电平宽度大于3.5mS,转移 YKQ5:JB P3.2,YKQ7 CALL D100US JB P3.2,YKQ7 JMP YKQ8 ;高电平宽度小于3.5mS,转等待 YKQ6:MOV R6,#2 ;判2200100uS=40mS YKQ10:MOV R5,#200 YKQ11:CALL D100US DJNZ R5,YKQ9 DJNZ R6,YKQ10 YKQ4:POP PSW ;40mS内无遥控信号,恢复现场 CLR PSW.5 ;置无遥控信号标志RET ;返回 YKQ9:JB P3.2,YKQ11 CALL D100US JB P3.2,YKQ11 MOV R6,#4 ;低电平,判0.4mS YKQ13:CALL D100US DJNZ R6,YKQ12 JMP YKQ4 ;大于0.4mS,出错,转返回 YKQ12:JNB P3.2,YKQ13CLR A ;清键值寄存器 MOV B,#0 MOV R5,#16 ;传送码共16位 YKQ22:M
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年石化化工行业6月看好钾肥、阿洛酮糖、制冷剂、农药、生物柴油的投资方向
- 制造业供应链数字化协同管理在2025年的绿色制造与环保技术应用
- 2025年能源行业报告:碳捕获与封存技术应用前景预测与解析
- 工业互联网平台NFV在智能城市智慧旅游中的应用实践报告
- 直播电商行业主播个人品牌价值评估与市场分析报告
- 2025年音乐流媒体平台版权运营与数字音乐版权市场发展趋势与挑战分析报告
- 城市生活垃圾分类处理公众参与与社区环保活动策划研究报告
- 医疗美容行业消费者心理与服务质量改进策略深度报告
- 评课万能评课稿集合12篇
- 施工成本控制管理制度
- 中华文明的起源与早期国家课件
- Unit 8 I come from China. (教学设计)-2023-2024学年湘少版(三起)英语四年级下册
- 2024年湖南中考道德与法治试卷真题答案解析(精校打印)
- 《食品经营许可证》申请书(范本)
- 2024年浙江高考英语考纲词汇表
- 广东省揭阳市2024年小升初语文真题试卷及答案
- 化工过程安全管理导则培训
- 古代文论-杨宁老师-笔记
- 2024年西藏事业单位真题
- 水利水电工程单元工程施工质量验收评定表及填表说明
- 茶楼股东合作协议范本
评论
0/150
提交评论