文档详情

单片机C51接口实训.ppt

发布:2024-08-06约2.27千字共36页下载文档
文本预览下载声明

单片机;单片机介绍

;8051单片机的图片;单片机微机接口设备箱;单片机晶振电路图;实训任务;P1接口电路连接图;项目一;原理图;程序框图

;两个两个点亮C语言程序;附:;项目二;三个三个点亮C语言程序;附:;项目三;四个四个点亮C语言程序

;;项目四;C语言程序;voidmain()

{

unsignedcharindex;

unsignedcharLED;

while(1)

{

LED=129;

for(index=0;index8;index++)

{

P1=LED;

delay();

P1=H;

delay();

P1=K;

delay();

P1=Y;

delay();

P1=Y;

delay();

P1=K;

delay();

P1=H;

delay();

P1=LED;

delay();

}

}

};项目五;#includereg51.h

#defineLEDLen6

#definePB12//164时钟位

#definePB01//164数据位

xdataunsignedcharOUTBIT_at_0x8002;//位控制口

xdataunsignedcharOUTSEG_at_0x8004;//段控制口

unsignedcharLEDBuf[LEDLen];//显示缓冲

codeunsignedcharLEDMAP[]={//八段管显示码

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71

};

voidDelay(unsignedcharCNT)

{

unsignedchari;

while(CNT--!=0)

for(i=100;i!=0;i--);

};voidDisplayLED()

{

unsignedchari,j;

unsignedcharPos;

unsignedcharLED;

Pos=0x20;//从左边开始显示

for(i=0;iLEDLen;i++){

OUTBIT=0;//关所有八段管

LED=LEDBuf[i];

OUTSEG=LED;

OUTBIT=Pos;//显示一位八段管

Delay(1);

Pos=1;//显示下一位

}

}

;#defineTick10000//10000x100us=1s

#defineT100us(256-50)//100us时间常数(6M)

unsignedcharHour,Minute,Second;

unsignedintC100us;//100us记数单元

voidT0Int()interrupt1

{

C100us--;

if(C100us==0){

C100us=Tick;//100us记数器为0,重置记数器

Second++;

if(Second==60){

Second=0;

Minute++;

if(Minute==60){

Minute=0;

Hour++;

if(Hour==24)Hour=0;

}

}

}

};voidmain()

{

TMOD=0x02;//方式2,定时器

TH0=T100us;

TL0=T100us;

IE=0x82;//EA=1,IT0=1

Hour=0;

Minute=0;

Second=0;

C100us=Tick;

TR0=1;//启动定时器0

while(1){

LEDBuf[0]=LEDMAP[Ho

显示全部
相似文档