




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 34 单片机流水灯实验总结 电子信息工程学系实验报告 课程名称: 单片机原理及接口 实验项目名称: 实验 2 流水灯实验 时间: 2016-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位数2 / 34 据输出锁存器及数据输出驱动等电路。四组并行 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口使 3 / 34 用时应外接 10K的上拉电阻, 其它口则可不必; P2 可某几根线作地址使用时,剩下的线不能作 I/O口线使用; P3口的某些口线作第二功能时,剩下的口线可以单独作 I/O口线使用。 三、实 验 环 境 : 硬件: PC机,基本配置 CPU PII以上,内存 2G 软件: keil 2, Proteus 四、实 验 内 容 及 过 程 : 1、用 Proteus 画流水灯电路图流程: 1)、运行 Proteus 仿真软件,单击 pick from libraries,打开搜索元器件窗口,如图 1 所示: 图 1 打开搜索元器件窗口 2)、搜索添加元器件,如图 2 所示: 图 2 搜索 添加元器件窗口 4 / 34 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 菜单新建项目,新建项目后,选择为 AT89C51 的仿真单片机的型号,单击 File选择 New新建程序文件,保存后,右击 Source Group1添加入程序文件。 2)、编写程序,右击 Target 1 打开设置输出 HEX 窗口,如图 4 所示: 图 4 打开设置输出 HEX窗口 3)、设置输出 HEX文件,勾选上 Output 下的 Create HEX Fi:,单击确定保存,运行程序得到 HEX 文件 ,如图 5 所示: 5 / 34 图 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;x0;x-) for(y=z;y0;y-); uchar temp; void main() temp=0xfe; P2=temp; while(1) 6 / 34 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; 7 / 34 3)、编写程序使用一根或二根 I/O 线接一开关控制流水灯流向。 编写程序,程序如下: sbit p15=P1 ; 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; 五、实 验 心 得: 8 / 34 通过本次的实验,熟悉 keil仿真软件、 proteus 仿真软件的使用。了解并熟悉单片机 I/O口和 LED灯 51单片机流水灯试验 一、 实验目的 1.了解 51单片机的引脚结构。 2.根据所学汇编语言编写代码实现 LED灯的流水功能。 3.利用开发板下载 hex文件后验证功能。 二、实验器材 个人电脑, 80c51 单片机,开发板 三、实验原理 单片机流水的实质是单片机 各引脚在规定的时间逐个上电,使 LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的 P2 端口,对 8 个 LED 灯进行9 / 34 控制,要实现逐个亮灯即将 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 10 / 34 DELAY:MOV R1,#255 DEL2:MOV R2,#250 DEL1:DJNZ R2,DEL1 DJNZ R1,DEL2 RET End 实验结果: 六、 实验总结 这次试验我通过 Proteus仿真实现对流水灯功能的实现。受益匪浅,对 80c51 的功能和结构有了深层次的了解,我深刻的明白,要想完全了解 c51还有一定距离,但我会一如既往的同困难作斗争。在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好 程序的却总出错,不知道11 / 34 什么原因,原来没有生成 hex文件。这些错误令我明白以后在试验中要步步细心,避免出错。 井冈山大学 机电 工程学院 单片机 课程设计报告 课程名称:单片机 设计题目:流水灯 姓 名:覃家应 陈东阳 专 业:生物医学工程 班 级: 10级医工本一班 学 号: 100615062 指导教师 :王佑湖 2016年 11月 10日 12 / 34 目录 1 引言 .2 设计任务 .2 设计要求 .2 2 课题综述 .2 课题的来源 . 2 面对的问 题 2 3 系统分析 .2 89C52 单片机引脚图及引脚功能介绍 2 4 系统设计 .4 硬件设计 .4 硬件框图 .4 13 / 34 硬件详细设计 .5 软件设计 .5 硬件原理图 .6 元件清单 .6 硬件焊接图 .6 代码编写 .7 5 心得体会 .7 6 致谢 .8 参考文献 .8 14 / 34 1 引言 单片机课程设计主要是为了让我们增进对 89C52单片机电路的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。 设计任 务 设计一个单片机控制的流水灯系统 设计要求 (1)至少 8个灯 ; (2)可实现不同的亮灯 (如左循环,右循环,间隔闪等 )。 2 课题综述 课题的来源 15 / 34 当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合 了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。 面对的问题 这次课程设计是通过 89C52位单片机实现。但面对的问题却是两方面的:一个是软件的设计,也就是实现流水灯控制功能的程序编 辑;另一个是硬件的设计,需要我们自己连接、焊接电路板。而更为严峻的就是设计的最后还要将软硬件相结合。首先我们需要通过 protel 将设计的实物的电路图画出来,再根据电路图连接实物电路。 3 系统分析 89C52单片 机引脚图及引脚功能介绍 本次设计的目的在于加深 89C52单片机的理解,首先来简单认识一下,它的引脚如图 3-1所示: 16 / 34 图 89C52 单片机的引脚大致可分 为 4类:电源、时钟、控制和 I/O 引脚。 1.电源 : VCC:芯片电源,接 +5V; VSS:接地端; 2.时钟 : XTAL1、 XTAL2 :晶体振荡电路反相输入端和输出端。 3.控制线 :控制线共有 4根, ALE/PROG:地址锁 存允许 /片内 EPROM 编程脉冲 ALE 功能:用来锁存 P0口送出的低 8 位地址 17 / 34 PROG功能:片内有 EPROM 的芯片,在 EPROM编程期间,此引脚输入编程脉冲。 PSEN:外 ROM 读选通信号。 RST/VPD:复位 /备用电源。 RST功能:复位信号输入端。 VPD功能:在 Vcc 掉电情况下,接备用电源。 EA/Vpp:内外 ROM选择 /片内 EPROM编程电源。 EA功能:内外 ROM 选择端。 Vpp 功能:片内有 EPROM 的芯片,在 EPROM 编程期间,施加编程电源 Vpp。 /O线 89C52共有 4个 8 位并行 I/O端口: P0、 P1、 P2、 P3口,共18 / 34 32个引脚。 单片机流水灯实验报告 一、实验目的 1、 熟练掌握 AT89S52- 型开发板的使用方法和注意事项。 2、 了解简单单片机应用系统的设计方法。 3、 掌握应用 KEIL 软件编辑、编 译源汇编程序的操作方法。 4、 掌握应用 USBISP烧录软件的操作方法。 5、 帮助学生养成良好实验习惯。 二、实验内容 在 AT89S52- 开发板上实现 8个发光 LED“ 流水 ” 的现象,并通过编写程序控制流水现象。 三、实验说明 19 / 34 当 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 ; 20 / 34 sbit P01=P0 ; void delay(uchar t) uchar i,j; for(i=0;i for(j=0;j void main() uchar i; while(1) P00=1; 21 / 34 delay(200); P00=0; for(i=0;i P1=tablei; P2=tablei; delay(200); P01=1; delay(200); P01=0; 22 / 34 实物展示: 单片机最小系统板 自己焊制的集成最小系统板 自己制作的心形流水灯实验板 系统板与实验板的连接展示 实验一 单片机并口简单应用 一、实验目的 1、了解单片机汇编语言程序的基本结构 2、了解单片机汇编语言程序的设计和调试方法 23 / 34 3、掌握顺序控制程序的简单编程 二、实验仪器 单片机开发板、万利仿真机、稳压电源、计算机 三、实验原理 1、流水灯硬件电路 如图 4-1 所示,流水灯硬件电路由移位寄存器 74LS164、功能选择开关 J502、二极管、三极管、单片机并口、限流电阻等组成。发光二极管连 接成共阳极结构。发光二极管点亮的条件是:阳极接高电平、各阴极接低电平。因此,通过程序控制 74LS164 的 Q0 端。 Q0 端输出 0,公共端阳极就接成高电平,然后再按一定规则从 P0 口输出数据,发光二极管就会点亮。 图 4-1 流水灯电路图 2、单片机流水灯程序设计 24 / 34 由上图可知,发光二极管要点亮,需要先把 J502的 2、 3脚相连,三极管 Q500 导通,然后从 P0口输出数据。 控制三极管导通程序 控制三极管有两种方法,第一种:在 74LS164的第 8 脚产生一个正脉冲,此时 1 脚为 0,三极管就导通;为 1,三极管就截止。 第二种:在单片机 IO 模拟 74LS164 时序,一次输出一个字节,只要 Q0=0即可控制三极管开通。为 1,三极管截止。 两种方法的程序流程如图 4-2所示。 图 4-2 流水灯位选信号控制 产生流水灯效果程序 三极管导通后,就可以从 P0 口输出数据控制发光二极管。P0口输出数据既可以编写程序逐个输出,也可以将输出数据序列定义在存储器中,然后用读程序存储器指令逐个取出并输出到 P0口。 25 / 34 程序流程图如图 4-3 所示。 图 4-3 流水灯程序流程图 四、实验内容 1、直接输出法输出数据序列 五、实验步骤及调试信息 1、新建实验项目 hua 2、输入实验程序并补充完整 程序如下: #include #define uint unsigned int sbit CLK=P3 ; 26 / 34 sbit DIN=P2 ; uint num; uint code table=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; void delay(uint z) uint i,j; for(i=z;i0;i-) for(j=100;j0;j-); void main() 27 / 34 DIN=0; CLK=0; /* */ delay(5);/*在 74LS164 的第 8 脚 ,产生一个正脉冲 */ CLK=1; /*此时 1 脚为 0,三极管就导通 */ delay(5);/* */ CLK=0; /* */ while(1) for(num=0;num P0=tablenum-; delay(500); 28 / 34 3、编译下载实验程序,全速运行 实验现象:全速运行程序,指示灯从第一个开始亮, 8 个指示灯依次亮了以后。指示灯就 没有规律的几盏一起亮,原因是 for(num=0;num P0=tablenum-; 程序运行到 num=0 时,递减以后就为 0FFH,此时程序的取值是任意的,修改如下: for(num=0;num P0=tablenum; 实验现象:全速运行程序,指示灯从第一个开始亮, 8 个指示灯依次亮起。 4、整理实验设备 29 / 34 六、实验现象 指示灯从左到右逐一变亮。 七、实验心得 通过本次 的实验,我对单片机的基本使用和程序的编写有了初步的了解,但是在实验过程中对程序的编写还不够熟练,仍然需要继续学习。 八、思考题 1、请把学号后两位数进转换成二进制数,然后依次点亮其中为 1对应的二极管,写出输出序列。例如, 60号转换成二进制后是 0011 1100B,依次点亮四个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 入职银行资料员培训课件
- 信息技术 wps版 教学大纲
- 河南省灵宝市2024-2025学年小学毕业考试语文试题(有答案)
- 佩戴口罩的重要性
- 邮政内部作案管理办法
- 造价部部门管理办法
- 企业消防安全生产培训课件
- 纽约枪支管制管理办法
- 2025年泌尿外科手术器械使用模拟考试答案及解析
- 外国学者谈新质生产力
- 语文课程教学技能课件
- 福建省厦门市同安区2024-2025学年七年级下学期期末考试地理试卷(含答案)
- 《人体工程学》本科设计类专业全套教学课件
- 模特老师培训课件模板
- IATF16949内审员培训资料
- 艾梅乙反歧视培训课件
- 劳模创新工作室申报材料
- 高中化学人教版高考大单元一 第一章 第4讲 氧化还原反应的概念和规律
- 敢于提问班会课件
- 作物生产与经营管理专业教学标准(高等职业教育专科)2025修订
- QGDW10936-2018物料主数据分类与编码规范
评论
0/150
提交评论