河北科技师范学院。
单片机原理及应用课程设计。
简单**盒的设计。
学院名称 : 机电工程学院
专业名称: 电气工程及其自动化
学生姓名董洋。
学生学号: 021
指导教师: 刘西印
2024年01月09
目录。一、 前言 1
1.1 概述 1
1.2 设计目的 1
1.3 设计任务及内容 1
1.3.1 设计任务和要求 1
1.3.2 设计内容 1
二、 总体设计及核心器件简介 1
2.1 原理说明: 1
2.2 89c51 简介 2
2.2.1 89c51 单片机简介 2
2.2.2 89c51 各管脚主要功能简介 2
2.3 lcd 简介 2
2.3.1 lcd 特性 2
2.4 键盘扫描 3
三、 电路设计 3
3.1硬件电路设计框图 3
3.2 lcd 显示电路 4
3.3 键盘扫描控制电路 4
3.4晶振电路 5
3.5 基本功能 6
四、主程序框图及设计电路 6
五、 程序调试**现的问题及解决的办法 7
六、结论 8
参考文献 8
附录 8一、 前言
1.1 概述。
单片机,即单片微型计算机,又称微控制器,是微型计算机的一个重要分支。 单片机是集cpu、ram、rom、i/o 接口和终端系统与同一硅片的器件。20 世纪八十年代以来单片机发展迅速各类新产品不断涌现出现许多新产品,出现了许多高性能新型机种现已成为工业控制和各控制领域的支柱产业之一。
由于单片机功能功能强、体积小、可靠性好、**便宜等独特优点因而受到人们的高度重视并取得了一系列的科研成果,具有广阔的发展前景。而 51 系列单片机是各单片机中最为典型和最有代表性的一种。
1.2 设计目的。
设计的目的为:(1) 加强对单片机和c51 语言的认识,充分掌握和理解设计各部分的工作原理设计过程、 选择芯片器件、模块化编程等多项知识。 (2) 用单片机模拟实现具体应用,使个人设计系统能够真正使用。
(3) 把理论与实践相结合,充分发挥个人与团队合作能力,并在实践中得到锻炼。 (4) 提高利用已学的知识分析和解决问题的能力。
1.3 设计任务及内容。
1.3.1 设计任务和要求。
本设计利用89c51 单片机结合内部定时器及lcd 设计一个八音盒。按下单键可以演奏预先设置的歌曲旋律。本设计可以学习89c51 定时器程序设计、按键扫描的设计方法。
1.3.2 设计内容。
1) 填写设计任务书 (2) 进行总体设计,画出原理图 (3) 用protues 软件画出pcb 板 (4) 用keil 软件编写程序 (5) 在protues 里模拟并调试程序达到预期功能。
二、 总体设计及核心器件简介。
2.1 原理说明:
当键盘有键按下时,判断键值,启动计数器 t0,产生一定频率的脉冲, 驱动蜂鸣器,放出乐曲。同时启动定时器t1,并驱动lcd,显示歌曲号。 (1) 硬件电路中用p1.
0~p1.7控制按键,其中p1.0~p1.
3 扫描行,p1.4~p1.7扫描列。
(2) 用 p2.0~p2.2 作为 lcd 的 rs,r/w,e 的控制信号。
用 p0.0~p0.7作为lcd 的d0~d7的控制信号。
(3) 用p3.7口控制蜂鸣器(j2,j4 断开,j3 短接)。 电路为12mhz 晶振频率工作,起振电路中c1,c2 均为30pf。
2.2 89c51 简介。
2.2.1 89c51 单片机简介。
89c51 是mcs-51 系列单片机中的一个子系列,是一族高性能兼容型单片机。其内部资源分配和性能如下;8 位cpu;寻址能力2x64k;4kb 的内部rom 和128b 内部ram; 四个8 位i/o 接口电路;一个串行全双工异步接口;五个中断源和两个中断优先权;采用cmos 工艺电流小,低功耗。
2.2.2 89c51 各管脚主要功能简介。
下图为89c51pcb 图: (1)vss(20 脚):接地 (2)vcc(40 脚):
主电源+5v (3)xtal1(19脚):接外部晶体的一端。 在片内它是振荡电路反相放大器的输入端。
在采用外部时钟时,对于hmos 单片机,该端引脚必须接地;对于chmos 单片机,此引脚作为驱动端。 xtal2(18 脚):接外部晶体的另一端。
在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。若需采用外部时钟电路,对于hmos 单片机,该引脚输入外部时钟脉冲;对于chmos 单片机,此引脚应悬浮。 (4) rst(9脚):
单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24 个时钟周期宽度以上的高电平将使单片机复位(reset) (5)psen(29脚): 在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。cpu 在向片外存储器取指令期间,psen 信号在12个时钟周期中两次生效。
不过,在访问片外数据存储器时,这两次有效psen 信号不出现。psen 端同样可驱动8 个lsttl 负载。我们根据psen、ale 和xtal2 输出端是否有信号输出,可以判别89c51 是否在工作。
(6)ale/prog(30 脚):在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。cpu 在向片外存储器取指令期间,psen 信号在12个时钟周期中两次生效。
psen 端同样可驱动 8 个 lsttl 负载。我们根据 psen、ale 和 xtal2 输出端是否有信号输出,可以判别89c51 是否在工作。 (7) ea/vpp(31 脚):
当 ea 端输入高电平时,cpu 从片内程序存储器地址 0000h 单元开始执行程序。当地址超出4kb 时,将自动执行片外程序存储器的程序。当 ea 输入低电平时,cpu 仅访问片外程序存储器。
在对89c51eprom编程时,此引脚用于施加编程电压vpp。 (8)输入/输出引脚:1)p0.
0-p0.7(39脚-32 脚) 2)p1.0-p1.
7(1 脚-8 脚) 3)p2.0-p2.7(26 脚-21 脚) 4)p3.
0-p3.7(10 脚-17脚)。
2.3 lcd 简介。
2.3.1 lcd 特性。
lcd 具有如下特性:(1) +5v 供电,亮度可调。 (2) 内藏振荡电路,系统内含重置电路。
(3) 提供各种控制命令,如清除显示器、字符闪烁、光标闪烁、显示移位等多种功能。 (4) 显示用数据ram 共有80 个字节。 (5) 字符产生器rom 有160 个5×7点阵字型。
(6) 字符产生器ram 可由用户自行定义8 个5×7的点阵字型。 1. 引脚说明:
其引脚功能说明如下: (1) d0~d7双向的数据总线,lcd 数据读写方式可以分为8 位及4 位两种,以 8 位数据进行读写则d0~d7皆有效,若以4 位方式进行读写,则只用到d7~d4. (2) rs 寄存器选择控制线,当rs=0 时,并且做写入的动作时,可以写指令寄存器,若rs=1 则用于读写数据寄存器。
(3) r/w lcd 读写控制线,r/w=0 时,lcd 执行写入的动作,r/w=1 时则做读取的动作。 (4) en 启用控制线,高电平动作。 (5) vcc 电源正端。
(6) vo 亮度调整电压输入控制引脚,当输入0v 时字符显示最亮。 (7) gnd 电源地端。
2.4 键盘扫描。
下图是一个16 键的控制电路,使用89c51 端口2 的8 条i/o 线做16 个按键的键盘扫描,由p2.0~p2.3 送出扫描信号,而由p2.
4~p2.7读取按键数据返回码。
以程序扫描的方式来侦测哪一按键按下,一次扫描一行四个按键,扫描的顺序如下: (1) 送出扫描信号1110 以扫描c1 行的4 个按键,读取按键数据,判断该行是否有按键按下,若有被按下,则连接至被按下的该键,返回线状态为0。 (2) 送出扫描信号1101 以扫描c2 行的4 个按键,读取按键数据,判断该行是否有键按下。
(3) 送出扫描信号1011 以扫描c3 行的4 个按键,读取按键数据,判断该行是否有按键按下。 (4) 送出扫描信号0111 以扫描c4 行的4 个按键,读取按键数据,判断该行是否有键按下。 (5) 回到步骤(1)继续做按键扫描。
以上的步骤连续地重复,若有按键被按下,就将该按键译码出来,至于如何译码,可以使用双重循环做计数编号,当某一按键按下时,其按键编号便是计数编号。
三、 电路设计。
3.1硬件电路设计框图。
如图一所示,为硬件电路设计框图。
图一。3.2 lcd 显示电路。
图二。用p2.0--p2.
2 作为lcd 的rs、r/w、e 的控制信号用p0.0--p0.7作为lcd 的d0--d7的控制信号 。
如图二所示,为lcd 显示电路。
3.3 键盘扫描控制电路。
图三。键盘控制电路 89c51 单片机 lcd 显示电路 led 闪烁电路扬声器电路单片机课按键功能 0-9键:十首歌曲选择键 stop:
停止键 pause : 暂停键。如图三所示,为键盘扫描控制电路。
3.4晶振电路。
图四。xtal1 和xtal2 的两端用来连接石英晶体和外接电容,即用来连接片内osc 的定时反馈回路。石英起振后应能在 xtal2 线上输入一个 3v 左右的正弦波,以便使m cs-51片内的osc电路按石英晶振相同频率自激振荡。
如图四所示,为晶振电路。
3.5 基本功能。
基本功能为:(1)使用lcd 显示器来显示目前演奏的歌曲编号 ;(2)具有16 个按键操作来选择演奏哪一首歌曲;(3)内建10 首歌曲旋律,按下单键就可以就可以演奏歌曲 ;(4)演奏时可以按键中断。程序执行后工作指示 led 闪动,表示程序开始执行,按下单键0~9可以演奏歌曲,歌曲演奏中,可以按键中断。
四、主程序框图及设计电路。
如图。五、图六所示,分别为主程序框图、设计电路图。ny
图五。图六。
五、 程序调试**现的问题及解决的办法。
1.有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序中有的指令书写得不规范导致的,例如注释语句前的分号要在英文状态下输入。
2.程序中的跳转指令的运用很重要,为保险起见,都用 ljmp,我们就遇到过跳转指令用错程序无法正常运行的现象。
3.编程时要注意,在程序开始时,要写入各定时器中断的入口地址。
单片机课程设计
可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...
单片机课程设计
目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...
单片机课程设计
1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...