单片机复习材料(8)

发布时间:2021-06-05

5-2 如图5-4所示,P1.4~P1.7接4个发光二极管LED,P1.0~P1.3接4个开关,编程将开关的状态反映到发光二极管上。

ORG 0000H SWAP A ORL P1,#0FH

SJMP ABC MOV P1,#0FFH ANL A,#0F0H

ABC:MOV A,P1 MOV P1,A 上述程序中每次读开关之前,输入位都先置“1”,保证了开关状态的正确读入。

5-3 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作为报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止(见图5-5),编写程序。

ORG 0000H CJNE A,#0FFH,N1 D500:MOV R7,#250 CLR A ACALL D500 DJNZ R7,$

RET BEG:SETB P1.7 N1:ACALL D500

END JB P1.7,$ DJNZ R2,DV

CPL A MOV R2,#200

SJMP BEG DV:CPL P1.0

5-4如图5-8是接有5个共阴极数码管的动态显示接口电路,用74LS373接成直通的方式作为驱动电路,阴极用非门74LS04反相门驱动,字形选择由P1口提供,位选择由P3口控制。 (1)编程使在最右边的数码管上显示“P”。

答:汇编: ORG 0000H C:#include<reg51.h> MOV P1,#73H main(){ MOC P3,#10H P1=0x73 SJMP $ P3=0x10;}

如果不对P1和P3重新输出新的数据,最右边的数码管将一直显示“P”。 (2)要求在中间的数码管上循环显示“0”~“3”. #include<reg51.h> unsigned char i; P1=tab[i]; sbit P32=P3^2; unsigned int j; for (j=0;j<=25000;j++) unsigned char code while(1){ }}} tab[5]={0x3f,0x06,0x5b,0x4f,} P32=1; main (){ or(i=0;<=3;i++){

(3)P1.7接有开关,要求打向位置“1”时,显示“12345”字样;当开关打向位置“2”时,显示“HELLO”字样,编程实现上述功能。 ORG 0000H MOV P1, A DL1: NOP MOV P3,#0 MOV A,R1 NOP TEST:SETB P1.7 MOV P3,A DJNZ R7,DL1 JB P1.7,DIR1 ACALL DAY DJNZ R6,DL2 MOV DPTR,#TAB1 INC R0 RET SJMP DIR RL A TAB1: db 06H,5BH,4FH,66H,6DH DIR1:MOV DPTR,#TAB2 MOV R1,A TAB2: db 76H,79H,38H,38H,3FH DIR:MOV R0,#0 END CJNE R1,#20H,NEXT MOV R1,#01 SJMP TEST NEXT:MOV A,R0 DAY: MOV R6,#20 MOVC A,@A+DPTR DL2: MOV R7,#7DH

单片机复习材料(8).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219