单片机原理流水灯设计.docx

上传人:牧羊曲112 文档编号:3346508 上传时间:2023-03-12 格式:DOCX 页数:5 大小:38.29KB
返回 下载 相关 举报
单片机原理流水灯设计.docx_第1页
第1页 / 共5页
单片机原理流水灯设计.docx_第2页
第2页 / 共5页
单片机原理流水灯设计.docx_第3页
第3页 / 共5页
单片机原理流水灯设计.docx_第4页
第4页 / 共5页
单片机原理流水灯设计.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《单片机原理流水灯设计.docx》由会员分享,可在线阅读,更多相关《单片机原理流水灯设计.docx(5页珍藏版)》请在三一办公上搜索。

1、单片机原理流水灯设计原理: 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的内部功能器件配合使用。 图 1 P1口的位结构 本实验用到的P1口内部结构如图1所示。作输出时:

2、输出0即时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。输出1时,下面的场效应管截止,上面的上拉电阻使输出为1。作输入时:P1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。为了能读到真实的引脚信号,下面的场效应管必须截止,即锁存器的内容必须是1。为了能正确读取引脚信号,锁存器必须先写1。通过C51程序的编写,可以使I/O口的每根引脚在不同的时间输出不同的0、1信号,从而控制外部的设备。 归纳四个并行口使用的注意事项如下: 1、如果单片机内部有程序存贮器,不需要扩展外部存贮器

3、和I/O接口,单片机的四个口均可作I/O口使用。 2、四个口在作输入口使用时,均应先对其写“1”,以避免误读。 3、P0口作I/O口使用时应外接10K的上拉电阻,其它口则可不必。 4、P2可某几根线作地址使用时,剩下的线不能作I/O口线使用。 5、P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。 第 1 页 共 4 页 内容及过程: 用proteus设计流水灯电路,将仿真实验板上51单片机的P1口的8根线与实验板上的8位LED灯连接,I/O口的一根引脚控制一个LED灯。根据实验板上LED灯的硬件连接,编写程序使8个LED灯从最低位依次点亮,每次只亮一盏灯。依此循环。 一、在此

4、基础上编写程序使用一根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;i0;x-) f

5、or(y=110;y0;y-);/延时函数 、程序写好后,进行连接、编译、生成hex文件,如图2、图3所示: 图2 单击output,然后点击creat hex fi: 图3 生成led.Hex文件 2、用proteus仿真软件画出流水灯的电路图,用到的元器件有:AT89C51RB2、CAP、八个LED-BLUE、CRYSTAL、RES、BUTTON及电源和接地。图如4所示: 第 2 页 共 4 页 图4 proteus流水灯仿真电路图 3、双击单片机,导入程序,如图5所示: 图5 导入流水灯的hex文件 二、在此基础上编写程序使8个LED灯从两边向中间循环点亮。 1、用keil软件编写灯从两

6、端向中间移动流水灯程序: (1)、启动Keil仿真软件后,点击Project菜单新建项目(new project); (2)、新建项目后,选择仿真单片机型号,并新建、保存、然后加入程序文件(add files to group“source group”) (3)、编写言程序,程序如下: #includereg51.h #includeintrins.h #define uchar unsigned char #define uint unsigned int uchar a,b,i; void delay(uint z) uint x,y; 第 3 页 共 4 页 for(x=z;x0;x-

7、) for(y=240;y0;y-); main while(1) for(i=0;i5;i+) a=(0x01i)&0xf0; P0=a+b; delay(500); 、程序写好后,进行连接、编译、生成hex文件,如图6、图7所示: 图6 单击output,然后点creat hex 图7 生成hex可执行文件 2、用proteus软件进行仿真,画出电路图,所需元器件有:AT89C51RB2、CAP、八个LED-BLUE、CRYSTAL、RES、BUTTON及电源和接地。图如4所示,导入程序如图5所示。利用proteus进行仿真实验时,如何正确画出电路图关系到实验仿真结果的正确以否,所以,需掌握单片机的基本原理,I/0口的功能,然后认真画图,画好后,导入程序进行调式,发现问题进行修改,最后仿真成功。 第 4 页 共 4 页

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号