200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 单片机c语言数码管显示5 51单片机数码管显示实验报告(5页)-原创力文档

单片机c语言数码管显示5 51单片机数码管显示实验报告(5页)-原创力文档

时间:2020-10-01 22:59:56

相关推荐

单片机c语言数码管显示5 51单片机数码管显示实验报告(5页)-原创力文档

51单片机数码管显示实验

实验内容:

编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数实现),到数码管显示9后,再从0开始显示,如此循环反复。

C语言程序

#include

#define uint unsigned int

void display();

void num();

int i;

unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表

void delayms(uint);

void main()

{

while(1)

{

num();

display();

}

}

void display()

{

P2=0xff;//消隐 P0连接段选,P1节位选

P1=0x00;//8个数码管同时显示

P2=table[i];//数码管显示数码0

delayms(1000);//延时5ms

}

void num()

{

if(i<9)

i++;

else

i=0;

}

void delayms(uint x)

{

uint i,j;

for(i=0;i

for(j=0;j<110;j++);

}

汇编语言:

ORG 0000H

LJMP MAIN

ORG 0100H

;P2连接段选,P1节位选

MAIN:MOV P1,#00H ;所有的数码管都显示

MOV R2,#00H ;从0开始显示

LOOP:MOV A,R2 ;为下面的基址加变址寄存器寻址方式做准备

MOV DPTR,#TAB1 ;把数组的首地址赋给DPTR

MOVC A,@A+DPTR ;取数组中的数字

MOV P2,A ;把取得的值送给P0口显示

ACALL DELAY ;延时一会

INC R2 ;为取下一个数加一

CJNE R2,#10,LOOP ;只要数小于10就继续循环显示

MOV R2,#00H ;如果加到10后重新从0开始

LJMP LOOP ;进入循环函数

;******************************************

TAB1:DB 0C0H,0F9H,0A4H,0B0H,99H; 数组

DB 92H,82H,0F8H,80H,90H

RET

;******************************************

DELAY:MOV R3,#3;延时函数

DE1:MOV R4,#0FFH

DE2:MOV R5,#0FFH

DJNZ R5,$

DJNZ R4,DE2

DJNZ R3,DE1

RET

;*************************************************

END

(3)编写程序学习数码管的动态显示,让8只数码管从从左往右显示1、2、3……8。

C语言程序:

#include

#define uint unsigned int

unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表

void delayms(uint x);

void zuoyi();

void main()

{

int i;

while(1)

{

P1=0xfe;

for(i=0;i<8;i++)

{

P2=table[i];

delayms(3);

zuoyi();

}

}

}

void delayms(uint x)

{

uint i,j;

for(i=0;i

for(j=0;j<110;j++);

}

void zuoyi()

{

int a;

a=~P1;

a=a<<1;

P1=~a;

}

汇编语言:

;数码管动态显示

ORG 0000H

LJMP MAIN

ORG 0100H

;P0连接段选,P1节位选

MAIN

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。