单片机实用接口技术_第1页
单片机实用接口技术_第2页
单片机实用接口技术_第3页
单片机实用接口技术_第4页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、按键处理。待按键释放以后,才 能进行下一次按键处理。BEGIN:ACALLKEY_ON ;判断有无键按下JNZDELAY ;有键按下AJMPBEGINDELAY:ACALLDL10MS ;去抖延时ACALLKEY_ON ;再判断有无键按下JNZKEY_NUM ;有键按下,确定按键位置AJMPBEGINKEY_NUM:ACALLKEY_P ANLA, #0FFHJZBEGINACALLKEY_CODE ;编码PUSHAKEY_OFF:ACALLKEY_ON ;等待按键释放JNZKEY_OFF10POPARET; 判断有无键按下子程序, 有键按下时,A的值不为0KEY_ON:MOV A, #00H

4、MOVDPTR, #0700H ;PA口MOVXDPTR, A MOVDPTR, #0702H MOVXA,DPTRCPLAANLA,#0FHRET;延时10ms子程序(时钟6MHZ)DL10MS:MOVR7, #05HLOOP1:MOV R6, #0F9HLOOP2:NOPNOPDJNZR6, LOOP2DJNZ R7, LOOP1RET11;扫描按键位置的子程序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 ; 置出错码00HRET12; 确定按键的行列位置子程序KEY_C:MOVR2, #00H ;R2用于行计数MOVR3, #00H ; R3用于列计数MOV R5, #04HMOV A, R6 ; 行号AGAIN1:JNBACC.0, OUT1INCR2 RRADJNZR5, AGAIN1OUT1:INCR2MOVR5, #08HMOVA, R7 ; 列号AGAIN2:J

6、NBACC.0, OUT2INC R3RRADJNZR5, AGAIN2OUT2:INC R3MOVA, R2SWAPAADDA, R3 ;行号在高4位,列号在低4位RET13;编码子程序,键码=行号*8+列号KEY_CODE:PUSHAANLA,#0FHMOVR7, A ;R7=列号DECR7POPASWAPAANLA,#0FHDECAMOVB,#08HMULABADDA,R7RET中断方式必须用硬件形成中断信号1415编程要点:P1.0, P1.1, P1.2作为输出口输出扫描码000111,经译码后产生列扫描信号,此时8列中只有1列为0电平。其余各都为高电平。行状态由P1.3, P1.4

7、读入16LED显示器接口设计 LED的结构 LED静态显示 LED动态显示17181. LED静态显示方式 各数码管的共阴极(或共阳极)连接在一起并接地(接+5V),每个数码管的各段分别与一个8位的锁存器输出相连,这样当锁存器存入一个数据后,数码管将始终显示此数据。特点: 硬件电路多。 编程简单。1920START:SETBP1.7MOVR1, #06HMOVR0, #00HMOVDPTR, #TABLOOP:MOVA, R0MOVCA, A+DPTRMOVSBUF, AWAIT:JNBT1, WAIT ;串行输出完成否CLRT1INCR0DJNZR1, LOOPCLRP1.7TAB:DB06

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

9、R0, #00HMOVR2, #80H ;位码SCAN:MOVR1, #0FAH ;PB口地址MOVA, #00HMOVXR1, A ;全暗MOVA, R0MOVCA, A+DPTR ;取段码DECR1 ;指向PA口MOVXR1, A ;段码送PA口MOVA, R2INCR1 ;指向PB口MOVXR1, A ;位码送PB口ACALLDL1MSINCR0MOVA, R2 ;改变位码,指向下一位24CLRCRRCAMOVR2, A XRLA, #00H ;改变标志寄存器JNZSCANAJMPSTARTDL1MS:SETBD3H ;PS0(D3H)= 1MOVR2, #83H ;使用第1组工作寄存器

10、LL0:NOPNOPDJNZR2, LL0CLRD3H ;恢复第0组工作寄存器RETTAB:DB0C6H,8CH,0C1H,0CEH,86H,88H,0A1H,91H25LED显示器驱动技术 发光二极管工作电流在10ma左右,而一般I/O接口不能提供这么大的电流,需要使用驱动电路。常用的有 ULN2003A,7段驱动, ULN2803 8段驱动。特点: 1。 最大驱动电流可达500ma 2。反相驱动 3。需要限流电阻,数码管越多,限流电 阻的阻值越小。2627A/D转换器的接口设计转换器的接口设计 1。根据要求的精度选择位数。8,12,16位 2。根据信号性质选择转换速度。 低速:直流和缓变信

11、号,如温度, 压力, 流量 中速:工业多通道控制系统,声频信号 高速:雷达信号,视频信号 3。选择采样保持器 除直流和变化非常缓慢的信号外, 都应使用采样保持器2829延时等待方式:MAINMOVR1,#DATAMOVDPTR,#7FF8HMOVR7,#08HLOOP:MOVX DPTR,A ;启动A/DMOVR6,#0AHDLAY:NOPNOPNOPNOPNOPDJNZR6,DLAYMOVX A,DPTRMOVR1,AINCDPTR ;指向下一通道INCR1DJNZR7,LOOP.3031中断方式:INADC:SETB IT1 ;外部中断1设为下降沿触发中断SETB EA ;开总中断SETB

12、 EX1 ;开INT1中断MOV DPTR, #0FEFFH ;选择ADC0809IN7 (P2.0=0)MOV A, #00HMOVX DPTR, A ; 启动A/D转换PINT1:MOV DPTR, #0FEFFHMOVX A, DPTR ; 读转换数据MOV 50H, AMOV A, #00H ; 启动下一次A/D转换MOVX DPTR, ARETI3233ADC0809A/D转换器与单片机的接口设计转换器与单片机的接口设计一、ADC0809A/D转换器的接口设计 下面以ADC0809为例来介绍A/D转换器的接口设计。ADC 0809是一种常用的8位逐次比较式AD转换器,其特点 如下:

13、可直接与微处理机接口,无需另加接口逻辑。l 具有三态锁存输出,可与微处理机总线接口。l 具有锁存控制逻辑的8通道模拟开关可输入8个模拟信号。l 单一电源 +5V。 34主要指标如下: 1分辨率 8位 2转换时间 100s 3绝对误差 1LSB 4功耗 15mW 引脚功能: IN0IN7:8通道模拟量输入 A、B、C:通道选择信号 35 ALE:通道地址锁存信号。该信号上升沿把A、B、C上的 通道号锁存在地址锁存器中。D0D7:数字量输出。OE: 输出允许。OE为1时,D0D7输出转换后的数据, OE为0时,D0D7呈高阻态。START:启动信号,下降沿启动。EOC:转换结束信号。该信号从启动信

14、号上升沿开始经1、8个 时钟周期后由高电平变为低电平,表征AD转换正在 进行;64个时钟周期后(每位转换需8个时钟周期)由低 变高,表征转换结束 36 CLK:时钟输入。时钟频率640kHz。 、:基准电压输入基准电压必须满足: 0Vcc Vcc: 数字电源电压输入。 范围: +45V6V。 GND:数字、模拟公共地。例:ADC 0809接口技术ADC 0809带有三态输出锁存器,可以和51系列单片机的总线直接接口,后面的图示出了ADC 0809与51系列单片机的接口电路 37IN-026msb2-1212-220IN-1272-3192-418IN-2282-582-615IN-312-71

15、4lsb2-817IN-42EOC7IN-53ADD-A25IN-64ADD-B24ADD-C23IN-75ALE22ref(-)16ENABLE9START6ref(+)12CLOCK10ADC0809EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD108031123A74LS28

16、456B74LS28NOT+5V-5VADC 0809与8031单片机的接口电路 38P2.3=0时,选中ADC 0809 (允许启动各通道转换与读取相应的 转换结果)转换结束信号EOC经反相后,接至单片 机的外部中断INT1,由外部中断1的中断服务程序读取 转换结果。外部中断INTl采用边沿触发方式 启动各通道进行AD转换的程序段如下: CLR P2.3 ;0809的端口地址,P2.3=0 MOV A,#N ;通道号N MOVX DPTR,A ;启动N通道,此指令用来产生 ALE和START信号 N=07,对应于IN0,IN1,IN7。39中断服务程序中读转换结果的程序段如下: CLR P2

17、.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 AJMP INT1 ;跳转外部中断1服务程序START: MOV TMOD,#1 ;T0的初始化 MOV TL0,#0B0H MOV TH0,#3CH MOV IP,#2 ;T0设为

18、高优先级中断(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秒,中断返回 MOV TIM,#0ECH ;已到2秒,秒计数单元设初值 MOV ABM,#0 ; 从通道0开始 ACALL SR ;调用启动A/D子程序42CT

19、C01: 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 RETI43INT11: INC ABM ACALL SR RETISR: CLR P2.3 ;启动ADC0809子程序 MOV A,ABM MOVX R0,A SETB P2.3 RETABM: EQU 30H ;通道地址暂存器DATA: EQU 31H ;采样值缓冲区(31H-38H)TIM: EQU 39

20、H ;2秒计时单元44D/A转换器与单片机的接口设计1. D/A转换器的主要技术指标 (1)分辨率 n 是D/A转换器的位数 ( 2)线性度 (3)转换精度 (4)建立时间 (5)输出电平 分辩率121n45 (6)输入代码设计要点: 1. 参考电源的配置-改变输出模 拟电压的范围、极性 齐纳二极管 精密稳压电源 2. 输出电压极性 单极性 双极性 硬件电路实现4647MOV DPTR, #7FFFHMOV A, #DATAMOVX DPTR, A484912位D/A转换器DAC1208系列采用双缓冲方式输出12位数据时: 1。先输出高8位D11D4 2。后输出低4位D3D0 3。先后顺序不能

21、反设 高8位数据在内存DIGIT单元, 低4位在DIGIT+1单元。转换程序:50MOVDPTR,#4001H ;高8位地址MOVR1,#DIGITMOVA,R1MOVXDPTR,A DECDPTR ; 低4位地址 INCR1MOVA, R1MOVXDPTR, AMOVDPTR, #6000H ;触发12位输出MOVDPTR, A51PWM脉宽调制脉宽调制 PWM脉宽调制信号很适合作以下工作: 1 1、 控制电机的转速(串激振流子电机、单相电机、直流 电机)和电热式加热装置。 控制电机转速和电热式加热装置需要较大的功率,PWM脉 宽调制信号必须经过变换装置才能提供足以驱动电机的功 率或加热装置

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

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

24、。如刹车时正在转弯,相应的转弯闪 烁信号不受影响。58输入信号 输出信号 刹车 开关 应急 开关 左转 开关 右转 开关 左头灯 左仪灯 右头灯 右仪灯 左尾灯 右尾灯 0 0 0 0 0 0 0 0 1 0 1 0 断 断 闪烁 断 闪烁 断 断 断 闪烁 断 闪烁 断 0 0 0 1 1 1 0 0 1 0 1 0 闪烁 闪烁 闪烁 闪烁 闪烁 闪烁 闪烁 闪烁 闪烁 闪烁 闪烁 闪烁 1 1 1 0 0 0 0 0 1 0 1 0 断 断 闪烁 断 闪烁 断 通 通 闪烁 通 闪烁 通 1 1 1 1 1 1 0 0 1 0 1 0 闪烁 闪烁 闪烁 闪烁 闪烁 闪烁 通 通 闪烁 通

25、闪烁 通 转弯信号灯工作的真值表 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输入部分+12VP1.0P1.1P1.2P1.3P1.4刹车板

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

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

28、BET0SETBEASETBTR0SIMP$65UPDATE: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_RE

29、ARCLRR_FRNTJBT0, FAULT66SETBR_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 67MOVC, L_TURNORLC, EMERGANLC, LO_FREQ MOVL_DASH, CMOVF0, CORLC, DIMMOVL_FRN

30、T, CMOVC, BRAKEANLC, /L_TURNORLC, F0ORLC, DIMMOVL_REAR, C68MOVC, R_TURNORLC, EMERGANLC, LO_FREQ MOVR_DASH, CMOVF0, C ORLC, DIMMOVR_ FRNT, CMOVC, BRAKEANLC, /R_TURNORLC, F0ORLC, DIMMOVR_REAR, C POPPSWRETI END69高压泵站监控器 1。分时地自动巡回检测各台高压泵的 出口压力,并将检测结果送记录仪 2。定时检测高压泵站系统压力,水箱 高低水位的3个电接点的通断状态。 3。高压泵的出口压力超限时,

31、自动切 断相应电源,并发声光报警信号。 故障排除后,由人工“解除”保护“状 态,恢复高压泵的运行。 4。系统压力,水箱高低水位的电接点 闭合时,仅发相应报警信号。7071主程序:复位入口系统初始化调显示设定子程序显示控制键识别及键代码生成调键处理子程序72显示设定子程序:DSSUB:MOVR2, #4MOVR0, #DSMEM ;R0指向显示缓冲区DSLP:MOVR0, #0FH ;显示缓冲区DJNZR2, DSLPMOVA, DSWI ;DSWI*3,因为跳转表每项ADDA, DSWI ;占3个字节,DSWI中存放的ADDA, DSWI ;是显示格式编码。MOVDPTR, #DJPTRJMP

32、A+DPTRDJPTR:LJMPDSUB0 LJMPDSUB1 LJMPDSUB2 LJMPDSUB3 LJMPDSUB4 LJMPDSUB5 LJMPDSUB6DSUB0:MOVDSMEM, #10HRET73DSUB1:MOVR0, #DSMEM+3MOVR0, #11HSJMPDSUB21DSUB2: MOVR0, #DSMEM+3MOVR0, #0FHDSUB21:DECR0MOVR0, #0SJMPDSUB31DSUB3: MOVR0, #DSMEM+3MOVR0, #12HDECR0MOVR0, #0CHDSUB31:DECR0DECR0MOVR0, NOBRRETDSUB4: M

33、OVR0, #DSMEM+3MOVR0, #13HMOVR2, #374MOVR1, #RECODDSUB41:INCR0MOVA, R1MOVR0, AINCR1DJNZR2, DSUB41RETDSUB5:MOVR0, #DSMEM MOVR0, NOBR MOVA, #STF0-1ADDA, R0 MOVR1, A MOVA, R1JZDSUB54 MOVA, NOBR ADDA, #PMEM-1 MOVR1, A MOVA, R1 MOVR2, #375DSUB52:INCR0MOVR0, #0DJNZR2, DSUB52MOVR2, #8DECR0MOVR0, ADSUB53:MOV

34、A, R0RLCAMOVR0, AMOVA, DSMEM+2ADDC A, DSMEM+2DAAMOVDSMEM+2, AMOVA, DSMEM+1ADDC A, DSMEM+1DAAMOVDSMEM+1, ADJNZR2, DSUB53MOVA, DSMEM+2ADDA, #25H76DAAMOVR2, AMOVA, DSMEM+1ADDC A, #02HMOV DSMEM+1, AMOVA, R2MOVB, #10HDIVABMOV DSMEM+2, AMOV DSMEM+3, BDSUB54:RETDSUB6:MOVR2, #6JNBDFLG, DSUB62CLRDFLGDSUB61:I

35、NCDCNTRCJNE DCNTR, #7, DSUB62MOV DCNTR, #1DSUB62:MOVA, #STF0-1ADDA, DCNTR77MOVR0, AMOVA, R0JNZDSUB63DJNZR2, DSUB61RETDSUB63:MOVNOBR, DCNTRSJMPDSUB5DFLG: “显示切换”标志位,为1,则切换显示内容DCNTR: “显示计数器”,待显示压力的泵号STF0: 1号泵是否被监控的启/停标志单元的地址标号78键处理子程序: 入口:键代码R2中KEYPR:CJNER2,#6,KEYP1 ;键代码6LJMPKEYP3KEYP1:INCR2 ;泵号=键代码+1J

36、BRCDF, KEYP2SETBPNIFMOVNOBR, R2RETKEYP2:MOVA, #STF0-1ADDA, R2MOVR0, AMOVA, R0JZKEYP21MOVA, #RSET0ADDA, RPCNTMOVR0, AMOVA, R2MOVR0, AKEY21:RET79KEYP3:MOVA, R2SUBBA, #5MOVDSWI, AMOVR2, AADDA, R2ADDA, R2MOVDPTR, #KJPTB-3JMPA+DPTRKJPTB:LJMPKCMAD0LJMPKCMAD1LJMPKCMAD2LJMPKCMAD3LJMPKMD12RETKCMAD0:JNBPNIF,

37、KMD12MOVR1, #1SJMPKMD11KCMAD1:JNBPNIF, KMD12MOVR1, #080KMD11:MOVA, #STF0ADDA, NUBRMOVR0, AMOVA, R1MOVR0, AKMD12:RETKCMAD2:JNBRCDF, KMD21MOVR2, #0SJMPKEYP2KMD21:JNBPNIF, KMD12MOVA, #1MOVR2, NUBRKMD22:DJNZR2, KMD23SJMPKMD24KMD23:RLASJMPKMD22KMD24:CPLAANLA, MAPCOMOVMAPCO, A81MOVDPTR, #PORTO1MOVX DPTR,

38、ACLRP3.5RETKCMAD3:JBRCDF, KMD31SETBRCDFMOVRPCNT, #0MOVDPNT, #4RETKMD31:INCRPCNTMOVA, DPNTCLRCRRCAMOVDPNT, AJNCKMD32CLRRCDFMOVDSWI, #0KMD32:RET82定时中断服务程序:T0的计数初值的计算: 溢出中断周期:50ms 晶振频率: 12MHz 计数初值Tc=65536-50 =15536=3CD0H31083TISUB:MOVTH0, #3CHMOVTL0, #0D0HPUSHPSWPUSHACCPUSHDPHPUSHDPLCLRRS1 ;选第1组工作寄存器SETBRS0INCR7 ;秒计数器加1CJNER7, #0C8H, TISUB3 ;未到1秒,转TISUB3MOVR7, #0 ;到1秒,秒计数器置0MOVR6, #0FFH ;巡检计数器置-1TISUB1:INCR6CJNER6, #6, TISUB2SJMPTISUB3TISUB2:MOVA, #STF0ADDA, R6MOVR0, AMOVA, R084JZTISUB1CLRP2.3MOVA, R6MOVX R0, AINCR5 ;轮显计数器加1秒CJNER5, #2, TISUB3 ;未到2秒,转TISUB3MOVR5, #

温馨提示

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

评论

0/150

提交评论