文档详情

51单片机数码管显示实验报告11784.pdf

发布:2024-10-02约5.63千字共9页下载文档
文本预览下载声明

51单片机数码管显示实验报告11784--第1页

51单片机数码管显示实验

实验内容:

1)编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数

实现),到数码管显示9后,再从0开始显示,如此循环反复。

2)C语言程序

#includereg52.h

#defineuintunsignedint

voiddisplay();

voidnum();

inti;

unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

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

voiddelayms(uint);

voidmain()

{

while(1)

{

51单片机数码管显示实验报告11784--第1页

51单片机数码管显示实验报告11784--第2页

num();

display();

}

}

voiddisplay()

{

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

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

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

delayms(1000);//延时5ms

}

voidnum()

{

if(i9)

i++;

else

i=0;

51单片机数码管显示实验报告11784--第2页

51单片机数码管显示实验报告11784--第3页

}

voiddelayms(uintx)

{

uinti,j;

for(i=0;ix;i++)

for(j=0;j110;j++);

}

3)汇编语言:

ORG0000H

LJMPMAIN

ORG0100H

;P2连接段选,P1节位选

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

MOVR2,#00H;从0开始显示

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

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

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

51单片机数码管显示实验报告11784--第3页

51单片机数码管显示实验报告11784--第4页

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

ACALLDELAY;延时一会

显示全部
相似文档