手机版

单片机复习材料(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文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)