单片机实用接口技术.ppt

上传人:sccc 文档编号:5814558 上传时间:2023-08-22 格式:PPT 页数:91 大小:940.51KB
返回 下载 相关 举报
单片机实用接口技术.ppt_第1页
第1页 / 共91页
单片机实用接口技术.ppt_第2页
第2页 / 共91页
单片机实用接口技术.ppt_第3页
第3页 / 共91页
单片机实用接口技术.ppt_第4页
第4页 / 共91页
单片机实用接口技术.ppt_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《单片机实用接口技术.ppt》由会员分享,可在线阅读,更多相关《单片机实用接口技术.ppt(91页珍藏版)》请在三一办公上搜索。

1、1,单片机实用接口技术,键盘接口技术LED接口技术A/D转换器与单片机的接口设计D/A转换器与单片机的接口设计,2,键盘接口设计,几种设计方法 1.利用并行口设计 2.利用8279芯片设计,键的识别 1.行扫描法 2.线反转法,消除键的抖动延时扫描,键的保护多键同时按下,3,独立式按键接口电路,+5V,P1.0,P1.1,P1.2,P1.3,8031,4,5,线反转法设计要点,将行线编程为输入线,列线编程为输出线,并使输出线输出为全零电平,则行线中电平由高到低所在行为按键所在行。同前面相反,将行线编程为输出线,列线编程为输入线,并使输出线输出为全零电平,则列线中电平由高到低所在列为按键所在列。

2、综合上两步的结果,可确定按键所在行和列,从而识别出所按的键,6,键盘扫描方式,CPU对键盘的扫描分为编程扫描,定时扫描,中断扫描三种,7,8,编程扫描方式8255的口地址:PA口:0700H PC口:0702H 控制寄存器:0703H()判断有无键按下:A口输出全,读C 口低位,若4位为全 1,则表示无键按下。否则有键按下。(2)去抖处理:软件延时10ms 再读PC口,判断有无键按 下。,开始,返回,有键闭合吗?,软件延时ms,有键闭合吗?,确定按键位置,闭合键释放?,按键值存,N,Y,N,N,Y,Y,9,(3)PA口依次逐列输出扫描信号,PC口低4位输入4位行信 号,均为低电平有效。由此确定

3、出按键的行,列位置。(4)键闭合一次仅进行一次按键处理。待按键释放以后,才 能进行下一次按键处理。BEGIN:ACALLKEY_ON;判断有无键按下JNZDELAY;有键按下AJMPBEGINDELAY:ACALLDL10MS;去抖延时ACALLKEY_ON;再判断有无键按下JNZKEY_NUM;有键按下,确定按键位置AJMPBEGINKEY_NUM:ACALLKEY_P ANLA,#0FFHJZBEGINACALLKEY_CODE;编码PUSHAKEY_OFF:ACALLKEY_ON;等待按键释放JNZKEY_OFF,10,POPARET;判断有无键按下子程序,有键按下时,A的值不为0KEY

4、_ON:MOV A,#00HMOVDPTR,#0700H;PA口MOVXDPTR,A MOVDPTR,#0702H MOVXA,DPTRCPLAANLA,#0FHRET;延时10ms子程序(时钟6MHZ)DL10MS:MOVR7,#05HLOOP1:MOV R6,#0F9HLOOP2:NOPNOPDJNZR6,LOOP2DJNZ R7,LOOP1RET,11,;扫描按键位置的子程序KEY_P:MOVR7,#0FEHMOV A,R7L_LOOP:MOVDPTR,#0700HMOVXDPTR,AMOVDPTR,#0702HMOVXA,DPTRANLA,#0FHMOVR6,A;R6中保存行号XRLA

5、,#0FH;低4位取反JZNEXT;此行无键按下AJMPKEY_CNEXT:MOVA,R7 RLAJNBACC.0,ERRORMOVR7,A;R7保存扫描码 AJMPL_LOOPERORR:MOVA,#00H;置出错码00HRET,12,;确定按键的行列位置子程序KEY_C:MOVR2,#00H;R2用于行计数MOVR3,#00H;R3用于列计数MOV R5,#04HMOV A,R6;行号AGAIN1:JNBACC.0,OUT1INCR2 RRADJNZR5,AGAIN1OUT1:INCR2MOVR5,#08HMOVA,R7;列号AGAIN2:JNBACC.0,OUT2INC R3RRADJN

6、ZR5,AGAIN2OUT2:INC R3MOVA,R2SWAPAADDA,R3;行号在高4位,列号在低4位RET,13,;编码子程序,键码=行号*8+列号KEY_CODE:PUSHAANLA,#0FHMOVR7,A;R7=列号DECR7POPASWAPAANLA,#0FHDECAMOVB,#08HMULABADDA,R7RET中断方式必须用硬件形成中断信号,14,15,编程要点:P1.0,P1.1,P1.2作为输出口输出扫描码000111,经译码后产生列扫描信号,此时8列中只有1列为0电平。其余各都为高电平。行状态由P1.3,P1.4读入,16,LED显示器接口设计,LED的结构LED静态显

7、示LED动态显示,17,18,1.LED静态显示方式 各数码管的共阴极(或共阳极)连接在一起并接地(接+5V),每个数码管的各段分别与一个8位的锁存器输出相连,这样当锁存器存入一个数据后,数码管将始终显示此数据。特点:硬件电路多。编程简单。,19,20,START:SETBP1.7MOVR1,#06HMOVR0,#00HMOVDPTR,#TABLOOP:MOVA,R0MOVCA,A+DPTRMOVSBUF,AWAIT:JNBT1,WAIT;串行输出完成否CLRT1INCR0DJNZR1,LOOPCLRP1.7TAB:DB06H,4FH,3FH,7FH,40H,73H软件译码格式:D7 D6 D

8、5 D4 D3 D2 D1 D0 dp g f e d c b a,21,2.LED动态显示方式 将各个数码管对应的段选线并联在一起,由一个8位的I/O口控制,形成段选线的多路复用。而各位的公共极(共阳或共阴)分别由相应的I/O口线控制,实现各位的分时选通。特点:硬件电路简单。程序设计复杂。,22,23,DISP:ORLP1,#80H;选择8155的I/O口(P1.7=1)MOVR1,#0F8H;8155命令口地址MOVA,#0F3H;8155方式命令字MOVXR1,ASTART:MOVDPTR,#TABMOVR0,#00HMOVR2,#80H;位码SCAN:MOVR1,#0FAH;PB口地址

9、MOVA,#00HMOVXR1,A;全暗MOVA,R0MOVCA,A+DPTR;取段码DECR1;指向PA口MOVXR1,A;段码送PA口MOVA,R2INCR1;指向PB口MOVXR1,A;位码送PB口ACALLDL1MSINCR0MOVA,R2;改变位码,指向下一位,24,CLRCRRCAMOVR2,A XRLA,#00H;改变标志寄存器JNZSCANAJMPSTARTDL1MS:SETBD3H;PS0(D3H)=1MOVR2,#83H;使用第1组工作寄存器LL0:NOPNOPDJNZR2,LL0CLRD3H;恢复第0组工作寄存器RETTAB:DB0C6H,8CH,0C1H,0CEH,86

10、H,88H,0A1H,91H,25,LED显示器驱动技术 发光二极管工作电流在10ma左右,而一般I/O接口不能提供这么大的电流,需要使用驱动电路。常用的有 ULN2003A,7段驱动,ULN2803 8段驱动。特点:1。最大驱动电流可达500ma 2。反相驱动 3。需要限流电阻,数码管越多,限流电 阻的阻值越小。,26,27,A/D转换器的接口设计 1。根据要求的精度选择位数。8,12,16位 2。根据信号性质选择转换速度。低速:直流和缓变信号,如温度,压力,流量 中速:工业多通道控制系统,声频信号 高速:雷达信号,视频信号 3。选择采样保持器 除直流和变化非常缓慢的信号外,都应使用采样保持

11、器,28,29,延时等待方式:MAINMOVR1,#DATAMOVDPTR,#7FF8HMOVR7,#08HLOOP:MOVXDPTR,A;启动A/DMOVR6,#0AHDLAY:NOPNOPNOPNOPNOPDJNZR6,DLAYMOVXA,DPTRMOVR1,AINCDPTR;指向下一通道INCR1DJNZR7,LOOP.,30,31,中断方式:INADC:SETBIT1;外部中断1设为下降沿触发中断SETBEA;开总中断SETBEX1;开INT1中断MOVDPTR,#0FEFFH;选择ADC0809IN7(P2.0=0)MOVA,#00HMOVX DPTR,A;启动A/D转换PINT1:

12、MOVDPTR,#0FEFFHMOVX A,DPTR;读转换数据MOV50H,AMOVA,#00H;启动下一次A/D转换MOVX DPTR,ARETI,32,33,ADC0809A/D转换器与单片机的接口设计一、ADC0809A/D转换器的接口设计 下面以ADC0809为例来介绍A/D转换器的接口设计。ADC 0809是一种常用的8位逐次比较式AD转换器,其特点 如下:可直接与微处理机接口,无需另加接口逻辑。l具有三态锁存输出,可与微处理机总线接口。l 具有锁存控制逻辑的8通道模拟开关可输入8个模拟信号。l 单一电源+5V。,34,主要指标如下:1分辨率 8位 2转换时间 100s 3绝对误差

13、 1LSB 4功耗 15mW 引脚功能:IN0IN7:8通道模拟量输入 A、B、C:通道选择信号,35,ALE:通道地址锁存信号。该信号上升沿把A、B、C上的 通道号锁存在地址锁存器中。D0D7:数字量输出。OE:输出允许。OE为1时,D0D7输出转换后的数据,OE为0时,D0D7呈高阻态。START:启动信号,下降沿启动。EOC:转换结束信号。该信号从启动信号上升沿开始经1、8个 时钟周期后由高电平变为低电平,表征AD转换正在 进行;64个时钟周期后(每位转换需8个时钟周期)由低 变高,表征转换结束,36,CLK:时钟输入。时钟频率640kHz。、:基准电压输入基准电压必须满足:0Vcc V

14、cc:数字电源电压输入。范围:+45V6V。GND:数字、模拟公共地。例:ADC 0809接口技术ADC 0809带有三态输出锁存器,可以和51系列单片机的总线直接接口,后面的图示出了ADC 0809与51系列单片机的接口电路,37,ADC 0809与8031单片机的接口电路,38,P2.3=0时,选中ADC 0809(允许启动各通道转换与读取相应的 转换结果)转换结束信号EOC经反相后,接至单片 机的外部中断INT1,由外部中断1的中断服务程序读取 转换结果。外部中断INTl采用边沿触发方式 启动各通道进行AD转换的程序段如下:CLR P2.3;0809的端口地址,P2.3=0 MOV A,

15、#N;通道号N MOVX DPTR,A;启动N通道,此指令用来产生 ALE和START信号 N=07,对应于IN0,IN1,IN7。,39,中断服务程序中读转换结果的程序段如下:CLR P2.3;选中ADC0809,P2.3=0 MOVX A,R0;读转换结果到A中按照前面的电路图设计一个由ADC0809构成的八通道数据采集系统,要求:采样周期T=2秒,在每个采样周期内巡回采集八通道模拟量输入并存放在以DATA为首地址的8个连续单元中。软件设计如下:ORG 0000H AJMP START;跳转主程序 ORG 000BH AJMP CTC0;跳转定时中断0服务程序,40,ORG 0013H A

16、JMP INT1;跳转外部中断1服务程序START:MOV TMOD,#1;T0的初始化 MOV TL0,#0B0H MOV TH0,#3CH MOV IP,#2;T0设为高优先级中断(PT0=1)SETB IT1;外部中断1设为下降沿触发中断 SETB TR0;触发T0工作 SETB ET0;开T0中断 SETB EX1;开INT1中断 SETB EA;开总中断,41,MOV TIM,#0ECH;秒计数单元设初值;其他任务(略)CTC0:PUSH A;T0中断服务程序 MOV TL0,#0B0H MOV TH0,#3CH INC TIM MOV A,TIM JNZ CTC01;未到2秒,中断

17、返回 MOV TIM,#0ECH;已到2秒,秒计数单元设初值 MOV ABM,#0;从通道0开始 ACALL SR;调用启动A/D子程序,42,CTC01:POP A RETI;T0中断返回INT1:CLR P2.3;外部中断1服务程序 MOV A,#DATA ADD A,ABM MOV R1,A;R1中是某通道的数据存放地址 MOVX A,R0 SETB P2.3 MOV R1,A CJNE ABM,#7,INT11 RETI,43,INT11:INC ABM ACALL SR RETISR:CLR P2.3;启动ADC0809子程序 MOV A,ABM MOVX R0,A SETB P2.

18、3 RETABM:EQU 30H;通道地址暂存器DATA:EQU 31H;采样值缓冲区(31H-38H)TIM:EQU 39H;2秒计时单元,44,D/A转换器与单片机的接口设计1.D/A转换器的主要技术指标(1)分辨率 n 是D/A转换器的位数(2)线性度(3)转换精度(4)建立时间(5)输出电平,45,(6)输入代码设计要点:1.参考电源的配置-改变输出模 拟电压的范围、极性 齐纳二极管 精密稳压电源 2.输出电压极性 单极性 双极性 硬件电路实现,46,47,MOVDPTR,#7FFFHMOVA,#DATAMOVX DPTR,A,48,49,12位D/A转换器DAC1208系列采用双缓冲

19、方式输出12位数据时:1。先输出高8位D11D4 2。后输出低4位D3D0 3。先后顺序不能反设 高8位数据在内存DIGIT单元,低4位在DIGIT+1单元。转换程序:,50,MOVDPTR,#4001H;高8位地址MOVR1,#DIGITMOVA,R1MOVXDPTR,A DECDPTR;低4位地址 INCR1MOVA,R1MOVXDPTR,AMOVDPTR,#6000H;触发12位输出MOVDPTR,A,51,PWM脉宽调制 PWM脉宽调制信号很适合作以下工作:1 1、控制电机的转速(串激振流子电机、单相电机、直流 电机)和电热式加热装置。控制电机转速和电热式加热装置需要较大的功率,PWM

20、脉 宽调制信号必须经过变换装置才能提供足以驱动电机的功 率或加热装置需要的功率,常用的变换装置是固态继电器。,Tp,Tc,52,固态继电器的主要特点如下:(1)光电耦合器作为输入级,完善的隔离使其具有高 抗干扰能力。(2)输入端与DTL、TTL、HTL电平兼容,可采用直 流或脉冲触发方式。(3)无触点、无火花、无机械运动部件,无动作噪声,耐振动,长寿命。(4)小的死区电压,小射频干扰。(5)内部具有RC过电压吸收电路。(6)高于2KV的输入、输出间及底壳间的安全绝缘电 压,UL认可的安全部件。,53,使用固态继电器作为功率变换装置的电路图如下:负载为电机(调速)或电阻加热器(调温),+-,54

21、,1 2、作D/A转换器使用积分电路就可以把PWM脉冲变成D/A转换器输出的电压信号。使用PWM实现DA转换的积分电路如图所示。,55,在图中,输出端Vout的平均电压与PWM脉冲的占空比成正比。实际的Vout输出是在平均电压的基础上叠加上一定的纹波。积分电路中电容、电阻值和PWM的频率将影响纹波的幅度和频率,也影响响应速度。,56,应用实例,汽车转弯信号灯控制系统高压泵站监控器,57,汽车转弯信号灯控制系统 1。汽车转弯时,左右尾灯和仪表板的 左转右转指示灯相应边应发出闪烁 信号。2。当应急开关合上时,所有6个信号灯 都应闪烁。3。汽车刹车时,2个尾灯发出不闪烁信 号。4。如刹车时正在转弯,

22、相应的转弯闪 烁信号不受影响。,58,59,高频闪烁:信号灯以30Hz频率闪烁,产生低亮度。用于PARK(停靠)信号有效时。低频闪烁:信号灯以1Hz频率闪烁,产生闪烁效果。低频闪烁用T0和软件计数器SUB_DIV实现。,当TH0=-16,TL0=0,晶振频率=12MHz 时则T0每隔4096微秒中断一次。当SUB_DIV=244(初始值),每次中断减1,减至0历经时间为244*4096微秒=0.9999414秒SUB_DIV.7=0 占0.5秒,SUB_DIV.7=1 占0.5秒。类似地,根据SUB_DIV.0的变化可得高频闪烁,60,输入部分,+12V,P1.0P1.1P1.2P1.3P1.

23、4,刹车板紧急开关停靠灯转弯开关,左,右,8051,61,输出部分,62,开始,置软件计数器初值,PSW入栈,PSW出栈,计算输出右侧灯,计算输出左侧灯,产生快闪信号,故障报警处理,监测故障,SUB_DIV装244,设置T0初值,模式,TH0装-16,中断返回,中断开始,有故障?,1秒到否?,允许T0中断,允许总中断,启动T0,等待,Y,N,主程序流程,中断服务程序流程,63,BRAKEEQUP1.0;刹车EMERGEQUP1.1;应急PARKEQUP1.2;停靠L_TURNEQUP1.3;左转R_TURNEQUP1.4;右转L_FRNTEQUP1.5;左前灯R_FRNTEQUP1.6;右前灯

24、L_DASHEQUP1.7;左仪表板R_DASHEQUP2.0;右仪表板L_REAREQUP2.1;左后灯R_REAREQUP2.2;右后灯S_FAILEQUP2.3;故障信号SUB_DIVEQU20H;软件计数器HI_FREQEQUSUB_DIV.0LO_FREQEQUSUB_DIV.7DIMEQUPSW.1;位操作数暂存位,64,ORG0000H LJMPINIT ORG000BH;T0中断MOVTH0,#-16PUSHPSWAJAMPUPDATEORG0040HINIT:MOVTL0,#0MOVTH0,#-16MOVTMOD,#01100001B;T0方式1MOVSUB_DIV,#244

25、 SETBET0SETBEASETBTR0SIMP$,65,UPDATE:DJNZSUB_DIV,T0SERV;MOVSUB_DIV,#244 ORLP1,#11100000B;P1.5,P1.6,P1.7置1 ORLP2,#00000111B;P1.5,P1.6,P1.7置1 所有灯亮 CLRL_FRNT;关左前灯 JBT0,FAULT;T0输入1,有故障SETBL_FRNT;开左前灯CLRL_DASH;关左仪表灯 JBT0,FAULT;T0输入1,有故障SETBL_DASH;开左仪表灯CLRL_REAR;下面与前类似JBT0,FAULT SETBL_REARCLRR_FRNTJBT0,FA

26、ULT,66,SETBR_FRNTCLRR_DASHJBT0,FAULTSETBR_DASHCLRR_REARJBT0,FAULTSETBR_REARJB T0_T0SERVFAULT:CPLS_FAILT0SERV:MOVC,SUB_DIV.1;形成占空比为ANLC,SUB_DIV.0;62.5%的30HzORLC,SUB_DIV.2;频率信号 ANLC,PARK MOVDIM,C,67,MOVC,L_TURNORLC,EMERGANLC,LO_FREQ MOVL_DASH,CMOVF0,CORLC,DIMMOVL_FRNT,CMOVC,BRAKEANLC,/L_TURNORLC,F0ORL

27、C,DIMMOVL_REAR,C,68,MOVC,R_TURNORLC,EMERGANLC,LO_FREQ MOVR_DASH,CMOVF0,C ORLC,DIMMOVR_ FRNT,CMOVC,BRAKEANLC,/R_TURNORLC,F0ORLC,DIMMOVR_REAR,C POPPSWRETI END,69,高压泵站监控器 1。分时地自动巡回检测各台高压泵的 出口压力,并将检测结果送记录仪 2。定时检测高压泵站系统压力,水箱 高低水位的3个电接点的通断状态。3。高压泵的出口压力超限时,自动切 断相应电源,并发声光报警信号。故障排除后,由人工“解除”保护“状 态,恢复高压泵的运行。4。

28、系统压力,水箱高低水位的电接点 闭合时,仅发相应报警信号。,70,71,主程序:,复位入口,系统初始化,调显示设定子程序,显示控制,键识别及键代码生成,调键处理子程序,72,显示设定子程序:DSSUB:MOVR2,#4MOVR0,#DSMEM;R0指向显示缓冲区DSLP:MOVR0,#0FH;显示缓冲区DJNZR2,DSLPMOVA,DSWI;DSWI*3,因为跳转表每项ADDA,DSWI;占3个字节,DSWI中存放的ADDA,DSWI;是显示格式编码。MOVDPTR,#DJPTRJMPA+DPTRDJPTR:LJMPDSUB0 LJMPDSUB1 LJMPDSUB2 LJMPDSUB3 LJ

29、MPDSUB4 LJMPDSUB5 LJMPDSUB6DSUB0:MOVDSMEM,#10HRET,73,DSUB1:MOVR0,#DSMEM+3MOVR0,#11HSJMPDSUB21DSUB2:MOVR0,#DSMEM+3MOVR0,#0FHDSUB21:DECR0MOVR0,#0SJMPDSUB31DSUB3:MOVR0,#DSMEM+3MOVR0,#12HDECR0MOVR0,#0CHDSUB31:DECR0DECR0MOVR0,NOBRRETDSUB4:MOVR0,#DSMEM+3MOVR0,#13HMOVR2,#3,74,MOVR1,#RECODDSUB41:INCR0MOVA,R

30、1MOVR0,AINCR1DJNZR2,DSUB41RETDSUB5:MOVR0,#DSMEM MOVR0,NOBR MOVA,#STF0-1ADDA,R0 MOVR1,A MOVA,R1JZDSUB54 MOVA,NOBR ADDA,#PMEM-1 MOVR1,A MOVA,R1 MOVR2,#3,75,DSUB52:INCR0MOVR0,#0DJNZR2,DSUB52MOVR2,#8DECR0MOVR0,ADSUB53:MOVA,R0RLCAMOVR0,AMOVA,DSMEM+2ADDCA,DSMEM+2DAAMOVDSMEM+2,AMOVA,DSMEM+1ADDCA,DSMEM+1DAA

31、MOVDSMEM+1,ADJNZR2,DSUB53MOVA,DSMEM+2ADDA,#25H,76,DAAMOVR2,AMOVA,DSMEM+1ADDCA,#02HMOV DSMEM+1,AMOVA,R2MOVB,#10HDIVABMOV DSMEM+2,AMOV DSMEM+3,BDSUB54:RETDSUB6:MOVR2,#6JNBDFLG,DSUB62CLRDFLGDSUB61:INCDCNTRCJNE DCNTR,#7,DSUB62MOV DCNTR,#1DSUB62:MOVA,#STF0-1ADDA,DCNTR,77,MOVR0,AMOVA,R0JNZDSUB63DJNZR2,DSU

32、B61RETDSUB63:MOVNOBR,DCNTRSJMPDSUB5DFLG:“显示切换”标志位,为1,则切换显示内容DCNTR:“显示计数器”,待显示压力的泵号STF0:1号泵是否被监控的启/停标志单元的地址标号,78,键处理子程序:入口:键代码R2中KEYPR:CJNER2,#6,KEYP1;键代码6LJMPKEYP3KEYP1:INCR2;泵号=键代码+1JBRCDF,KEYP2SETBPNIFMOVNOBR,R2RETKEYP2:MOVA,#STF0-1ADDA,R2MOVR0,AMOVA,R0JZKEYP21MOVA,#RSET0ADDA,RPCNTMOVR0,AMOVA,R2MO

33、VR0,AKEY21:RET,79,KEYP3:MOVA,R2SUBBA,#5MOVDSWI,AMOVR2,AADDA,R2ADDA,R2MOVDPTR,#KJPTB-3JMPA+DPTRKJPTB:LJMPKCMAD0LJMPKCMAD1LJMPKCMAD2LJMPKCMAD3LJMPKMD12RETKCMAD0:JNBPNIF,KMD12MOVR1,#1SJMPKMD11KCMAD1:JNBPNIF,KMD12MOVR1,#0,80,KMD11:MOVA,#STF0ADDA,NUBRMOVR0,AMOVA,R1MOVR0,AKMD12:RETKCMAD2:JNBRCDF,KMD21MOVR

34、2,#0SJMPKEYP2KMD21:JNBPNIF,KMD12MOVA,#1MOVR2,NUBRKMD22:DJNZR2,KMD23SJMPKMD24KMD23:RLASJMPKMD22KMD24:CPLAANLA,MAPCOMOVMAPCO,A,81,MOVDPTR,#PORTO1MOVXDPTR,ACLRP3.5RETKCMAD3:JBRCDF,KMD31SETBRCDFMOVRPCNT,#0MOVDPNT,#4RETKMD31:INCRPCNTMOVA,DPNTCLRCRRCAMOVDPNT,AJNCKMD32CLRRCDFMOVDSWI,#0KMD32:RET,82,定时中断服务程序

35、:T0的计数初值的计算:溢出中断周期:50ms 晶振频率:12MHz 计数初值Tc=65536-50=15536=3CD0H,83,TISUB:MOVTH0,#3CHMOVTL0,#0D0HPUSHPSWPUSHACCPUSHDPHPUSHDPLCLRRS1;选第1组工作寄存器SETBRS0INCR7;秒计数器加1CJNER7,#0C8H,TISUB3;未到1秒,转TISUB3MOVR7,#0;到1秒,秒计数器置0MOVR6,#0FFH;巡检计数器置-1TISUB1:INCR6CJNER6,#6,TISUB2SJMPTISUB3TISUB2:MOVA,#STF0ADDA,R6MOVR0,AMO

36、VA,R0,84,JZTISUB1CLRP2.3MOVA,R6MOVXR0,AINCR5;轮显计数器加1秒CJNER5,#2,TISUB3;未到2秒,转TISUB3MOVR5,#0SETBDFLGTISUB3:MOVDPTR,#PORTI1MOVXA,DPTRRRCAMOVF0,CRRCAMOVR2,AANLC,F0JNCTISUB4ANLMAPC0,#0BFHSJMPTISUB5TISUB4:ORLMAPC0,#40HTISUB5:MOVA,R2,85,RRCAJNCTISUB6ANLMAPC0,#7FHSJMPTISUB7TISUB6:ORLMAPC0,#80HTISUB7:MOVA,MA

37、PC0MOVDPTR,#PORTO1MOVXDPTR,APOPDPLPOPDPHPOPAPOPPSWRETI,86,输出端口PORTO1:D7 D6 D5 D4 D3 D2 D1 D0 1#2#3#4#5#6#,低水位报警,高压力或高水位越限报警,输入端口PORTI1:D7 D6 D5 D4 D3 D2 D1 D0 系统压力接点状态 高水位接点状态 低水位接点状态,87,外部中断服务程序:A/D转换,D/A转换ADSUB:PUSHAPUSHDPHPUSHDPLPUSHPSWSETBRS1CLRRS0CLRP2.3MOVXA,R0MOVSAMPL,AMOVR0,#TABLHMOVA,SCUNTJ

38、ZFILT4MOVR2,AFILT1:MOVA,R0CJNEA,SAMPL,FILT2FILT2:JCFILT3XCHA,SAMPLXCHA,R0,88,FILT3:INCR0DJNZR2,FILT1FILT4:MOVR0,SAMPLINCSCUNTMOVA,SCUNTCJNEA,#5,ADSB91MOVSCUNT,#0MOVA,TABLH+1MOVB,#0E1HMULABMOVA,0EHADDA,#PTM0MOVR0,AMOVR0,BMOVA,BCJNEA,#PLM,ADSB1ADSB1:JCADSB5MOVA,#1MOVR2,0EHADSB2:DJNZR2,ADSB3SJMPADSB4,8

39、9,ADSB3:RLASJMPADSB2ADSB4:ORLA,MAPC0MOVMAPC0,AMOVDPTR,#PORTO1MOVXDPTR,ASETBP3.5ADSB5:MOVR2,#3MOVR0,#RSET0+2ADSB6:MOVA,R0DECADECR0CJNEA,0EH,ADSB7SJMPADSB8ADSB7:DJNZR2,ADSB6SJMPADSB9ADSB8:MOVA,#81HMULABRLCAMOVA,BRLCA,90,MOVB,AMOVA,#1ADSB81:DJNZR2,ADSB82SJMPADSB83ADSB82:RLASJMPADSB81ADSB83:CPLAMOVP2,AMOVA,BMOVXR0,AADSB9:INC0EHMOVA,0EHCJNEA,#6,ADSB91SJMPADSB92ADSB91:MOVA,0EHCLRP2.3MOVR0,AADSB92:POPPSWPOPDPLPOPDPHPOPARETI,91,谢谢大家!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号