单片机实习报告

1 引言

1.1实习目的

随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它给人们带来的方便也是不可否定的。本次实习的目的在于加深AT89C51单片机的理解,初步掌握单片机应用系统的设计方法。通过本次实习达到巩固、充实和综合运用所学知识解决实际问题的目的。

1.2 单片机基础知识

单片机又称单片微控制器,它是把一个计算机系统集成到一个芯片上。单片机具有体积小、功能强、应用方面广等优点。它的体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,为学习、应用和开发提供了便利条件。目前正以前所未见的速度取代着传统电子线路构成的经典系统。单片机的使用领域已十分广泛。例如彩电、冰箱、空调等无处不见单片机的影子,单片机已深深地融入我们的生活。大大提高了这些产品的智能性,易用性及节能性等主要性能指标,在工农业生产上也极大提高了生效效率和产品质量。

1.3课题描述

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

2系统概述

2.1系统分析

流水灯是一串按一定的规律像流水一样连续闪亮。流水灯控制是可编程控制器的一个应用。流水灯控制可用多种方法实现,要求8个灯在时钟信号作用下按规律转换5种状态。每按一次按键选择一个方式,方式显示在数码管上,8个灯分别用不同的方式闪亮。同时通过其它两个按钮可以调节灯闪亮的快慢速度。也就是用延时的方法来控制速度。

2.2系统设计要求

根据课题,查找资料,了解所使用的芯片;

画出可控流水灯的工作电路图,使用Protel 软件绘制电路图;

根据原理图把元件器正确焊接到电路板上,分清元件器的正负极,以及焊接的正确位置;

设计程序,在Keil 750 AHK环境下调试程序以实现预期的功能。

3系统详细设计

3.1硬件使用说明

AT89C51是一种低功耗、高性能的8位单片微型计算机。AT89C51提供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,40个I/O口线,3个16位定时/计数器,一个6向量两极中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

AT89C51采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪存组合在单个芯片中,ATML的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

3.2 AT89C51主要性能参数

1、与MCS-51指令系统完全兼容

2、4K字节可重擦写FLASH闪速存储器

3、1000次擦写周期

4、全静态操作:0Hz—24MHz

5、三级加密程序存储器

6、128*8字节内部RAM

7、32个可编程I/O口线

8、22上16位定时/计数器

9、6个中断源

10、可编程串行URAR通道

3.3 AT89C51引脚配置图

AT89C51芯片的引脚配置如图3.3.1所示

https://upload.fanwen118.com/wk-img/img100/2619525_1.jpg

图3.3.1 AT89C51框图

管脚说明:

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

3.4 USB接口的通讯原理

1.USB设备的接入

USB接口中的+5V电源不但可以为外接设置提供小电流供应,并且还起着检测功能。当USB设置插入USB接口后,主机的+5V电源就会通过USB边线与USB设备相通。USB外设的控制芯片会通过两只10K的电阻来检查USB设备是否接入了主机的USB端口。如果这两个引脚一个为高电平,一个为低电平时就表示USB外设已经正常确连入USB接口,这时外设的控制芯片开始工作,并通过DATA+,DATA-向外送出数据。这时主机接收数据后,就会提示发现新硬件,并开始安装新硬件驱动。

2.USB设备的识别

在USB外设向外送出数据时,其中就包括设备自身的设备名及型号等相关参数,主机就是根据这些信息在显示器上显示出所发现的新硬件的名称型号的。

3.5 RS-232接口引脚信号定义

RS-232C接口引脚信号定义如下表3-5-1所示:

表3-5-1 RS-232C接口引脚信号定义

https://upload.fanwen118.com/wk-img/img100/2619525_2.jpg

3.6硬件电路设计

可控流水灯整体电路原理图设计如图3.6.1所示:

https://upload.fanwen118.com/wk-img/img100/2619525_3.jpg

图3.6.1 可控流水灯硬件电路图

可控流水灯所使用到的元器件列表如表3-6-2所示:

表3-6-2 元器件列表

3.7软件设计流程

可控流水灯的软件流程图如图3.7所示:

单片机实习报告

图3.7软件设计流程图

3.8源程序代码

CLR P1.0

MOV P0,0EBH

MOV R1,#0FFH ;R1表示流水方式,初值为-1

start: JB P1.4,$ ;判断按钮S1是否按下

CJNE R1,#5,loop

MOV R1,#0FFH

loop: INC R1

MOV A,R1

RL A ;A乘2

MOV DPTR,#brtab

JMP @A+DPTR

brtab:

AJMP loop1

AJMP loop2

AJMP loop3

AJMP loop4

AJMP loop5

loop1:

MOV P0,28H

MOV DPTR,#tab1

LJMP show

loop2:

MOV P0,0B3H

MOV DPTR,#tab2

LJMP show

loop3:

MOV P0,0BAH

MOV DPTR,#tab3

LJMP show

loop4:

MOV P0,74H

MOV DPTR,#tab4

LJMP show

loop5:

MOV P0,0DAH

MOV DPTR,#tab5

LJMP show

;流水方式

tab1:

DB 00000000B

DB 00000001B

DB 00000010B

DB 00000100B

DB 00001000B

DB 00010000B

DB 00100000B

DB 01000000B

DB 10000000B

DB 00000000B

DB 00000001B

DB 00000010B

DB 00000100B

DB 00001000B

DB 00010000B

DB 00100000B

DB 01000000B

DB 10000000B

DB 00000000B

DB 00000001B

DB 00000010B

DB 00000100B

DB 00001000B

DB 00010000B

DB 00100000B

DB 01000000B

DB 10000000B

DB 11111111B

tab2:

DB 11111111B

DB 11111110B

DB 11111100B

DB 11111000B

DB 11110000B

DB 11100000B

DB 11000000B

DB 10000000B

DB 00000000B

DB 11111111B

DB 11111110B

DB 11111100B

DB 11111000B

DB 11110000B

DB 11100000B

DB 11000000B

DB 10000000B

DB 00000000B

DB 11111111B

DB 11111110B

DB 11111100B

DB 11111000B

DB 11110000B

DB 11100000B

DB 11000000B

DB 10000000B

DB 00000000B

DB 11111111B

tab3:

DB 11111111B

DB 01010101B

DB 10101010B

DB 01010101B

DB 10101010B

DB 01010101B

DB 10101010B

DB 11111111B

tab4:

DB 11100111B

DB 11011011B

DB 10111101B

DB 01111110B

DB 11100111B

DB 11011011B

DB 10111101B

DB 01111110B

DB 11100111B

DB 11011011B

DB 10111101B

DB 01111110B

DB 11111111B

tab5:

DB 11111111B

DB 11111110B

DB 11111101B

DB 11111011B

DB 11110111B

DB 11101111B

DB 11011111B

DB 10111111B

DB 01111111B

DB 10111111B

DB 11011111B

DB 11101111B

DB 11110111B

DB 11111011B

DB 11111101B

DB 11111110B

DB 11111101B

DB 11111011B

DB 11110111B

DB 11101111B

DB 11011111B

DB 10111111B

DB 01111111B

DB 10111111B

DB 11011111B

DB 11101111B

DB 11110111B

DB 11111011B

DB 11111101B

DB 11111110B

DB 11111111B

show: CLR A

MOVC A,@A+DPTR

MOV P2,A

ACALL delay

CJNE A,#11111111B,show

LJMP start

;延时程序

delay:

MOV R4,#100

d1: MOV R5,#255

d2: MOV R6,#255

DJNZ R6,$

DJNZ R5,d2

DJNZ R4,d1

RET

END

3.9调试与结论

在Keil 750 AHK环境下调试程序,编译程序代码。启动软件,建立新项目,将准备好的程序写入,然后在该软件中进行调试,直至调试反映出软件设计语法没有错误,并且可以执行程序。然后通过串口把调试好的程序写入芯片中。一开始由于一些赋值问题,程序虽然没有错误并且可以写入芯片中,但是灯亮的顺序并不是预期的那样,灯亮没有一定的规律性。通过让程序的延时长一点来观察灯是否是按预期的效果闪亮的。通过不断的调试,改变程序中的赋值问题,最终可以调试出预期的效果。

结 论

一星期的单片机实习结束了,以前虽然有过实习的经验,但单片机实习是一个非常综合的实习。不仅要自己根据课题设计电路图,还需要自己动手焊接所有要用到的元器件,焊接的过程是要非常细心和谨慎的,稍微一不心就会把电路板损坏。当硬件焊接好后,还需要根据电路图来编写程序实现课题所要求的功能。程序编写好后,还需要不断地调试,达到要求。所以这次的单片机实习是一个硬件与软件结合的实习。是培养和锻炼我们综合能力的一个非常好的机会。

通过本次实习,让学生基本了解和掌握简单的单片机电路设计的全过程,不断提高分析和解决实际问题的能力,为毕业设计打下良好的基础。

由于本学期已学习过了单片机基础,通过这次的单片机实习,使我进一步熟悉了单片的操作技术,加深了对单片机的理论知识的理解和应用水平,我加深了课堂上学的理论知识,也学到了许多书本以外的知识,同时更丰富了自己的经验。提高了动手能力、分析问题和解决问题的能力。

通过本次实习,我觉得保持一个认真、细心、谨慎的态度是非常重要的,不管在哪个环节出现一点问题,可能导致无法成功完成本次实习的要求。同时,团队合作的精神是非常重要的。团结的力量是伟大的。

通过本次实验使我认识到了课程的重要性,理论知识是非常重要的,如果没有一定的理论基础,实习是无法完成的。通过本次实习也让我发现了自己还存在很多的不足之处,在以后的学习生活中得更加认真、踏实的学习知识。要理论联系实际。通过本次实习让我们对单片机系统的应用有了更加深刻的理解和认识。

致 谢

首先感谢淮阴工学院计算机工程学院为我们提供的实践机会使我能把理论联系实际,真正做到活学活用。感谢实验室人员提供的实验环境,感谢各个指导老师的耐心指导,当我们不知道怎么做课题时,指导老师耐心地把所有的课题给我们分析了一遍,告诉我们要从哪几方面入手去找资料,去完成这个课题的设计。当我们在焊接时,不知道哪个元器件焊在电路板的什么地方时,老师耐心地给我们讲解,讲解元器件的功能和作用。在这里对各个指导老师表示最诚挚的感谢。

在本次课程设计中,还要感谢同学们的帮助,有些在细节上没有注意到的问题给予了指点,加深了对这个课题的理解和印象。在本次课程设计中由于得到了老师和同学的热心帮助才能及时的完成。这让我明白了团结的力量是伟大。同时还要感谢我们这组的组长。在调试程序时非常的耐心去调试,去实现所需求的功能。还要感谢图书馆中提供的书籍和参考资料,使有些问题和疑难能够顺利的得到解决。在为数一星期的时间里,日子尽管过得很是忙碌,但是从中收获了很多很多宝贵的知识和经验。回顾这过去的一周,我收获了很多,也成长了很多,懂得如何去学习以前未曾学过的新思维新方法,懂得了如何去多方位地查找资料,懂得了如何同老师和同学交流和协作……相信这次课程设计的体验将成为今后我更多更广学习中的奠基石。

再次深深感谢所有支持、鼓励和帮助过我的老师和朋友们。

参 考 文 献

1 李广弟,朱月秀,冷祖祁.单片机基础. 北京:航空航天大学出版,2007

2 赵继文.传感器与应用电路设计.北京:科学出版社,2002

3 徐煜明,韩雁.单片机原理及接口技术[M].北京:电子工业出版社,2005.1

4 张鑫.单片机原理机及应用.北京:电子工业出版社,2008(5)

5 何立民.单片机应用技术选编.北京:航空航天大学出版,1996

6 万光毅,严义,邢春香.单片机实验与实践教程[M].北京:北京航空航天大学出版社,2006.4

相关推荐