惠州学院单片机课程设计报告 - 图文 下载本文

《单片机课程设计报告》

课题名称: 单片机学习板的设计与制作 专 业: 电气信息工程 班 级: 12电气信息(1)班 学生姓名: 黄志豪 学 号: 1207080618115 同组人员: 林穗极(22)、耿志超(06) 分组序号: 1 指导教师 : 谢珩

2014 年 12 月

1

摘要

单片机被广泛地应用在工业自动化控制、智能仪器仪表、数据采集、通讯以及家用电器等领域。单片机以其与通用微机完全不同的发展模式,不断满足工业测控、恶劣环境下可靠运行的要求。、单片机已成为现代工业领域中不可缺少的重要角色。 单片机技术的发展速度十分迅速,速度更快、功能更强的16位、32位单片机以及陆续问世,但8位机,特别是新一代高档8位机具有优异的性能,已能满足大部分单片机应用领域的需要,另外,它还具有可靠性高、外围芯片配套、系统结构简单、应用软件丰富、技术成熟、开发应用方便等优点,在单片机市场中依旧据有一定地位。

通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用。

关键词:51单片机 C51程序 跑马灯 数码管 单片机音乐

1

目录

摘要 ........................................................................................................................................................ 1 第一节 引言 ........................................................................................................................................... 3

1.1本设计任务和主要内容 ........................................................................................................... 3

1.1.1目标 ................................................................................................................................ 3 1.1.2系统基本构成 ................................................................................................................ 3 1.1.3系统制作 ........................................................................................................................ 3 1.2基于51单片机系统学习板概述 ............................................................................................. 3

1.2.1A89S51单片机开发板硬件配置情况 ........................................................................... 4

第二节 系统主要硬件电路设计 ........................................................................................................... 5

2.1 AT89C52单片机简介 .............................................................................................................. 5

2.1.1 单片机AT89C52模块 ................................................................................................. 5 2.1.2电源模块 ........................................................................................................................ 6 2.1.3振荡电路模块 ................................................................................................................ 7 2.1.4复位电路模块 ................................................................................................................ 7 2.2四位一体共阳LED数显 ...................................................................................................... 8 2.3 LED 灯电路 .............................................................................................................................. 9 第三节 实验系统软件设计 ............................................................................................................... 10

3.1八路LED流水灯实验 ........................................................................................................... 10

3.1.1设计内容: .................................................................................................................. 10 3.1.2.proteus仿真下的8位流水灯 ..................................................................................... 10 3.1.3上机程序: .................................................................................................................. 11 3.1.4流程图 .......................................................................................................................... 11 3.1.5调试结果及结论: ...................................................................................................... 12 3.2二位数码管循环显示00~99的实验 ................................................................................... 12

3.2.1设计内容: .................................................................................................................. 12 3.2.2电路图: ...................................................................................................................... 13 3.2.3上机程序: .................................................................................................................. 13 3.2.4流程图 .......................................................................................................................... 13 3.2.5调试结果及结论: ...................................................................................................... 16

第四节课程设计总结 ........................................................................................................................... 17

4.1实验结果 ................................................................................................................................. 17 4 .1.1花样流水灯 ....................................................................................................................... 17

4.1.2.简易电子琴 ..................................................................................................................... 17 4.1.3数码管动态扫描数显 ........................................................................................................ 17 4.2制作感受 ................................................................................................................................. 17 参考文献............................................................................................................................................... 18 附录 ...................................................................................................................................................... 19 1. 制作元件 .................................................................................................................................. 19

2.学习板正面和反面实物照片 .................................................................................................... 20

2

第一节 引言

1.1本设计任务和主要内容 1.1.1目标

设计制作一个简化的单片机学习板,并在该学习板上完成基本的单片机实验。该设计以《单片机课程同步实验指导》中的通用实验板的为制作蓝本,并加以适当简化,但仍保留模块化的设计方法。

1.1.2系统基本构成

1、电源模块(P12):以USB接口供电,并安装电源开关和电源指示等。 2、CPU模块(P22):单片机+时钟及复位电路,构成单片机最小系统。 3、输入输出模块(P86):并行I/O连接拨动开关、发光二极管、数码管等输入、输出设备。

1.1.3系统制作

在9*15cm万用板上,通过合理布局,依次搭建上述3个模块,最终构成完整的单片机学习板,实现基本的单片机实验。为了与单片机课程教学过程相衔接,并突出重点环节,对单片机学习板的制作进行了必要的简化,具体体现在:(1)USB接口实现单片机供电,由通用充电器保障电源质量。(2)通用编程器(实验室提供)实现单片机的编程,替代串行通信模块。(3)并行I/O口实现单片机控制功能,实现单片机基本控制功能的实验演示。系统简化后,可靠性也得到一定程度的提高。

1.2基于51单片机系统学习板概述

本次课设所使用的单片机最小系统板包括以下器件:电源模块:可以USB供电,也可通过排针接独立电源供电。通用异步串口,P3.0、P3.1、以及电源负极(TXD、RXD、GND)。各种颜色的LED发光二极管共9个,其中8个接于P1口做LED显示,还有一个做电源灯显示。四位一体共阳数码管可以实现时钟电路及动态扫描显示。还有其他电阻系列特有的ISP在线编程,方便我们初学者的二次开发,省去大量芯片烧写时间。USB电源线供电和外接供电并存,方便学生在寝室使用.板上提供ISP、USB接口并将单片机的全部I/O引脚引出。51开发板使用ISP在线下载,直接把程序写到单片机中,使用当前最流行的KEILC51软件,用户无需再购买任何仿真器或编程器等开发工具,只要有一台计算机,就可以实践学习单片机方面的知识;同时引出的单片机的32个I/O口可全部用于扩展,用户可把自己设计的电路通过这32 个I/O口与单片机连接,方便用户开发自己的产品,最大限度的为用户节约学习成本

3

和加快学习速度。

1.2.1 A89S51单片机开发板硬件配置情况

1)AT89S51 2)MAX232 3)8个LED灯 4)8位拨动开关 5)4位8段数码管 6)12M晶振

1.2.2、AT89S51单片机实验板配套实验 1)51开发板预烧程序 2)按键中断 3)花样灯 4)流水灯 5)跑马灯 6)数码管

7)数码管时钟

4

第二节 系统主要硬件电路设计

2.1 AT89C52单片机简介

MCS-51是美国Intel公司生产的一系列单片机的总称,包括多个品种,如8031、8051、8751、8032、80C52、8752等。其中8051是最典型的产品,其他单片机都是在其基础上进行功能增减而来的,所以人们习惯于用8051来称呼MCS-51系列单片机。Intel公司将MCS-51的核心技术授权给了多家公司,这些厂家生产的单片机在功能上或多或少有些改变,以满足不同的需求,其中美国的ATMEL公司生产的AT89C51是曾经在我国非常流行的51单片机。当前AT89C51/52已经停产,其替代产品为AT89S51/52。深圳宏晶公司出品的STC89C51可以直接代替传统的AT89S51和AT89C51芯片,也可以代替菲利普、华帮等其他公司的89C51,由于时代的发展,工艺的进步,STC89C51功能更强,寿命更长(4K字节Flash存储器、128字节片内RAM、支持ISP下载编程)

2.1.1 单片机AT89C52模块

AT89C52 :8位单片机是MSC-51系列产品的升级版,有世界著名半导体公司ATMEL在购买MSC-51?设计结构后,利用自身优势技术——(掉电不丢数据)闪存生产技术对旧技术进行改进和扩展,同时使用新的半导体生产工艺,最终得到成型产品。与此同时,世界上其他的著名公司也通过基本的51内核,结合公司自身技术进行改进生产,推广一批如51F020等高性能单片机。

AT89C52片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式、看门狗和断电保护。可以在4V到5.5V宽电压范围内正常工作。不断发展的半导体工艺也让该单片机的功耗不断降低。同时,该单片机支持计算机并口下载,简单的数字芯片就可以制成下载线,仅仅几块钱的价格让该型号单片机畅销10年不衰。根据不同场合的要求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装。

5

U11234567891011121314151617181920P10P11P12P13P14P15P16P17RESETRDX/P30TXD/P31INT0/P32INT1/P33T0/P34T1/P35WR/P36RD/P37X2X1GNDZ 89C52VCCP00P01P02P03P04P05P06P07EA/VPALE/PPSENP27P26P25P24P23P22P21P20403938373635343332313029282726252423222189C52 图1: DIP-40封装89C52引脚图 2.1.2电源模块 本系统的电源模块由USB接口、电源开关、电源指示灯、滤波电路等组成。实物图如下: TitleSizeBDate:File:345Number19-Jul-2013D:\\Protel\\Example

图2:电源模块实物图

6

35465 2.1.3振荡电路模块 C13Y112MD振荡电路由一个12M的晶振和两个22pf的电容所组成,原理图如下: 22pfC1422pf 图3:震荡电路原理图 2.1.4复位电路模块 C复位电路是维持单片机最小系统运行的基本模块。复位电路通常分为两种:上电复位和手动复位。 C1VCCRSTC1610UFVCCR1RSTK1RESR910K 图4.1: 上电复位 图4.2: 手动复位 有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。AT89C52系列大片级为高电平复位,在复位引脚RST上接一电容到VCC,再接一电阻到GND,由此形成一个RCB充放电路。 37 4

图5 最小系统结构图

2.2四位一体共阳LED数显

8段数码管属于LED 发光器件的一种,分为8 段:A、B、C、D、E、F、G、DP,其中DP 是小数点位,还包括一个公共端COM 端。从电气上,8 段数码管又分为共阴和共阳两种。共阴指数码管的公共端接负极,而各段接正极;共阳则正好相反。如果有多个数码管,它们的各段输入一般都分别接在一起,公共端分开。开发板上采用的是4位一体的共阳数码管。数码管显示方法可分为静态显示和动态显示两种。静态显示就是每个数码管的8 段输入各自分开,其COM 口电平一直有效。它的优点是控制方便,显示稳定,但要占用较多的I/O口。动态显示的原理是,各个数码管的段输入相应位接在一起,共同占用8 位数据线;公共端分开,利用扫描和人视觉上的短暂停留性,依次给出各个数码管COM 端使能信号,并同时给出各数码管的数据。它的优点是占用I/O 口少,但控制较静态显示复杂。一般在数码管较多的情况下都采用动态显示。本实验板使用的是4位一体的共阳数码管,共12脚,其中8脚公用是8段显示,另4脚是对应于4个数码管。

8

图6四位一体共阳数显电路

2.3 LED 灯电路

一般发光二极管的工作电流是十几毫安至几十毫安,正向压降为1.3V-2.5V。有一些低电流的发光二极管的工作电流可以降至2MA,而亮度与正常发光二极相同,当然价格会高一些。所有发光二极管在电路中一般都要串一个电阻用来限流。发光二极管的电流不同,亮度也不同,并且寿命也会受到影响,这个电流通常就是由接入的电阻来调整。

51开发板的发光二极管串联了一个1kΩ的电阻后接在5V 的电压上。LED 灯电路接在单片机的P1口上。LED灯的阳极接电源,阴级接单片机的I/0 口,因此是低电平驱动,只要单片机在相应引脚给出低电平,LED 就会发光。

9

第三节 实验系统软件设计

3.1八路LED流水灯实验 3.1.1设计内容:

八路发光二极管轮流点亮的实验,也就是通常所说的流水灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻(本设计中用排阻代替),可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和单片机P1的I/O连接,正极与排阻并连接到电源正极一侧,如果接错那么相应的那一路可能在实验中不会点亮了。

3.1.2.proteus仿真下的8位流水灯

.

图8流水灯电路图

10

3.1.3上机程序:

ORG 0000H

START: MOV R2,#8

MOV A,#01H ; 先让第一个发光二极管点亮 LOOP: MOV P1,A ; 从P1口输出到发光二极管 LCALL DELAY

RL A ; 循环左移

DJNZ R2,LOOP ; 判断移动是否超过8 位,未超过继续循环

LJMP START ; 重做 DELAY: MOV R5, #5 ; 延时0.5秒子程序 DEL1: MOV R6, #200 DEL2: MOV R7, #126 DEL3: DJNZ R7, DEL3 DJNZ R6, DEL2 DJNZ R5, DEL1 RET END

3.1.4流程图

开始 R2=8,A=1 P1=A 延时0.2S A左移一次R2=R2-1 是 R2=0? 否 图9流程图

11

3.1.5调试结果及结论:

八路发光二极管轮流点亮汇编语言的一大优势就是能够精确控制程序的执行时间,这在编写一些对时序要求严格的外围器件驱动时由为重要!

3.2二位数码管循环显示00~99的实验 3.2.1设计内容:

8段数码管显示.两位数码管显示00--99依次循环(动态扫描方式).p0做LED显示数据输出口。P2控制数码管个位数和十位数显示.用单片机进行数码显示应具有显示器件;应用最广泛的是8段数码管。8段数码管从内部接线上分共阳和共阴两种。在电路设计时应根据情况决定采用共阳或共阴,其基本原则是:若单片机IO口直接驱动数码管个段,最好采用共阳数 码管,因为51单片机IO口输出高电平时输出的电流很小,数码管不会太亮;若数码管是通过驱动芯片与单片机相连的,就要看驱动芯片对数码管极性的要求。

12

3.2.2电路图:

3.2.3上机程序:

;; T10_1_LED.ASM

PORT EQU 0CFA0H

BUF EQU 23H ;存放计数值 SBF EQU 22H ;存放秒值 MBF EQU 21H ;存放分值 CSEG AT 0000H

LJMP START CSEG AT 401BH

LJMP CLOCK CSEG AT 4100H

START: MOV R0,#40H ;40H-45H是显示缓冲区,依次存放 MOV A,#00H ;分高位、分低位,0A,0A(横线) MOV @R0,A ;以及秒高位、秒底位 INC R0

MOV @R0,A INC R0

MOV A,#0AH

13

MOV @R0,A INC R0

MOV @R0,A INC R0

MOV A,#00H MOV @R0,A INC R0

MOV @R0,A

MOV TMOD,#10H ;定时器1初始化为方式1 MOV TH1,#38H ;置时间常数,延时0.1秒 MOV TL1,#00H

MOV BUF,#00H ;置0 MOV SBF,#00H MOV MBF,#00H

SETB ET1 SETB EA SETB TR1

DS1: MOV R0,#40H ;置显示缓冲区首址

MOV R2,#20H ;置扫描初值,点亮最左边的LED6 DS2: MOV DPTR,#PORT MOV A, #00 MOVX @DPTR, A MOV A,R2 ;向位数据口P1输出位显码 CPL A

MOV P1,A

MOV A,@R0 ;得到的段显码输出到段数据口 ACALL TABLE MOVX @DPTR,A

CALL DELAY ;延时一小段时间 CALL DELAY CALL DELAY

INC R0 ;显示缓冲字节加一 CLR C MOV A,R2

RRC A ;显码右移一位

14

MOV R2,A ;最末一位是否显示完毕?,如无则 JNZ DS2 ;继续往下显示

MOV R0,#45H

MOV A,SBF ;把秒值分别放于44H,45H中 ACALL GET

DEC R0 ;跳过负责显示\的两个字节 DEC R0

MOV A,MBF ;把分值分别放入40H,41H中

ACALL GET

SJMP DS1 ;转DS1从头显示起 TABLE: INC A ;取与数字对应的段码 MOVC A,@A+PC RET

DB 3FH,06H,5BH,4FH,66H,6DH,7DH, 07H, 7FH,6FH, 40H

GET: MOV R1,A ;把从分或秒字节中取来的值的高 ANL A,#0FH ;位屏蔽掉,并送入缓冲区 MOV @R0,A

DEC R0

MOV A,R1 ;把从分或秒字节中取来的值的低 SWAP A ;位屏蔽掉,并送入缓冲区 ANL A,#0FH MOV @R0,A

DEC R0 ;R0指针下移一位 RET

CLOCK: MOV TL1,#0AFH ;置时间常数 MOV TH1,#3CH PUSH PSW PUSH ACC

INC BUF ;计数加一

MOV A,BUF ;计到10否?没有则转到QUIT退出中断 CJNE A,#0AH,QUIT

MOV BUF,#00H ;置初值 MOV A,SBF

ADD A,#1 ;秒值加一,经十进制调整后放入 DA A ;秒字节 MOV SBF,A

CJNE A,#60H,QUIT ;计到60否?没有则转到QUIT退出中断 MOV SBF,#00H ;是,秒字节清零 MOV A,MBF

15

ADD A,#1 ;分值加一,经十进制调整后放入 DA A ;分字节 MOV MBF,A

CJNE A,#60H,QUIT ;分值为60否?不是则退出中断 MOV MBF,#00H ;是,清零 QUIT: POP ACC POP PSW

RETI ;中断返回

DELAY: MOV R3,#0FFH DEL: NOP

DJNZ R3,DEL RET

END

3.2.4流程图

3.2.5调试结果及结论:

;延时一小段时间

图10

16

8段数码管显示.两位数码管显示00--99依次循环(动态扫描方式)。因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1毫秒,再十位显示1毫秒,不断循环,这样只要扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示。

第四节课程设计总结

4.1实验结果 4 .1.1花样流水灯

程序循环输出到单片机P1口,控制LED灯从LED1向LED8依次亮,到全部亮然后LED 灯从LED1向LED8依次前进单个亮,类似跑马情形。

4.1.2.简易电子琴

向蜂鸣器发送一定频率的方波可以使蜂鸣器发出相应的音调,该实验使蜂鸣器发出类似\多来咪发梭拉西\的音调。

4.1.3数码管动态扫描数显

单片机P1端口用于数码管显示数值,P2端口部分用于选择4位数码管中的一位,从而实现一下现象:4位数码管从第一位到第四位由0到F依次循环显示

4.2制作感受

为期8周的单片机实训已经圆满结束了,通过这次实训,我对单片机的用途有了一定的了解并且熟悉了单片机各个管脚的功能。此次实训我做的电路没有取得预期的效果,辜负了老师对我的期望,自己也感觉挺失望的。在这期间,我深刻地认识到实践操作的重要性,同时理论知识必须与实践操作紧密相结合,两者缺一不可,这也是教学环节中的一个重要环节,只有坚持理论与实践相结合,才能更好的提高自己的动手操作能力,并且可以从中培养自己独立思考问题以及解决问题的能力。这次实训实现了软件与硬件的有效结合,将书本知识运用到实践中,让我受益匪浅。单片机的确很重要,我们一定要努力把它学好,以便适应社会的需要。

17

参考文献

[1]ATMEL?公司.AT89S52 8-bit Microcontroller with 8K Bytes In-System Programmable Flash datasheet,2001.5 [2] 张鑫,《单片机原理及应用》,电子工业出版社,2005 [3] 曹国清,《数学电路与逻辑设计》,中国矿业大学出版社,2004

[4]德州仪器公司.74LS139 Dual 2-Line To 4-Line Decoders/Demultiplexers,1988.3.1

[5]刘文涛. Protel 2004设计及应用基础教程与上机指导.北京.清华大学

18

附录

1.制作元件

表二、学习板制作元件

序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 名称 万用板 USB插座 单片机 40p锁紧卡座 晶振 电容 电解电容 电阻 电阻 排阻 按键开关 拨动开关(8位) 发光二极管(LED)红 发光二极管(LED)绿 发光二极管(LED)黄 数码管(四联,共阳) PNP三极管 二极管 型号 9*15cm 单扁口母头 AT89C51 40脚 12MHz 30pF 10μF/25V 10kΩ 1/8W 1kΩ 1/8W 8×1kΩ 自锁 8联排 φ3mm φ3mm φ3mm DZF-3461BS C9012 1N4148 数量 1 1 1 1 1 2 1 1 5 1 1 1 3 2 4 1 4 2 19

2.学习板正面和反面实物照片

20