您的当前位置:首页正文

基于AT89C51单片机的电子音乐盒设计

2021-02-06 来源:爱go旅游网
黄河科技学院课程设计

第1页

黄河科技学院课程设计任务书

工学院 机械 系机械设计制造及其自动化专业 11 级 机电三 班 学号 11 姓名 指导教师 朱煜钰

题目: 基于AT89C51单片机的电子音乐盒设计

课程: 单片机应用技术课程设计 课程设计时间 2014年 10月27 日 至2014年11 月 10 日 共 2 周 课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页) 1.设计要求

利用AT89C51单片机作为微控制器,用16盏以上的LED小灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭);可以用输入按钮在几种灯光效果间切换;可以通过按钮暂停彩灯效果,使小灯全亮,再次按下相同按钮后继续之前的效果。

创新设计:

2. 设计任务与要求 2.1系统硬件电路设计

根据该系统设计的功能要求选择所用元器件,设计硬件电路。要求用Proteus绘制整个系统电路原理图。 2.2软件设计

根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单

黄河科技学院课程设计

第2页

要求逐条加以注释。 2.3 Proteus仿真

用Proteus对系统软硬件进行仿真调试并通过。 2.4 编写设计说明书

内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于5000字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要(用visio2003画图软件)绘制整个系统及各部分的软件流程图,列出程序清单,逐条加以注释,并注明各程序功能块的功能。 3.工作计划

序号 1 3 4 4.主要参考资料

单片机课程设计指导书 皮大能 北京理工大学出版社 2012.7 8051单片机实践与应用 吴金戎 清华大学出版社 2003.8 单片机技术基础教程与实践 夏路易 电子工业出版社 2008.1 单片机原理及应用 张毅刚 高等教育出版社 2012.11 基于Proteus的单片机系统设计与仿真实例 蒋辉平 机械工业出版社 2007.7 …

指导老师签字:

设计内容 布置任务及调研 制作与调试 撰写设计报告书 合 计 所用时间 4天 8天 2天 14天 黄河科技学院课程设计

第3页

日 期:

摘要

为了实现单片机控制音乐播放,在本次课程设计中尝试基于单片机AT89C51音乐盒的设计对这一思路进行验证。本设计采用了蜂鸣器发声来实现歌曲的播放,能够保持基本的音调不变,流畅播放歌曲。

主要设计模块包括数码管显示部分,功能键盘部分,蜂鸣器发声部分,彩灯部分。数码管采用共阳极数码管,通过单片机P1接口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过P3接口控制,实现歌曲播放顺序的调换和暂停功能;蜂鸣器由单片机的P2接口控制,实现歌曲播放;彩灯使用普通二极管,能实现单色常亮和闪烁的效果。

主要工作过程是通过功能键实现上、下曲目的播放及暂停功能,同时有数码管显示当前播放曲目的序号,并会有不同的彩灯闪烁效果。本次设计要使用单片机及KeilC51编程软件编程和Proteus单片机仿真软件,电工学等方面的有关知识。用KeilC51编程软件编程,用PROTEUS单片机仿真软件仿真。最后制作实物,将程序下载到单片机中,利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。

关键字:AT89C51单片机,音乐盒,方波,音调

黄河科技学院课程设计

第4页

Abstract

In order to achieve the single chip microcomputer control music playback, try in the curriculum design based on single chip microcomputer AT89C51 music box design on this train of thought for validation.This design USES the buzzer sound to realize the songs played, can maintain the basic tone is changeless, smooth play songs.

Main design module includes digital tube display, keyboard function part, buzzer sound, the lights.Digital tube using a total of anode digital tube, controlled by single chip microcomputer P1 interface, realize song number display;Through P3 interface, keyboard switch with buttons, control, realize the order of the songs and pause switch function;Buzzer is controlled by a single-chip microcomputer P2 interface, realize the songs;Lights use normal diode, can realize monochrome normally on and flashing effect.

Main working process is through the function keys achieve the function of upper and lower the music play and pause, at the same time have digital tube display the current track number, and have different lights flashing effect.The design to use single chip microcomputer and KeilC51 and Proteus single-chip microcomputer simulation software, programming software

黄河科技学院课程设计

第5页

programming on the knowledge of electrotechnics, etc.Use KeilC51 programming software programming, use PROTEUS single-chip microcomputer simulation software simulation.Finally make physical, download the program to MCU, using I/O mouth produce certain frequency square wave, drive buzzer, a different tone, so as to play music.

Keywords:AT89C51 Microcontroller,musical box,square wave,tone

黄河科技学院课程设计

第6页

一.设计方案分析

1.1设计功能要求

1.利用I/O口处产生一定频率的方波,驱动蜂鸣器,产生不同的音调从而演奏乐曲,达到预期目标。

2.采用七段数码管显示当前播放歌曲的序号数。 3.通过功能键实现上、下及暂停曲目播放的功能。 1.2总体设计原理

通过单片机的定时器产生一定长度的方波,方波脉冲驱动蜂鸣器发声。要产生音频脉冲,只需算出某一音频的周期(1/音频),然后取半周期的时间定时。利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲。如中音D0,频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时1912/2=956,在每计数956次时将I/O口反相,就可得到中音D0(523HZ)。

当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T1,在LED显示歌曲号,也可使彩灯长亮和闪烁。数码管采用共阳极数码管,通过单片机P1口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过单片机P3口控制,实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器由单片机的P2口控制,实现歌曲播放;彩灯是由普通发光二极管代替,通过键盘能实现单色长亮和闪烁效果。

通过功能键可以实现播放上一曲、下一曲、暂停,同时可以通过数码管显示当前播放的曲目序号,蜂鸣器播放出音乐。

黄河科技学院课程设计

第7页

当播放出最后一曲时伴有彩灯闪烁。 1.3总体设计框图

单片机接5V电源供电,晶振电路产生单片机所需的时钟周期,通过功能键实现外部中断,控制音乐盒的上一曲、下一曲和暂停功能的实现,再由I/O接口输出控制蜂鸣器发声,LED显示,彩灯闪烁或暂停。另外,复位电路的功能在于使音乐盒的工作恢复到初始状态,在程序出错时,重新启动单片机工作。

晶振部分 复位电路

图1.1整体设计框图

通过编程软件设定好程序后,由单片机AT89C51的定时器每秒钟通过P1.0-P1.7接口控制LED数码显示,复位信号由按钮控制,每按下一次系统恢复一次原设定状态。电源、晶振部分、复位电路、单片机、功能键、LED及蜂鸣器部分将在后面的内容中做详尽说明,在此不再赘述。

功能键 电源 AT89S51 蜂鸣器 LED显示

黄河科技学院课程设计

第8页

二.系统硬件设计

2.1电源电路设计

采用经市电变压,稳压的稳压电路如下图所示

FU11A78051VIGNDVO3+IN40072R1in47UFoutC11000nF500_ 单片机采用的是5V(+_0.2V)的电源,对稳压电路的要求较高,因此可以用LM7805来实现此功能。首先用交流变压器将220V的交流电变为大于5V的交流电,例如7.5V或10.5V,然后使用桥式电路进行整流,电容进行整流滤波,将交流电处理为直流。然后使用7805进行5V恒压输出,供给单片机电路使用。

2.2单片机最小系统

单片机的最小系统以AT89C51为核心,外加时钟电路和复位电路,电路结构简单,抗干扰能力强,成本相对较低,比较符合本次课题的要求,89C51系列单片机是在MCS-51的基础上发展起来的,是当前8位单片机的典型代表,采用CMOS工艺,即互补金属氧化物的CMOS工艺,COOS和MOS相结合的技术,具有MOS的高速度和高密度的特点,还具有CMOS低功耗的特点。

单片机的工作环境需要有一个时间基准来统一控制各部

黄河科技学院课程设计

第9页

分的工作状态此电路为时钟电路,时钟电路分为外部时钟电路和内部时钟电路,如下图所示,从图示可以看出采用外部电路比较复杂,因此本次课题的时钟电路选择内部时钟电路,时钟电路在单片机外部采用XTAL1和XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器。本系统采用的是6MHz的晶振,一个机器周期为22us,C1,C2分别为22pF。

复位电路的基本功能是:系统的上电时提供复位信号,待系统电源稳定后撤销复位指令。为可靠起见,在电源稳定后需要经历一段时间后撤消复位信号,防止电源开关或电源插头插合过程中引起的抖动而影响复位。

复位电路分为上电自动复位和按键复位,电路图如下图所示,。其中RST是复位信号的输入端,复位信号是高电平段。本次采用手动复位设计,复位通过电容C3,C4和电阻R1,R2来实现,按键复位通过复位键来实现。

黄河科技学院课程设计

第10页

单片机的最小系统电路设计如下图设计所示,以AT89C51为核心进行设计。

C122pFU1X119XTAL1CRYSTAL18XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617C222pF+5V92RSTC422uF1C322uFP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7293031PSENALEEAR11kR21k12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 单片机最小系统

2.3数码管显示部分

歌曲序号显示部分采用数码管来实现,LED显示器件是通过发光二极管来显示字段的器件。在单片机的控制系统中最常用的是7段LED数码管,它的显示块中有8个发光二极管,7个二极管组成字符“8”,一个二极管组成小数点。LED数码管的管脚配置如图a示。

LED显示块如图b所示。它们经电阻和单片机的控制端连接在一起,只要改变控制端口的电平就能控制LED的点亮或熄

黄河科技学院课程设计

第11页

灭。LED共有阳极和阴极两类,如图c所示共阴极LED数码管的发光二极管的阴极共地。当某个发光二极管的阳极电压为高电平时,二极管发光;而共阳极LED数码管是发光二极管的阳极共接,当某个二极管的阴极电压为低电平时,二极管发光。

a b (1)

R×8R×8+5Vabcdefgdpabcdefgdp

(a) 共 阴 极(b) 共 阳 极 b(2) c

本次课题所选的二极管为共阳极二极管,数码管每段的电流是10A。所以公共段接高电平,Proteus图如下所示

数码管引脚图

黄河科技学院课程设计

第12页

2.4键盘部分

键盘是由一组按压式或触摸式开关构成的阵列,是一种常用的输入设备。键盘可分为编码式键盘和非编码式键盘两种。

1.编码键盘通过硬件电路产生被按按键的键码,这种键盘所需程序简单,但硬件电路复杂、价格昂贵通常不被单片机系统采用。

2.非编码键盘常用一些按键排列成行列矩阵,其硬件逻辑与按键编码不存在严格的对应关系,而要由所用的程序来决定。非编码键盘的硬件接口简单,但是要占用较多的CPU时间,通常采用可编程键盘管理芯片来克服这个缺点。本设计使用两种按键,一种是按键式非编码键盘和轻触式非编码开关。 2.4.1按键开关

在接线时由于有六个引脚,连接时需要用万用表进行测量,然后接通两个引脚。

2.4.2轻触开关

一种电子开关,使用时轻轻点按开关按钮就可使开关接通,当松开手时开关既断开,其内部结构是靠金属弹片受力弹动来实现通断的。但微动开关也有它不足的地方,频繁的按动会使金属弹片疲劳失去弹性而失效,连接时接通对角线即可。

2.5蜂鸣器部分

一般所指的蜂鸣器是以压电陶瓷为主要元件的。压电陶瓷是一类有将压力与电流相互转换能力的特殊陶瓷。这种能力缘于其特殊的晶体结构。当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就会在内部产生一个电流,并且电流的变化与压力的变化密切相关。反之亦然。所以利用这一特性,在压电陶瓷上通过一定频率的电流,就会引起压电陶瓷微小形变,这一形变带动空气发生振动,如果频率适当,就可以被人耳所听见,也就是产生了蜂鸣声。

黄河科技学院课程设计

第13页

2.5.1蜂鸣器简介

1.蜂鸣器的作用:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

2.蜂鸣器的分类:蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

3.蜂鸣器的电路图形符号:蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。实物如下图所示,

蜂鸣器实物

2.5.2蜂鸣器原理

1.压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱和外壳等部分组成。有的压电式蜂鸣器外部还装有发光二极管。

黄河科技学院课程设计

第14页

多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5-15V直流工作电压),多谐振荡器起振,输出1.5-2.5kHz的音频信号,阻抗匹配器推动压电蜂鸣片发声。

压电蜂鸣器片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢粘连在一起。

2.0电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

三.系统软件设计

3.1软件系统介绍

一个系统的正常运行不仅需要硬件系统的支持,而且需要软件系统的支持。如果把硬件比作躯体,那软件就是灵魂,硬件系统和软件系统相互间密切的配合才构建了能够“思考”和“判断”的整体系统。借助软件的可编程性,可以精简硬件系统的组成;凭借软件的灵活性,可以不用对硬件系统进行修改而实现系统功能的修改。软件系统与硬件系统是密切相联的,软件系统建立在硬件系统之上,离开了硬件系统,软件将无法实现任何功能。软件的设计有一定的针对性,对于不同的硬件系统,需要编写不同的软件。与硬件系统一样,软件系统的好坏,直接影响到系统的工作效率和可靠性。

黄河科技学院课程设计

第15页

3.2编程语言的选择

基于单片机的电子音乐盒的设计本次课题采用汇编语言编程,它是一种面对机器的语言,可以直接控制硬件的语言。因为本次还要进行硬件连接,所以可以方便控制各个硬件接口如I/O接口,并且目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。具有保持了机器语言的优点,具有直接和简捷的特点。

基于这些特点,所以70%以上的系统软件使用汇编语言编程。很多很多高级绘图程序、视频游戏程序是用汇编语言编写的。

因此汇编语言是我们理解整个计算机系统的最佳起点和最有效途径,通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。 单片机烧录的代码,用来编程单片机。 3.3编程软件的选择

单片机的开发除了必须的硬件设备外还需要一定的软件支持,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年

黄河科技学院课程设计

第16页

来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

3.4系统程序设计 3.4.1主程序流程图

开始定义音频输出端口,歌曲总数以及每首歌曲的入口地址;然后对定时器初始化,确定工作方式,赋初值,开放中断,启动定时器工作;对音频输出端口初始化;设置音节起始位置和节拍间距,把音节和节拍的入口地址信息存放在固定存储单元中;将取出的音符数+节拍数保存在存储单元中,查询音乐的节拍表;当六首歌曲的节拍表查询完,音乐播放完毕,程序结束。具体的程序框图如下图所示:

黄河科技学院课程设计

第17页

系统流程图 3.4.2主程序

OUT BIT P2.0 ;定义音频输出端口,p2.0 N EQU 6 ;歌曲总数 OUT_NUM EQU P1 ;数码管显视当前所放歌曲曲数 ORG 0000H AJMP MAIN ORG 0003H

AJMP LAST_SONG ;外部中断0用于接上一曲歌按键 ORG 000BH

AJMP F_T0 ;定时器0用于定时,作音符发生器 ORG 0013H

q4: AJMP NEXT_SONG ;外部中断1接下一曲歌按键 ORG 001BH

黄河科技学院课程设计

第18页

AJMP START_PAUSE ;定时器1用计数,这里用作中断,

接开始/暂停键,初值为0ffH,方式2

ORG 0030H MAIN: MOV SP,#60H

MOV DPTR,#TABLE ;DPRT指向每首歌曲的入口地址的地址。

MOV R0,#30H MOV R5,#00H MOV R6,#1 息的歌曲数

SET_TAB: MOV A,R5 MOVC A,@A+DPTR MOV @R0,A INC R5 INC R0 MOV A,R5

MOVC A,@A+DPTR MOV @R0,A INC R5 INC R0 MOV A,R5

MOVC A,@A+DPTR MOV @R0,A INC R0 INC R5 MOV A,R5

MOVC A,@A+DPTR

;R0中存入数据30H,这里在以

30H开始的单元存放每首歌曲的入口地址,其中30H,31H存放

;歌曲的节拍入口地址,

32H,33H存放歌曲音符入口地址,每首歌占用四个存储存单元。

;R5中存放表TABLE中正在

执行操作的序号

;R6存放正在设置入口信 ;设置每首歌曲的入口信息,存

放在以30H开始的存储单元中。

黄河科技学院课程设计

第19页

MOV @R0,A INC R0 INC R5

INC R6 ;设置完一首歌曲后,歌曲数加一

CJNE R6,#N+1,SET_TAB ;是否设置完,没有便继续,否则进行下面的操作

对中断,计数器的相关参数进行设置 MOV TMOD, #61H ;计数器0工作方式1,计数器1工作方式2 MOV TH1,#0FFH ;给计数器1置初值0FFH,又由于是工作方式2, MOV TL1,#0FFH ;计数器计数为1,相当于一外部中断。

SETB ET1 ;允许计数器1中断 SETB ET0 ;允许计数器具0中断CLR PT0 ;计数器0为低优先级 SETB PT1 ;计数器1为高优先级 SETB IT0 ;外部中断0为跳沿触发 SETB PX0 ;高优先级

SETB IT1 ;外部中断1为跳沿触发SETB PX1 ;高优先级

SETB EX1 ;允许外部中断1中断 SETB EX0 ;允许外部中断定0中断 SETB EA ;开中断总开关

SETB TR1 ;定时器1开始工作,作中断用 SETB OUT ;音频输出端口初始化

设置结束

CLR F0 ;设置F0=0,用来作暂停/播放的标置位用 MOV 22H,#01H ;22H单元中存放正在播放的歌曲编号

MOV DPTR,#OUT_TAB ;将正在播放的歌曲编号送数码管显视 MOV A,22H

MOVC A,@A+DPTR MOV OUT_NUM,A MOV R7,#00H ;R7中存放歌曲总信息的入口地址 START0:MOV R4,#00H ;R4存放当前正在播放歌曲的第几个节拍数

MOV R0,#30H ;30H开始的单元中存放歌曲的入口信息

黄河科技学院课程设计

第20页

MOV A,R7 ;将歌曲的节拍表的入口地址送到DPTR ADD A,R0 MOV R0,A

MOV DPH,@R0 INC R0

MOV DPL,@R0 INC R0 MOV A,R4 INC R4

MOVC A,@A+DPTR ;取出第一节拍数,其实第一个节拍不是歌曲的第一个节拍,而是表示几分音符 MOV 26H,A 将取出的音符数+节拍数保存在职26H单

NEXT: MOV R0,#30H ;开始取出歌曲的第一个数据

MOV A,R7 ADD A,R0 MOV R0,A

MOV DPH,@R0 INC R0

MOV DPL,@R0 INC R0 MOV A,R4 INC R4

MOVC A,@A+DPTR ;放在A中 JZ END0 ;若为0,则表示为休止符,不唱,本次音符不唱, MOV R1,A ;不为0,取出节拍数 ANL A,#0FH MOV R2,A MOV A,R1 SWAP A ANL A,#0FH

JNZ SING ;音符不为0,唱

CLR TR0 ;为0,不唱,关频率发生器 SJMP SING1

SING: DEC A ;开始唱,进行相应的数据处理

MOV R3,A

黄河科技学院课程设计

第21页

RL A

MOV DPH,@R0 INC R0

MOV DPL,@R0 INC R0

MOVC A,@A+DPTR MOV 21H,A MOV TH0,A MOV A,R3 RL A INC A

MOVC A,@A+DPTR MOV 20H,A MOV TL0,A SETB TR0 ;开唱

SING1:LCALL DELAY ;每个音符唱多久

JB F0,FOR ;是否暂停, AJMP NEXT ;没有暂停,继续 FOR: CLR TR0 ;暂停,不唱

JB F0,$ ;等待播放 AJMP NEXT ;开始播放 END0: CLR TR0 ;不唱

MOV A,22H ;唱完处理 CJNE A,#N,WW ;是不是全部歌曲都唱完 MOV 22H,#01H ;全部唱完,则从第一首开始再唱 MOV R7,#00H

MOV OUT_NUM,#11111001B ;数码管显视第一首歌曲编号 AJMP WW

WW: MOV A,R7 ;没有全部唱完,唱下一首,歌曲的入口信息调整

ADD A,#4 MOV R7,A INC 22H CLR EA PUSH DPH PUSH DPL MOV A,22H

黄河科技学院课程设计

第22页

MOV DPTR,#OUT_TAB MOVC A,@A+DPTR MOV OUT_NUM,A ;数码管显视相应的歌曲编号

3.4.3定时器定时设计

51单片机内部有两个16位的可编程的定时/计时器,称为定时器0(T0)和定时器1(T1),它们都具有定时功能和事件计数功能,可用于定时控制、延时、对外部事件检测和计数等场合。

定时期的核心部位是加1计数器,通过设置TMOD可使定时器工作在定时或者计数方式,即将定时器用于定时或者计数。实际上这两种工作方式没有本质的区别,都是对脉冲信号计数,只是计数的脉冲来源不同而已。如果计数脉冲是频率稳定的系统时钟的分频信号,则称为定时方式,如果计数脉冲是外部脉冲信号,称为计数方式。

无论在定时模式还是技术模式下,定时期在对内部时钟或外部脉冲计数时,都不占用CPU的时间,而按照设定的方式鸽子独自工作。只有在定时器定时时间或计数值到,定时器溢出时才可能中断CPU当前工作,请求CPU处理。

如晶振12MHZ,用定时器T0定时50ms,从P2.0引脚输出周期100ms的方波;定时的流程图如下图示:

黄河科技学院课程设计

第23页

定时50ms流程图

主程序如下:

ORG 0000H ;主程序入口地址 LJMP MAIN

ORG 000BH ;T0中断程序入口地址 LJMP INT_T0 ORG 0030H

MAIN: MOV SP,#60H ;设堆栈

MOV TMOD,#01H ;设T0工作方式 MOV TH0,#3CH ;定时器T0赋初值 MOV TL0,#0B0H

CLR P2.0 ;P2.0初态 SETB ET0 ;开放T0中断 SETB EA ;开放CPU中断 SETB TR0 ;启动T0工作 LOOP:SJMP LOOP ;循环等中断 中断服务程序:

INT_T0:MOV TH0,#3CH ;T0重装初值 MOV TL0,#0B0H

黄河科技学院课程设计

第24页

CPL P2.0 ;P2.0求反,输出方波 RETI ;中断返回 END

四.系统调试结果整理与分析

4.1系统仿真过程 4.1.1原理图的绘制

Proteus电路设计是在PROTEUS ISIS环境下绘制的,该编辑环境具有良好的人机交互环境,功能强大且易入手。根据设计电路绘制完后的电路图如下图示:

ABCDEFGHJK0VCC011C1VCCU1X112MHz19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617GND222pC222p218XTAL293RSTR8470RQ12N3906R11kR12470R293031PSENALEEA3LS1Q2SPEAKER2N3906R24R31kC322u0.2k4R451kR101kR61kR51k12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51R90.5k5D1LED-BIGYR761k6GND778FILE NAME:DESIGN TITLE:85015.DSNH:\\肖新毕业设计\\5015.DSNH:\\肖新毕业设计\\5015.DSNREV:DATE:2009-5-6PAGE:9PATH:BY:1ofTIME:119:15:209ABCDEFGHJK Proteus图

五.设计调试的心得体会

黄河科技学院课程设计

第25页

通过仿真调试过程的进行能够帮助我们更加真实的了解编写的程序与预期是否能够匹配,并且检查程序中的一些问题以便于及时的修改,避免错误的累积。在本次的课题电路仿真实训中可以看出程序与电路的契合性是很不错的,满足课题的初始要求,证明设计是成功的。

在本次课程设计过程中遇到了很多问题和困难,在老师和同学们的帮助下才使我顺利地克服了这些困难,在此对老师和同学们表达我深深的感谢。

五.参考文献

单片机课程设计指导书 皮大能 北京理工大学出版社 2012.7 8051单片机实践与应用 吴金戎 清华大学出版社 2003.8 单片机技术基础教程与实践 夏路易 电子工业出版社 2008.1 单片机原理及应用 张毅刚 高等教育出版社 2012.11 基于Proteus的单片机系统设计与仿真实例 蒋辉平 机械工业出版社 2007.7

黄河科技学院课程设计

第26页

黄河科技学院课程设计

第27页

因篇幅问题不能全部显示,请点此查看更多更全内容