最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

单片机流水灯实验报告

IT圈 admin 52浏览 0评论

2024年3月15日发(作者:合雪绿)

单片机流水灯实验报告

电子信息工程学系实验报告

课程名称:单片机原理及接口

实验项目名称:实验2 流水灯实验时间: xx-10-21 班级:电

信092 姓名:蔡松亮学号: 910706247

一、实验目的:

进一步熟悉keil仿真软件、proteus仿真软件的使用。了解并熟

悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。

掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注

意事项。

二、实验原理:

MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和

P3。每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器

及数据输出驱动等电路。四组并行I/O端口即可以按字节操作,又可

以按位操作。当系统没有扩展外部器件时,I/O端口用作双向输入输

出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、

P3口有第二功能,与MCS-51的内部功能器件配合使用。

以P1口为例,内部结构如下图所示:

图 P1口的位结构

作输出时:输出0时,将0输出到内部总线上,在写锁存器信号

控制下写入锁存器,锁存器的反向输出端输出

通,输出引脚成低电平。输出

1,下面的场效应管导

1时,下面的场效应管截止,上面的上

拉电阻使输出为1。作输入时:P1端口引脚信号通过一个输入三态缓

冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线

上。

I/O口的注意事项,如果单片机内部有程序存贮器,不需要扩展

I/O口使用;四个口外部存贮器和I/O接口,单片机的四个口均可作

在作输入口使用时,均应先对其写“

口使

1”,以避免误读;P0口作I/O

用时应外接10K的上拉电阻,其它口则可不必;P2可某几根线作

地址使用时,剩下的线不能作I/O口线使用;P3口的某些口线作第

I/O口线使用。二功能时,剩下的口线可以单独作

三、实验环境:

硬件:PC机,基本配置CPU PII以上,内存2G 软件:keil 2,

Proteus 7.5

四、实验内容及过程:

1、用Proteus画流水灯电路图流程:

1)、运行Proteus仿真软件,单击pick from libraries,

搜索元器件窗口,如图 1 所示:

图 1 打开搜索元器件窗口

2)、搜索添加元器件,如图2 所示:

图2 搜索添加元器件窗口

3)、添加元器件,修改元器件的参数,绘制流水灯原理图,元器

件参数为c1=c2=20pf、c3=10uf;

打开

R1=R2=R3=R4=R5=R6=R7=R8=470欧姆、R9=10k欧姆;晶振

=12M;VCC=5V。总电路图如图 3 所示:

图 3 流水灯电路原理图

2、用keil建项目流程:

1)、运行keil 2软件,启动后,点击Project菜单新建项目,

File选择新建项目后,选择为AT89C51的仿真单片机的型号,单击

New新建程序文件,保存后,右击Source Group1添加入程序文件。

2)、编写程序,右击Target 1打开设置输出HEX窗口,如图 4 所

示:

图 4 打开设置输出HEX窗口

3)、设置输出HEX文件,勾选上Output下的Create HEX Fi:,单

击确定保存,运行程序得到HEX文件,如图 5 所示:

图5 设置输出HEX文件

3、实验内容:

1)、8个LED灯从最高位依次点亮,每次只亮一盏灯,依此循环。

新建keil文件,编写程序,程序如下:

#include #include #define uint unsigned int

#define uchar unsigned char void defay(uint z) {

uint x,y;

for(x=100;x>0;x--) for(y=z;y>0;y--); }

uchar temp; void main() {

temp=0xfe; P2=temp; while(1)

{

temp=_crol_(temp,1); defay(500); P2=temp;

} }

2)、编写程序使8个LED灯从两边向中间循环点亮。

编写程序,程序如下:

uchar temp,m,n;

uint i; void main() {

m=0xfe; n=0x7f; while(1) {

P2=m&n;

m=_crol_(m,1); n=_cror_(n,1); if(m==0xef)

{

m=0xfe; n=0x7f; }}

3)、编写程序使用一根或二根I/O线接一开关控制流水灯流向。

编写程序,程序如下:

sbit p15=P1^5; void main() {temp=0xfe;

P2=temp; while(1) defay(500); }

{

if (p15==1){ temp=_crol_(temp,1);

defay(500); }

if (p15==0) { temp=_cror_(temp,1); defay(500); }

P2=temp; } }

五、实验心得:

通过本次的实验,熟悉keil仿真软件、proteus

了解并熟悉单片机I/O口和LED灯

51单片机流水灯试验

一、实验目的

仿真软件的使用。

1.了解51单片机的引脚结构。

2.根据所学汇编语言编写代码实现LED灯的流水功能。

3.利用开发板下载hex文件后验证功能。

二、实验器材

个人电脑,80c51单片机,开发板

三、实验原理

单片机流水的实质是单片机各引脚在规定的时间逐个上电,

灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,

使LED

实验中使

用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即

将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用

rl或rr a实现位的转换。 A寄存器的位经过rr a之后转换如下所

示:

然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数

送到了P2口,不断循环下去,便实现了逐位置一操作。

四、实验电路图

五、通过仿真实验正确性

代码如下:ORG 0

MOV A,#00000001B

LOOP:MOV P2,A

RL A

ACALL DELAY

SJMP LOOP

DELAY:MOV R1,#255

DEL2:MOV R2,#250

DEL1:DJNZ R2,DEL1

DJNZ R1,DEL2

RET

End

实验结果:

六、实验总结

这次试验我通过Proteus仿真实现对流水灯功能的实现。受益匪

浅,对80c51的功能和结构有了深层次的了解,我深刻的明白,要想

完全了解c51还有一定距离,但我会一如既往的同困难作斗争。在实

验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写

好程序的却总出错,不知道什么原因,原来没有生成

错误令我明白以后在试验中要步步细心,避免出错。

hex文件。这些

单片机流水灯实验报告

一、实验目的

1、熟练掌握AT89S52-Ⅰ型开发板的使用方法和注意事项。

2、了解简单单片机应用系统的设计方法。

3、掌握应用KEIL软件、编译源汇编程序的操作方法。

4、掌握应用USBISP烧录软件的操作方法。

5、帮助学生养成良好实验习惯。

二、实验内容

在AT89S52-Ⅰ开发板上实现8个发光LED“流水”的现象,并通

过编写程序控制流水现象。

三、实验说明

当8255 的PA口有低电平输出时,相应的发光二极管就会点亮。

应用这一原理我们可以容易的点亮一个数码管,例如令PA口输出

0111 1111时D1就会点亮。若再把0111 1111向右循环一位,利用

PA口输出,就会点亮D2。在发光二极管两次点亮的间隔中加延时程

序,让每次点亮停留一段时间,像这样人眼就可以看到“流水”

现象。

五、实验原理图

六、实验参考程序

#include

#define uchar unsigned char

#define uint unsigned int

uchar table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

sbit P00=P0^0;

sbit P01=P0^1;

void delay(uchar t)

{

uchar i,j;

for(i=0;i

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

}

void main()

{

uchar i;

while(1)

{

P00=1;

delay(200);

P00=0;

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

{

P1=table[i];

P2=table[i];

delay(200);

}

P01=1;

delay(200);

P01=0;

}

}

实物展示:

(1)单片机最小系统板

(2)自己焊制的集成最小系统板

(3

)自己制作的心形流水灯实验板

(4)系统板与实验板的连接展示

内容仅供参考

2024年3月15日发(作者:合雪绿)

单片机流水灯实验报告

电子信息工程学系实验报告

课程名称:单片机原理及接口

实验项目名称:实验2 流水灯实验时间: xx-10-21 班级:电

信092 姓名:蔡松亮学号: 910706247

一、实验目的:

进一步熟悉keil仿真软件、proteus仿真软件的使用。了解并熟

悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。

掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注

意事项。

二、实验原理:

MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和

P3。每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器

及数据输出驱动等电路。四组并行I/O端口即可以按字节操作,又可

以按位操作。当系统没有扩展外部器件时,I/O端口用作双向输入输

出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、

P3口有第二功能,与MCS-51的内部功能器件配合使用。

以P1口为例,内部结构如下图所示:

图 P1口的位结构

作输出时:输出0时,将0输出到内部总线上,在写锁存器信号

控制下写入锁存器,锁存器的反向输出端输出

通,输出引脚成低电平。输出

1,下面的场效应管导

1时,下面的场效应管截止,上面的上

拉电阻使输出为1。作输入时:P1端口引脚信号通过一个输入三态缓

冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线

上。

I/O口的注意事项,如果单片机内部有程序存贮器,不需要扩展

I/O口使用;四个口外部存贮器和I/O接口,单片机的四个口均可作

在作输入口使用时,均应先对其写“

口使

1”,以避免误读;P0口作I/O

用时应外接10K的上拉电阻,其它口则可不必;P2可某几根线作

地址使用时,剩下的线不能作I/O口线使用;P3口的某些口线作第

I/O口线使用。二功能时,剩下的口线可以单独作

三、实验环境:

硬件:PC机,基本配置CPU PII以上,内存2G 软件:keil 2,

Proteus 7.5

四、实验内容及过程:

1、用Proteus画流水灯电路图流程:

1)、运行Proteus仿真软件,单击pick from libraries,

搜索元器件窗口,如图 1 所示:

图 1 打开搜索元器件窗口

2)、搜索添加元器件,如图2 所示:

图2 搜索添加元器件窗口

3)、添加元器件,修改元器件的参数,绘制流水灯原理图,元器

件参数为c1=c2=20pf、c3=10uf;

打开

R1=R2=R3=R4=R5=R6=R7=R8=470欧姆、R9=10k欧姆;晶振

=12M;VCC=5V。总电路图如图 3 所示:

图 3 流水灯电路原理图

2、用keil建项目流程:

1)、运行keil 2软件,启动后,点击Project菜单新建项目,

File选择新建项目后,选择为AT89C51的仿真单片机的型号,单击

New新建程序文件,保存后,右击Source Group1添加入程序文件。

2)、编写程序,右击Target 1打开设置输出HEX窗口,如图 4 所

示:

图 4 打开设置输出HEX窗口

3)、设置输出HEX文件,勾选上Output下的Create HEX Fi:,单

击确定保存,运行程序得到HEX文件,如图 5 所示:

图5 设置输出HEX文件

3、实验内容:

1)、8个LED灯从最高位依次点亮,每次只亮一盏灯,依此循环。

新建keil文件,编写程序,程序如下:

#include #include #define uint unsigned int

#define uchar unsigned char void defay(uint z) {

uint x,y;

for(x=100;x>0;x--) for(y=z;y>0;y--); }

uchar temp; void main() {

temp=0xfe; P2=temp; while(1)

{

temp=_crol_(temp,1); defay(500); P2=temp;

} }

2)、编写程序使8个LED灯从两边向中间循环点亮。

编写程序,程序如下:

uchar temp,m,n;

uint i; void main() {

m=0xfe; n=0x7f; while(1) {

P2=m&n;

m=_crol_(m,1); n=_cror_(n,1); if(m==0xef)

{

m=0xfe; n=0x7f; }}

3)、编写程序使用一根或二根I/O线接一开关控制流水灯流向。

编写程序,程序如下:

sbit p15=P1^5; void main() {temp=0xfe;

P2=temp; while(1) defay(500); }

{

if (p15==1){ temp=_crol_(temp,1);

defay(500); }

if (p15==0) { temp=_cror_(temp,1); defay(500); }

P2=temp; } }

五、实验心得:

通过本次的实验,熟悉keil仿真软件、proteus

了解并熟悉单片机I/O口和LED灯

51单片机流水灯试验

一、实验目的

仿真软件的使用。

1.了解51单片机的引脚结构。

2.根据所学汇编语言编写代码实现LED灯的流水功能。

3.利用开发板下载hex文件后验证功能。

二、实验器材

个人电脑,80c51单片机,开发板

三、实验原理

单片机流水的实质是单片机各引脚在规定的时间逐个上电,

灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,

使LED

实验中使

用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即

将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用

rl或rr a实现位的转换。 A寄存器的位经过rr a之后转换如下所

示:

然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数

送到了P2口,不断循环下去,便实现了逐位置一操作。

四、实验电路图

五、通过仿真实验正确性

代码如下:ORG 0

MOV A,#00000001B

LOOP:MOV P2,A

RL A

ACALL DELAY

SJMP LOOP

DELAY:MOV R1,#255

DEL2:MOV R2,#250

DEL1:DJNZ R2,DEL1

DJNZ R1,DEL2

RET

End

实验结果:

六、实验总结

这次试验我通过Proteus仿真实现对流水灯功能的实现。受益匪

浅,对80c51的功能和结构有了深层次的了解,我深刻的明白,要想

完全了解c51还有一定距离,但我会一如既往的同困难作斗争。在实

验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写

好程序的却总出错,不知道什么原因,原来没有生成

错误令我明白以后在试验中要步步细心,避免出错。

hex文件。这些

单片机流水灯实验报告

一、实验目的

1、熟练掌握AT89S52-Ⅰ型开发板的使用方法和注意事项。

2、了解简单单片机应用系统的设计方法。

3、掌握应用KEIL软件、编译源汇编程序的操作方法。

4、掌握应用USBISP烧录软件的操作方法。

5、帮助学生养成良好实验习惯。

二、实验内容

在AT89S52-Ⅰ开发板上实现8个发光LED“流水”的现象,并通

过编写程序控制流水现象。

三、实验说明

当8255 的PA口有低电平输出时,相应的发光二极管就会点亮。

应用这一原理我们可以容易的点亮一个数码管,例如令PA口输出

0111 1111时D1就会点亮。若再把0111 1111向右循环一位,利用

PA口输出,就会点亮D2。在发光二极管两次点亮的间隔中加延时程

序,让每次点亮停留一段时间,像这样人眼就可以看到“流水”

现象。

五、实验原理图

六、实验参考程序

#include

#define uchar unsigned char

#define uint unsigned int

uchar table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

sbit P00=P0^0;

sbit P01=P0^1;

void delay(uchar t)

{

uchar i,j;

for(i=0;i

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

}

void main()

{

uchar i;

while(1)

{

P00=1;

delay(200);

P00=0;

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

{

P1=table[i];

P2=table[i];

delay(200);

}

P01=1;

delay(200);

P01=0;

}

}

实物展示:

(1)单片机最小系统板

(2)自己焊制的集成最小系统板

(3

)自己制作的心形流水灯实验板

(4)系统板与实验板的连接展示

内容仅供参考

发布评论

评论列表 (0)

  1. 暂无评论