单片机课后习题 - 图文(7)

2019-01-12 18:59

图11-48 习题11-12题电路图

分析:P2.3驱动个位LED显示8,其段码为80H,P2.2驱动十位LED显示7,其段码为F8H,P2.1驱动百位LED显示6,其段码为82H,P2.0驱动千位LED显示5,其段码为92H,段码从P0口输出。P2.3、P2.2 、P2.1、P2.0作为输出位选端,加入小功率PNP型三极管9012增强驱动能力。限流电阻为330Ω,使两位LED动态显示时,每一段的电流大约为10mA。

取刷新频率为50Hz,刷新周期20ms,共4个数码管,所以每隔5ms就要交替刷新一个数码管的显示状态。选择延时5ms或更短时间即可 (1) 汇编语言程序:

ORG 00H

LJMP START ORG 80H START: MOV SP,#50H LLOOP: MOV 30H,#5 MOV R0,#30H MOV R1,#0FEH

MOV R7,#4 LOOP:

MOV DPTR,#TABLE MOV A,@R0 MOVC A,@A+DPTR MOV P0,A INC @R0 MOV A,R1 MOV P2,A RL A ;左移 MOV R1,A ACALL DELAY DJNZ R7,LOOP SJMP LLOOP DELAY:

;延时5ms程序

MOV R3,#60 DELAY1: MOV R2,#250 DELAY3:

DJNZ R2,DELAY3 DJNZ R3,DELAY1 RET

TABLE: ;共阳极八段码键值表

DB C0H,F9H,A4H,B0H,99H,92H DB 82H,F8H,80H,90H,88H,83H DB C6H,A1H,86H,8EH END (2)C51程序: #include unsigned char var1,var2;

unsigned char code seg[ ]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x 82,0xF8,0x80,0x90,0x88,0x83,0x C6,0xA1,0x86,0x8E}

unsigned char code xianshi[]={5,6,7,8} void main( ) {

unsigned char i,j,weixuan; {

while(1)

weixuan=0xfe; for(i=0;i<4;i++)

{

var1=xianshi[i];;//取待显示的数字

} } }

void delay( ) {

unsigned char a,b; for(a=142;a>0;a--)

var2=seg[var1]; //取该数字对应的字段码 P0=var2; P2=weixuan; delay();

weixuan=_crol_(weixuan,1);

for(b=250;b>0;b--);

}

或用定时器做定时 ORG 0000H LJMP MAIN ORG 001BH LJMP T1_INT ORG 0100H

MAIN: MOV SP,#0BFH SETB P2.0 SETB P2.1 SETB P2.2 SETB P2.3 MOV TMOD,#10H MOV TL1,#78H MOV TH1,#0ECH MOV R7,#4 SETB EA SETB ET1 SETB TR1 SJMP $

T1_INT: MOV TL1,#78H MOV TH1,#ECH CJNE R7,#4,NEXT1 SETB P2.3 CLR P2.0 MOV P0,#092H DEC R7 RETI

NEXT1: CJNZ R7,#3,NEXT2 SETB P2.0 CLR P2.1 MOV P0,#082H DEC R7 RETI

NEXT2: CJNZ R7,#2,NEXT3 SETB P2.1 CLR P2.2 MOV P0,#0F8H DEC R7 RETI

NEXT3: CJNZ R7,#1,EXIT SETB P2.2 CLR P2.3 MOV P0,#080H EXIT: MOV R7,#4 RETI END

C51程序:

#include #define uchar unsigned char #define uint unsigned int sbit P2_0=P2^0; sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; uchar i=0; void main() {

P2_0=1 P2_1=1 P2_2=1 P2_3=1 TMOD=0x10; TL1=0x78; TH1=0xEC; EA=1; ET1=1; TR1=1; while(1); }

void T1_INT() interrupt 3 {

TL1=0x78; TH1=0xEC; i++; switch(i) {

case 1: P2_3=1;P2_0=0;P0=0x92;break; case 2:P2_0=1;P2_1=0;P0=0x82;break; case 3:P2_1=1;P2_2=0;P0=0xF8;break; case 4:P2_2=1;P2_3=0;P0=0x80;i=0;break; default: i=0; } }


单片机课后习题 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:ArcSde的两种连接方式、区别和常见问题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

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