80C51可控流水灯单片机课程设计报告.docx

上传人:b****8 文档编号:10228131 上传时间:2023-02-09 格式:DOCX 页数:15 大小:462.08KB
下载 相关 举报
80C51可控流水灯单片机课程设计报告.docx_第1页
第1页 / 共15页
80C51可控流水灯单片机课程设计报告.docx_第2页
第2页 / 共15页
80C51可控流水灯单片机课程设计报告.docx_第3页
第3页 / 共15页
80C51可控流水灯单片机课程设计报告.docx_第4页
第4页 / 共15页
80C51可控流水灯单片机课程设计报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

80C51可控流水灯单片机课程设计报告.docx

《80C51可控流水灯单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《80C51可控流水灯单片机课程设计报告.docx(15页珍藏版)》请在冰豆网上搜索。

80C51可控流水灯单片机课程设计报告.docx

80C51可控流水灯单片机课程设计报告

 

80C51单片机流水灯实训和调试报告

 

班级:

姓名:

学号:

1目的

单片机课程设计主要是为了让我们增进对80C51单片机电路的感性认识,加深对理论方面的理解。

了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。

另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。

2.2课题的意义

这次单片机课程设计是为了通过对流水灯控制的设计加强学生团队配合的能力和创造力;综合运用专业及基础知识,解决实际工程技术问题的能力。

能够让学生深入真是的体会到所学的理论知识和实践相结合的过程。

找出自身的不足并加以改正。

2.3预期的目标

对8个LED灯设计5种流水灯显示方式,用一个按键进行方式选择,并用一个数码管显示方式编号;用两个键来控制流水灯流动的速度。

2.4面对的问题

这次课程设计是通过80C51位单片机实现。

但面对的问题却是两方面的:

一个是软件的设计,也就是实现流水灯控制功能的程序编辑;另一个是硬件的设计,需要我们自己连接、焊接电路板。

而更为严峻的就是设计的最后还要将软硬件相结合。

首先我们需要通过protel将设计的实物的电路图画出来,再根据电路图连接实物电路。

2.5课题的技术

LED灯的显示方式、模式切换按钮的控制、亮灯速度的按键控制等技术。

3系统分析

3.1涉及的基础知识

电路焊接:

制造电子产品的重要手段。

80C51单片机指令系统:

规定80C51单片机内操作的语句或命令。

LED数码管的显示:

向数码的显示送数,控制系统的显示部分。

3.280C51单片机引脚图及引脚功能介绍

本次实习的目的在于加深80C51单片机的理解,首先来简单认识一下,它的引脚如图3-1所示:

图3.180C51的引脚图

单片机的39个引脚大致可分为4类:

电源、时钟、控制和I/O引脚。

1.电源:

(1)VCC:

芯片电源,接+5V;

(2)VSS:

接地端;

2.时钟:

XTAL1、XTAL2:

晶体振荡电路反相输入端和输出端。

3.控制线:

控制线共有4根,

(1)ALE/PROG:

地址锁存允许/片内EPROM编程脉冲

ALE功能:

用来锁存P0口送出的低8位地址

PROG功能:

片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

(2)PSEN:

外ROM读选通信号。

(3)RST/VPD:

复位/备用电源。

RST(Reset)功能:

复位信号输入端。

VPD功能:

在Vcc掉电情况下,接备用电源。

(4)EA/Vpp:

内外ROM选择/片内EPROM编程电源。

EA功能:

内外ROM选择端。

Vpp功能:

片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

4.I/O线

80C51共有4个8位并行I/O端口:

P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

3.3解决问题的基本思路

因为选定用循环移位法来实现亮灯程序的,所以在一种设计好一种亮灯方式的前提下编程实现一个循环结构体,分别来实现五种不同的亮灯方式。

另外再编一个实现延时控制的调用程序,来提供亮灯速度的控制。

3.4总体方案

在做本次课程设计之前将小组内人员分为两小组:

一组分负责硬件设计,另一组负责软件编程。

硬件小组负责实物的连接和焊接,并进行硬件测试;软件小组负责实现流水灯的各部分程序设计,并进行软件的仿真测试。

最后将完成的软硬件相结合,从而达到实现课程设计的效果。

4系统设计

4.1硬件设计

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。

80C51单片机是本次课程设计运用的主要原件。

流水灯控制设计是用一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。

4.2软件设计

单片机的应用系统由硬件和软件组成,在硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。

软件编程是单片机应用系统中的一个重要的组成部分,也是本次课程设计的重点和难点。

我们编程实现流水灯的方法是循环移位法,下面我们就来简述一下循环移位法的工作原理。

循环移位法是采用循环程序结构进行编程。

我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果了。

另外,由于80C51系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样也可以实现“流水”效果。

4.3元件清单

表4-1元件清单

名称

型号

数量

电阻

220Ω

9

电容

103

4

开关

1

芯片

1

单片机

80C51

1

PC机串行口

LED灯

8

电源指示灯

1

二极管

2

三极管

4

数码显示器

1

按键

4

4.4硬件原理图

图4-1硬件原理图

4.5硬件焊接图

图4-2硬件焊接图

4.6设计主要功能

打开电路开关,按下第一个模式控制键,8个LED数码管会从右向左一个接着一个亮灯,LED显示器会显示数字“1”来表示当前的亮灯方式是模式1。

在8个LED数码管全部亮后再次按下第一个模式控制键,8个LED数码管会从又向左2个一组的一次亮灯,同时LED显示器会显示数字“2”来表示当前的亮灯方式是模式2。

以此类推,一共有5种显示模式。

而第2、3个按键分别控制亮灯速度的快慢。

5代码编写

ORG00H;设置主程序开始地址

CLRP3.4;这里可以使小喇叭发出嗒、嗒声

DELAY:

MOVR6,#255;延时0.1s

D1:

MOVR7,#255;延时一段时间

DJNZR7,$;原地等待

DJNZR6,D1

RET

END

DELAY1:

MOVR6,#150;延时0.05s

D2:

MOVR7,#150

DJNZR6,D2

RET

END

START:

MOVA,P1.4;选中p1.4数码管使能

JZTTT

ADDR5,A

CJNER5,#3,C1

AJMPM1

C1:

CJNER5,#3,C1

AJMPM3

C2:

JNCC2

C3:

TTT:

INCA

M1:

MOVP0,#7EH;把7EH送p0口,数码管显示1

LCALLDELAY;数码管亮后的缓冲

MOVA,#11111110B;赋值

MOVR4,A;保存所赋的值

LOOP:

MOVP2,A;值给LED灯

ACALLV;调用延时子程序

MOVA,R4;保存的值还给A

RLA;左移

AJMPLOOP;不为零,重复把值给LED灯

RET

M2:

MOVP0,#0A2H;数码管显示2

LCALLDELAY

AGAIN:

MOVR3,#8H

LOOP1:

MOVA,#FEH

MOVR4,A

X1:

MOVP2,A

ACALLV;调用延时子程序

MOVA,R4

RLA

DJNZR3,X1

MOVR3,#8

LOOP2:

MOVA,#7FH

X2:

MOVP2,A

ACALLV;调用延时子程序

MOVA,R4

RRA

DJNZR3,X2

AJMPAGAIN

RET

M3:

MOVP0,#62H;数码管显示3

LCALLDELAY

MOVR1,#05H

OUTL:

MOVDPTR,#TABLE

MOVR2,#04H

MOVA,00H

INL:

MOVR0,A

MOVCA,@A+DPTR

MOVP2,A

ACALLV;调用延时子程序

MOVA,R0

INCA

DJNZR2,INL

DJNZR1,OUTL

TABLE:

DB7EH,0BDH,0DBH,0E7H

RET

M4:

MOVP0,#74H;数码管显示4

LCALLDELAY

MOVA,#01111111B

MOVR4,A

LOOP:

MOVP2,A

ACALLV;调用延时子程序

MOVA,R4

RLA`

AJMPLOOP

RET

M5:

MOVP0,#61H;数码管显示5;

LCALLDELAY

MOVR1,#05H

OUTL:

MOVDPTR,#TABLE

MOVR2,#04H

MOVA,00H

INL:

MOVR0,A

MOVCA,@A+DPTR

MOVP2,A

ACALLV;调用延时子程序`

MOVA,R0

INCA

DJNZR2,INL

DJNZR1,OUTL

TABLE:

DB0E7H,0DBH,0BDH,7EH

RET

;延时选择程序

V:

DELAY

MOVA,P1.5;P1.5低电平时延时长,流水灯速度慢

JZDELAY

MOVA,P1.6;P1.6低电平时延时短,流水灯速度快

JZDELAY1

RET;子程序返回

END;程序结束

6程序调试

本程序运行过程中没有错误。

但对于双键控制流水灯亮灯速度的功能并没有得到实现。

将电路板用数据线连接,打开开关,按钮用来切换模式,一共有五种流动方式,每按一次按钮就会有一种方式,并在LED显示器上面显示出该模式的序号。

 

单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。

软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。

下面我们以最简单的流水灯控制功能即实现8个LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。

位控法

这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。

程序如下:

ORG      0000H           ;单片机上电后从0000H地址执行

AJMP    START          ;跳转到主程序存放地址处

ORG      0030H           ;设置主程序开始地址

START:

MOV     SP,#60H     ;设置堆栈起始地址为60H

CLR       P1.0              ;P1.0输出低电平,使LED1点亮

ACALL DELAY         ;调用延时子程序

    SETB  P1.0            ;P1.0输出高电平,使LED1熄灭

    CLR  P1.1            ;P1.1输出低电平,使LED2点亮

ACALL DELAY         ;调用延时子程序

    SETB  P1.1            ;P1.1输出高电平,使LED2熄灭

    CLR  P1.2            ;P1.2输出低电平,使LED3点亮

ACALL DELAY         ;调用延时子程序

    SETB  P1.2            ;P1.2输出高电平,使LED3熄灭

    CLR  P1.3            ;P1.3输出低电平,使LED4点亮

    ACALL DELAY         ;调用延时子程序

    SETB  P1.3            ;P1.3输出高电平,使LED4熄灭

 CLR  P1.4            ;P1.4输出低电平,使LED5点亮

    ACALL DELAY         ;调用延时子程序

    SETB  P1.4            ;P1.4输出高电平,使LED5熄灭

    CLR  P1.5            ;P1.5输出低电平,使LED6点亮

    ACALL DELAY         ;调用延时子程序

    SETB  P1.5            ;P1.5输出高电平,使LED6熄灭

    CLR  P1.6            ;P1.6输出低电平,使LED7点亮

    ACALL DELAY         ;调用延时子程序

SETB  P1.6            ;P1.6输出高电平,使LED7熄灭

    CLR  P1.7            ;P1.7输出低电平,使LED8点亮

ACALL DELAY         ;调用延时子程序

 SETB  P1.7            ;P1.7输出高电平,使LED8熄灭

ACALL DELAY         ;调用延时子程序

    AJMP  START          ;8个LED流了一遍后返回到标号START处再循环

DELAY:

                              ;延时子程序

MOV     R0,#255  ;延时一段时间

D1:

     MOV     R1,#255

DJNZ     R1,$

DJNZ     R0,D1

RET                            ;子程序返回

    END                           ;程序结束

 

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

当前位置:首页 > 求职职场 > 简历

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

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