单片机原理流水灯设计.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)

原理: MCS- 51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。每组I/O口内部都有8位数据 输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。四组并行I/O端口即可以按字 节操作,又可以按位操作。当系统没有扩展外部器件时,I/O端口用作双向输入输出口; P0、P1、P2和P3接口均具有普通I/0口的功能,P0、P2口还可以作系统地址和数据总线、 P3口有第二功能,P3口的第二功能大多与其内部功能部件有关,RD、WR是外部数据存储 器的写、读控制信号,它与MCS-51的内部功能器件配合使用。 本实验用到的P1口内部结构如图1所示。作输出时:输出0即(P1.x=0)时,将0输出 到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的 场效应管导通,输出引脚成低电平。输出1时,下面的场效应管截止,上面的上拉电阻使 输出为1。作输入时:P1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚 信号控制下,引脚电平出现在内部总线上。为了能读到真实的引脚信号,下面的场效应 管必须截止,即锁存器的内容必须是1。为了能正确读取引脚信号,锁存器必须先写1。 通过C51程序的编写,可以使I/O口的每根引脚在不同的时间输出不同的0、1信号,从而 控制外部的设备。 归纳四个并行口使用的注意事项如下: 1、如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四个 口均可作I/O口使用。 2、四个口在作输入口使用时,均应先对其写"1",以避免误读。 3、P0口作I/O口使用时应外接10K的上拉电阻,其它口则可不必。 4、P2可某几根线作地址使用时,剩下的线不能作I/O口线使用。 5、P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。 内容及过程: 用proteus设计流水灯电路,将仿真实验板上51单片机的P1口的8根线与实验板上的8 位LED灯连接,I/O口的一根引脚控制一个LED灯。根据实验板上LED灯的硬件连接,编写 程序使8个LED灯从最低位依次点亮,每次只亮一盏灯。依此循环。 一、在此基础上编写程序使用一根I/O线接一开关控制流水灯流向。 1、用keil软件编写流水灯程序: (1)、启动Keil仿真软件后,点击Project菜单新建项目(new project); (2)、新建项目后,选择仿真单片机型号,并新建、保存、然后加入程序文件(add files to group"source group") (3)、编写言程序,程序如下: #include "reg51.h" main() #include "intrins.h" { #define uchar unsigned char temp=0xFE; #define uint unsigned int for(i=0;i<8;i++) uchar temp,i; { void delay(uint z) P0=temp; { temp=_crol_(temp,1); uint x,y; delay(400); for(x=z;x>0;x--) } for(y=110;y>0;y--);//延时函数 } } (4)、程序写好后,进行连接、编译、生成hex文件,如图2、图3所示: 图2 单击output,然后点击creat hex fi: 图3 生成led.Hex文件 2、用proteus仿真软件画出流水灯的电路图,用到的元器件有:AT89C51RB2、CAP、八个 LED-BLUE、CRYSTAL、RES、BUTTON及电源和接地。图如4所示: 图4 proteus流水灯仿真电路图 3、双击单片机,导入程序,如图5所示: 图5 导入流水灯的hex文件 二、在此基础上编写程序使8个LED灯从两边向中间循环点亮。 1、用keil软件编写灯从两端向中间移动流水灯程序: (1)、启动Keil仿真软件后,点击Project菜单新建项目(new project); (2)、新建项目后,选择仿真单片机型号,并新建、保存、然后加入程序文件(add files to group"source group") (3)、编写言程序,程序如下: #include"reg51.h" #include"intrins.h" #define uchar unsigned char #define uint unsigned int uchar a,b,i; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=240;y>0;y--); } main() { while(1) { for(i=0;i<5;i++) { a=(~(0x01<<i))&0x0f; b=(~(0x80>>i)











- 粉丝: 103
- 资源: 3万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助



- 1
- 2
前往页