单片机汇编语言周期性信号的频率和占空比

上传人:ji****n 文档编号:45270131 上传时间:2018-06-15 格式:DOC 页数:6 大小:66.50KB
返回 下载 相关 举报
单片机汇编语言周期性信号的频率和占空比_第1页
第1页 / 共6页
单片机汇编语言周期性信号的频率和占空比_第2页
第2页 / 共6页
单片机汇编语言周期性信号的频率和占空比_第3页
第3页 / 共6页
单片机汇编语言周期性信号的频率和占空比_第4页
第4页 / 共6页
单片机汇编语言周期性信号的频率和占空比_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《单片机汇编语言周期性信号的频率和占空比》由会员分享,可在线阅读,更多相关《单片机汇编语言周期性信号的频率和占空比(6页珍藏版)》请在金锄头文库上搜索。

1、周期性信号的频率和占空比测试 接法: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

2、计数,计算周期,并关掉 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

3、_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、

4、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 先置

5、低再置高,就将原先移入的数据写 到 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,C

6、L 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、流程

7、控制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 HA2

8、S7 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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号