89c51单片机教学实验内容与答案Word文档下载推荐.docx

上传人:b****2 文档编号:14789381 上传时间:2022-10-24 格式:DOCX 页数:10 大小:84.05KB
下载 相关 举报
89c51单片机教学实验内容与答案Word文档下载推荐.docx_第1页
第1页 / 共10页
89c51单片机教学实验内容与答案Word文档下载推荐.docx_第2页
第2页 / 共10页
89c51单片机教学实验内容与答案Word文档下载推荐.docx_第3页
第3页 / 共10页
89c51单片机教学实验内容与答案Word文档下载推荐.docx_第4页
第4页 / 共10页
89c51单片机教学实验内容与答案Word文档下载推荐.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

89c51单片机教学实验内容与答案Word文档下载推荐.docx

《89c51单片机教学实验内容与答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《89c51单片机教学实验内容与答案Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。

89c51单片机教学实验内容与答案Word文档下载推荐.docx

i<

7;

i++)

*(d2+i)=*(d1+i);

 

2.排序实验

将片内从30H单元开始的10个无符号数,按由小到大的顺序排列。

(先在30H~39H中送排序初值)

unsignedchardata*p,i,j,d;

p=0x30;

*(p+0)=0x21;

*(p+1)=0x11;

*(p+2)=0x31;

*(p+3)=0x02;

*(p+4)=0x22;

*(p+5)=0x42;

*(p+6)=0x32;

*(p+7)=0x41;

*(p+8)=0x05;

*(p+9)=0x22;

9;

for(j=0;

j<

9-i;

j++)

if(*(p+j)>

*(p+j+1))

{d=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=d;

3.并行接口实验

使用P1口控制LED1~LED8进行花样显示。

显示顺序规律为:

(1)8个LED依次左移单个点亮。

(2)8个LED依次左移逐个点亮。

(3)8个LED依次左移逐个熄灭,然后再从

(1)进行循环,中间延迟时间1s。

reg51.h>

#defineucharunsignedchar//在程序中用uchar替代unsignedchar

//目的在于减少代码输入量

#defineuintunsignedint

voiddelay(uint);

//定义延时函数

voidLeftMovLED(void);

//定义向左移运点亮LED的函数

//*******主函数********

voidmain(void)

while

(1)//死循环

{

LeftMovLED();

//调用LeftMovLED实现左移点亮LED功能

}

voidLeftMovLED(void)

uchari,temp;

//定义两个变量

temp=0x01;

//temp赋初值

for(i=0;

8;

i++)//下面的代码循环8次

P1=temp;

//将temp内的值赋给PORTD点亮LED

temp=temp<

<

1&

0xfe;

//将temp左移一位后将最后一位清零。

delay(1000);

//调用延时函数,延时时间大约1S

temp++;

//*******延时函数*******

voiddelay(uintx)

uchari;

//定义一个循环变量

while(x--)//循环执行在下代码x次,x在呼叫此函数处赋值。

165;

i++)//循环执行以下代码165次(大约1ms)

continue;

4.定时器/计数器实验

使用定时/计数器作为延时控制,在两灯P0.0和P0.1之间按1s互相闪烁。

#include<

#defineucharunsignedchar

sbitLED=P0^0;

sbitLED1=P0^1;

uchartime;

voidInitTimer0(void)

LED=1;

LED1=0;

TMOD=0x01;

//定时器0,工作方式1

TH0=0x3c;

TL0=0xb0;

//50ms中断一次

EA=1;

ET0=1;

TR0=1;

InitTimer0();

while

(1);

//分号,表示在此一直循环执行,等待中断。

相当于汇编的AJMP$

voidTimer0Interrupt(void)interrupt1

time++;

if(time==20)//中断20次,1s

time=0;

LED=!

LED;

//P1.0上的LED1s亮灭一次

LED1=!

LED1;

6.LED显示器

设计一个59秒计时器,使用两位共阳极LED数码管将其显示出来。

实验电路图要求自己设计,可参考书上例子或上网查询。

Forpersonaluseonlyinstudyandresearch;

notforcommercialuse

unsignedcharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,

0x80,0x90,0x88,};

voiddelay(uintxms)//延时函数

uinti,j;

for(i=xms;

i>

0;

i--)

for(j=110;

j>

j--);

{

ucharkey,a;

a=0;

while(a<

5)

key=0;

while(key<

10)

switch(key)

case0:

P2=table[0];

break;

//0按下相应的键显示相对应的码值

case1:

P2=table[1];

//1

case2:

P2=table[2];

//2

case3:

P2=table[3];

//3

case4:

P2=table[4];

//4

case5:

P2=table[5];

//5

case6:

P2=table[6];

//6

case7:

P2=table[7];

//7

case8:

P2=table[8];

//8

case9:

P2=table[9];

//9

switch(a)

P1=table[0];

P1=table[1];

P1=table[2];

P1=table[3];

P1=table[4];

P1=table[5];

//5

if(key==9)

a++;

key++;

仅供个人用于学习、研究;

不得用于商业用途。

notforcommercialuse.

Nurfü

rdenpersö

nlichenfü

rStudien,Forschung,zukommerziellenZweckenverwendetwerden.

Pourl'

é

tudeetlarechercheuniquementà

desfinspersonnelles;

pasà

desfinscommerciales.

толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях. 

以下无正文

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1