资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
周期性信号的频率和占空比测试 接法:INT0 接周期性信号(1)测量信号的周期 INT0 的初始化应该为: void int0_init() EA=0;/关掉所有中断允许 IT0=1;/选用下降沿触发 INT0 中断 EA=1;/开所有中断 EX0=1; /开 INT0 中断 INT0 的中断服务程序应该为: Unsigned intCycleTime = 0;/周期的计数值 void int0_svr() interrupt 0 if(!flag1)/第一次下降沿出现时启动 Timer1 计数; timer1_init(); flag1=1; Else/第二次下降沿出现时停止 Timer1 计数,计算周期,并关掉 INT0 中断 EX0=0;CycleTime =TH1*256+TL1; /获得一个周期的计数值,乘上机器周期就可以了 /Timer1 计算信号的周期,由于只计算一次,所以选用 MODE1.void timer1_init() EA=0;/GATE=0;C/T=0;M1=0;M2=1; TMOD=TMPD|0x10;/从 0 开始计数 TH1=0; TL1=0; EA=1; ET1=1; 考虑一个问题:如果信号的周期特别长,超过了 65536 个机器周期,那该怎么处理? 解决方案:当 Time1 超过 65536,会触发 Timer1 中断,在中断里面计数,假设为 Y_Y 那么最终的计数应该是: ( Y_Y*65536+ CycleTime) Unsigned intY_Y_=0; void timer1_svr() interrupt 3 timer1_init(); Y_Y+; (2)测量周期信号的高电平时间 利用 Timer0 对高电平进行计数,由于只计算一次,所以选用 MODE1. Void timer0_init() EA =0 ;/GATE=1;C/T =0;;M1=0;M2=1; TMOD = TMOD|0x09; TH0=0; TL0=0; EA=1; ET0=1; I)在 INT0 的中断里面直接关掉 Timer0,并将计数结果(TH0、TL0)提取出来计算 II)考虑一个问题:如果信号的周期特别长,超过了 65536 个机器周期,处理方法与上面 一样34、并行接口扩展 可以采用 74LS595,是串入并出的,可接任意个 595,只占用 3 个脚,即 ser(数据),sclk(移位时钟),srclk(输出)。所有的 74LS595 的 sclk 连在一起, srclk 连在一起,第一个 595 的 ser 接单片机一个 IO 引脚,每一个 595 的 QH接下一个 595 的 ser。 sclk 置低,置 ser,再将 sclk 置高,就移了一位二进制数据进 595 了,重复这 么移,直到所有的数据移入,再将 srclk 先置低再置高,就将原先移入的数据写 到 595 输出寄存器,在各个 595 的输出引脚上反映出来。也就是将单片机三个 引脚扩展成了很多个并行口。3*3 键盘矩阵MOV AL,82H OUT 43H,AL BEGIN:MOV AL,0OUT 40H,AL WAIT : IN AL,41HAND AL,0FHCMP AL,0FHJZ WAITMOV CX,7FFHL0: LOOP L0ST: MOV BL,3MOV BH,4MOV AL,0FEHMOV CL,0FHMOV CH,0FFH L1: OUT 40H,ALROL AL MOV AH,ALIN AL,41H AND AL,CLCMP AL,CL JNZ L2 ADD CH,BHMOV AL,AHDEC BLJNZ L1JMP BEGINL2: INC CHRCR ALJC L2MOV AL,CHJMP KEYTABLE42 并口扩展org 0000hajmp mainorg 0030h main:mov sp,#60hmov dptr,#8003hmov a, #90hmovx dptr,a m: mov dptr,#8000hmovx a,dptrlcall delaymov dptr,#8001hmovx dptr,alcall delayajmp mdelay: mov r6,#00hdjnz r6,$retend43、流程控制ORG 0000HAJMP 0030HORG 0013HLJMP HA2S3ORG 0030H HA2S:MOV P1,#0fFHORL P3,#00H HA2S1:JB P3.4,HA2S1 ORL IE,#84HORL IP,#04H MOV PSW,#00H MOV SP,#53H HA2S2:MOV P1,#081H ACALL HA2S7 MOV P1,#082H ACALL HA2S7 MOV P1,#084H ACALL HA2S7 MOV P1,#088H ACALL HA2S7 MOV P1,#090H ACALL HA2S7 MOV P1,#0A0H ACALL HA2S7 MOV P1,#0C0H ACALL HA2S7 SJMP HA2S2 HA2S3:MOV B,R2 HA2S5:SETB P1.7 ACALL HA2S6 CLR P1.7 ACALL HA2S6JNB P3.3,HA2S5 MOV R2,B RETIHA2S6: MOV R2,#06H ACALL DELAY RETHA2S7: MOV R2,#30H ACALL DELAY RET DELAY:PUSH 02H DELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3 POP 02H DJNZ R2,DELAY2 POP 02H DJNZ R2,DELAY1 POP 02H DJNZ R2,DELAY RET END
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号