《单片机原理及应用》实验报告Word文档下载推荐.docx

上传人:b****1 文档编号:14664060 上传时间:2022-10-23 格式:DOCX 页数:46 大小:625.94KB
下载 相关 举报
《单片机原理及应用》实验报告Word文档下载推荐.docx_第1页
第1页 / 共46页
《单片机原理及应用》实验报告Word文档下载推荐.docx_第2页
第2页 / 共46页
《单片机原理及应用》实验报告Word文档下载推荐.docx_第3页
第3页 / 共46页
《单片机原理及应用》实验报告Word文档下载推荐.docx_第4页
第4页 / 共46页
《单片机原理及应用》实验报告Word文档下载推荐.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

《单片机原理及应用》实验报告Word文档下载推荐.docx

《《单片机原理及应用》实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《单片机原理及应用》实验报告Word文档下载推荐.docx(46页珍藏版)》请在冰豆网上搜索。

《单片机原理及应用》实验报告Word文档下载推荐.docx

//包含单片机寄存器的头文件

sfrx=0xb0;

//P3口在存储器中的地址就是b0H,通过sfr可定义8051内核单片机

//的所有内部8位特殊功能寄存器,对地址x的操作也就就是对P1口的操作

/****************************************

函数功能:

延时一段时间

*****************************************/

voiddelay(void)

{

unsignedchari,j;

for(i=0;

i<

255i++)

for(j=0;

j<

255j++)

;

//利用循环等待若干机器周期,从而延时一段时间

}

/*****************************************

主函数

******************************************/

voidmain(void)

{

while

(1)

x=0xfe;

//第一个灯亮

delay();

//调用延时函数

x=0xfd;

//第二个灯亮

x=0xfb;

//第三个灯亮

x=0xf7;

//第四个灯亮

x=0xef;

//第五个灯亮

delay();

x=0xdf;

//第六个灯亮

x=0xbf;

//第七个灯亮

x=0x7f;

//第八个灯亮

//调用延时函数

}

实验二:

中断实验

(1)熟悉51单片机中断初始化编程方法。

(2)掌握51单片机外部中断源的设计使用。

(3)中断处理应用程序的设计与调试技巧。

2.实验内容

通过对P3、2、P3、3引脚的电平控制,实现外部中断处理,从而控制输出口P1的输出效果变化。

/用外中断0的中断方式进行数据采集与处理

//包含51单片机寄存器定义的头文件

sbitS=P3^2;

//将S位定义为P3、2,

/*******************************************

主函数

******************************************/

EA=1;

//开放总中断

EX0=1;

//允许使用外中断

IT0=1;

//选择负跳变来触发外中断

P1=0xff;

while

(1)

;

//无限循环,防止程序跑飞

/**************************************************************

外中断T0的中断服务程序

**************************************************************/

voidint0(void)interrupt0using0//外中断0的中断编号为0

P1=~P1;

//每产生一次中断请求,P1取反一次。

//用外中断0的中断方式进行数据采集与处理

#defineucharunsignedchar

voidDelay(unsignedinti)

ucharj;

for(;

i>

0;

i--)

for(j=0;

125;

j++)

{;

}

//sbitS=P3^2;

uchardisplay[9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsignedinta;

while

(1){

EX0=1;

EX1=1;

IT0=1;

IT1=1;

IP=0;

for(a=0;

a<

9;

a++){

Delay(500);

P1=display[a];

voidint0_isr(void)interrupt0using1//外中断0的中断编号为1

ucharn;

for(n=0;

n<

10;

n++){

p1=0x0f;

Delay(500);

P1=0xf0;

voidint1_isr(void)interrupt2using2{

ucharn;

for(n=0;

p1=0xff;

Delay(500);

P1=0;

实验三:

定时器/计数器实验

(1)熟悉51单片机中断初始化编程方法

(2)熟悉51单片机定时计数器的初始化编程方法

(3)掌握定时计数器的应用

通过使用定时器T0的中断来控制P2、0引脚的的LED的灯闪烁,要求闪烁时间2S,既亮1S,灭1S。

//包含51单片机寄存器定义的头文件

sbitD1=P1^4;

//将D1位定义为P1、4引脚

unsignedcharCountor;

//设置全局变量,储存定时器T0中断次数

EA=1;

//开总中断

ET0=1;

//定时器T0中断允许

TMOD=0x01;

//使用定时器T0的模式2

TH0=(65536-15536)/256;

//定时器T0的高8位赋初值

TL0=(65536-15536)%256;

TR0=1;

//启动定时器T0

Countor=0;

//从0开始累计中断次数

while

(1)//无限循环等待中断

定时器T0的中断服务程序

voidTime0(void)interrupt1using0//"

interrupt"

声明函数为中断服务函数

//其后的1为定时器T0的中断编号;

0表示使用第0组工作寄存器

Countor++;

//中断次数自加1

if(Countor==20)//若累计满20次,即计时满1s

D1=~D1;

//按位取反操作,将P2、0引脚输出电平取反

Countor=0;

//将Countor清0,重新从0开始计数

TH0=(65536-15536)/256;

//定时器T0的高8位重新赋初值

实验四:

串行口实验

1.实验目的

(1)掌握单片机的串行口的工作原理

(2)掌握单片机串行口收发数据的方法

本实验要求单片机U1通过其串行口TXD向单片机U2发送数据。

单片机U1的P1口接8个开关,U2的P1口接8个发光二极管。

U1设置为只能发送不能接收,U1读入P1口的8个开关状态后,通过串行口发送到U2,U2将接收到的数据送入P1口,由P1口上连接的8个发光二极管显示8个开关的状态。

/*********发送单片机的发送程序***********/

//包含寄存器的头文件

/*********向PC发送一个字节数据**************/

voidSend(unsignedchardate)

SBUF=date;

while(TI==0);

TI=0;

/*********延时约150ms*********/

voiddelay(void)

unsignedcharm,n;

for(m=0;

m<

200;

m++)

250;

n++)

/*******函数功能:

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

unsignedchartemp;

TMOD=0x20;

//定时器T1工作于方式2

SCON=0x40;

//串口工作方式1

PCON=0x00;

//波特率9600

TH1=0xfd;

//根据规定给定时器T1赋初值

TL1=0xfd;

TR1=1;

//启动定时器T1

//读取P1端口数据

{

temp=P1;

Send(temp);

//发送数据i

delay();

//50ms发送一次检测数据

/**********接收单片机的接收程序***********/

/**接收一个字节数据**

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

当前位置:首页 > 工作范文 > 行政公文

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

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