欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    AT89S51学习开发板软件设计 毕业设计论文.doc

    • 资源ID:26423       资源大小:1.98MB        全文页数:96页
    • 资源格式: DOC        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    AT89S51学习开发板软件设计 毕业设计论文.doc

    I AT89S51 学习开发板软件设计 摘 要 由于单片机技术正得到越来越广泛的应用,许多集成电路生产厂家相继推 出了各种类型的单片机,在单片机家族众多成员中,MCS-51 系列单片机以其 优越的性能、成熟的技术及高可靠性和高性价比,迅速占领了市场,成为国内 单片机应用领域中的主流。目前,可用 MCS-51 系列单片机开发的产品越来越 多,与其配套的各类开发系统、各种软件也日趋完善,因此,可以极方便地利 用现有资源,开发出用于不同目的的各类应用系统。 本课题是针对 AT89S51 实验开发板外围接口电路进行软件设计,以实现各 种开发功能。本文介绍了各种开发功能例程,实现对实验开发板各部分硬件的 控制。系统采用 C 语言编写,大大提高开发调试工作的效率;同时,所产生的 文档资料也容易理解,便于移植。最后,对系统进行了软件调试,能够很好地 完成功能要求。 关键词: AT89S51;RS232 通信;DS1302 时钟; I2C 存储器读写;DS18B20 温 度传感器;1602 液晶接口; II The Software Design Of AT89S51 Learning Development Board Abstract As the single chip microcomputer technic is used wider and wider in all areas, many manufacturers of integrated circuit have developed all kinds of single chip microcomputer family, the MCS-51 series of single chip microcomputer has quickly gained the market share and become the main stream in the national application area of single chip microcomputer with their excellent performance ,mature technic, high reliability and high cost performance. At present, there are more and more products that can be used to develop MCS-51 series single chip microcomputer, and the development systems and softwares matched to them are improved day by day. Therefore, we can conveniently use available resources to develop all kinds of application system used for different aims. This project is the software design for peripheral interface circuit of AT89S51 experimental board, in order to achieve a variety of development functions. This article describes a variety of routine of development functions, to achieve the control for the various parts of the experimental development board. The system uses the C language, greatly improve the efficiency of developmental debugging; the same time, the resulting documentation is also easy to understand, easy to transplant. Finally, it is necessary to do the software debugging for the system, able to complete functional requirements. Keywords:AT89S51;RS232 communication;DS1302 clock;12C memory read and write;DS18B20 temperature sensor;1602 LCD interface i 目 录 摘 要 .(I) Abstract (II ) 1 绪 论 (1) 1.1 题目背景 .(1) 1.2 研究意义 .(1) 1.3 国内外研究状况 .(1) 1.4 本文主要研究内容 .(1) 2 理论基础 (4) 2.1 C 语言简介 .(4) 2.2 模块化编程思想 .(5) 2.3 Keil C 编程环境介绍 .(5) 2.4 AT89S51 简介 (6) 3 系统的硬件描述 (7) 3.1 系统组成 .(7) 3.2 各模块软件功能介绍 .(7) 4 系统的软件设计 (9) 4.1 流水灯的例程设计 .(9) 4.1.1 硬件电路原理 .(9) 4.1.2 流水灯流程图 .(9) 4.2 数码管显示的软件设计 .(10) 4.2.1 数码管硬件特性 .(10) 4.2.2 数码管软件流程图 .(11) ii 4.3 4X4 矩阵键盘扫描软件设计 .(11) 4.3.1 硬件原理图 .(11) 4.3.2 矩阵键盘软件流程图 .(12) 4.4 DS1302 时钟显示的软件设计 .(13) 4.4.1 器件特性 .(13) 4.4.2 工作原理 .(14) 4.2.3 DS1302 的寄存器介绍 .(14) 4.2.4 硬件原理图 .(15) 4.2.5 软件流程图 .(15) 4.5 ADC0832 模数转换器的软件设计 .(16) 4.5.1 ADC0832 介绍 .(16) 4.5.2 单片机对 ADC0832 的控制原理 .(17) 4.5.3 硬件原理图 .(18) 4.5.4 ADC0832 软件流程图 .(18) 4.6 1602 液晶接口显示的软件设计 (18) 4.6.1 1602 液晶显示模块介绍 (18) 4.6.2 基本操作时序 .(18) 4.6.3 RAM 地址映射图 .(19) 4.6.4 1602 控制指令 (19) 4.6.5 1602 初始化过程 (20) 4.6.6 1602 硬件原理图 (20) 4.6.7 1602 软件流程图 (20) 4.7 DS18B20 温度传感器的软件设计 (21) 4.7.1 单总线温度传感器 DS18B20 简介 .(21) 4.7.2 DS18B20 的工作时序 (21) 4.7.3 DS18B20 基本指令 (24) iii 4.7.4 DS18B20 硬件原理图 (26) 4.7.5 DS18B20 软件流程图 (26) 4.8 I2C 存储器读写的软件设计 (27) 4.8.1 I2C 总线简介 (27) 4.8.2 I2C 总线器件工作原理及时序 (27) 4.8.3 AT24C02 简介 (29) 4.8.4 硬件原理图 .(29) 4.8.5 24C02 读写程序流程图 .(29) 4.9 SPI 存储器读写的软件设计 (30) 4.9.1 SPI 简介 (30) 4.9.2 93C46 串行存储器简介 .(30) 4.9.3 93C46 硬件原理图 .(31) 4.10 RS232 通信的软件设计 .(31) 4.10.1 RS232 串行接口标准 .(31) 4.10.2 RS232 通讯原理 .(32) 4.10.3 RS232 硬件电路原理图 .(32) 4.11 12864 液晶接口显示的软件设计 (32) 4.11.1 12864 点阵型 LCD 简介 (32) 4.11.2 12864 接口读写时序: (33) 4.11.3 12864 硬件原理图 (34) 5 软件调试 (35) 5.1 系统的软件调试 .(35) 5.2 调试中遇到的问题及解决 (35) 参考文献 (36) 致 谢 (37) iv 毕业设计(论文)知识产权声明 (38) 毕业设计(论文)独创性声明 (39) 附录 A:程序 .(40) 1.流水灯例程 (40) 2.数码管显示例程 (40) 3.4X4 键盘扫描例程 (41) 4.实时时钟芯片 DS1302 例程 .(42) 5.ADC0832 模数转换例程 (46) 6.LCD1602 显示例程 .(48) 7.温度传感器 DS18B20 例程 (51) 8.EEPROM24C02 存储器读写例程 (54) 9.EEPROM93C46 存储器的读写例程 (57) 10.RS232 通信例程 (61) 11.12864 液晶显示例程 .(63) 附录 B:外文及翻译 (70) 1 绪论 1 1 绪 论 1.1 题目背景 随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带 来了根本性的改变。尤其是单片机技术的应用产品已经走进了千家万户。 单片机课程是一门实践性很强的课程,要学好单片机,必须通过实践学习, 不论是硬件扩展、接口应用还是编程方法、程序调试,都离不开实验。单片机 开发板的出现满足了这样的需求。不用购买价格昂贵的仿真器,仅通过程序下 载,就可验证,这样的学习不仅降低了成本,而且方便了对程序指令,硬件接 口,串行总线的学习。 通常,51 系列单片机的各类开发系统,主要是采用汇编语言编程和硬件仿 真技术来进行开发工作的。这种开发方法存在着繁琐、不易理解、仿真不灵活、 成本过高等问题和缺陷。本系统以单片机的 C 语言进行软件设计,附有详细的 注释,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用 模块化结构,使程序设计的逻辑关系更加简洁明了。 1.2 研究意义 单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算 术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU) ,随机存取数据 存储器(RAM ) ,只读程序存储器(ROM) ,输入输出电路(I/O 口) ,可能还 包括定时计数器,串行通信口(SCI) ,显示驱动电路 (LCD 或 LED 驱动电路), 脉宽调制电路(PWM) ,模拟多路转换器及 A/D 转换器等电路集成到一块单块 芯片上,构成一个最小然而完善的计算机系统。这些电路能在软件的控制下准 确、迅速、高效地完成程序设计者事先规定的任务。 单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系 统,可以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在, 例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单 片机的应用领域越来越广泛。 为了方便使用者对 51 单片机及相关接口电路的软、硬件学习,本题目的 AT89S51 学习开发板具备常用的接口电路,同时配备了各接口电路的编程指导 。 同时,使用者可以利用各接口电路配合控制对象构成闭环系统,具备一定的开 发能力。 1.3 国内外研究状况 西安工业大学毕业设计( 论文) 2 1976 年 INTEL 公司推出了 MCS-48 单片机,这个时期的单片机才是真正的 8 位单片微型计算机,并推向市场。它以体积小,功能全,价格低赢得了广泛 的应用,为单片机的发展奠定了基础,成为单片机发展史上重要的里程碑。 在 MCS-48 的带领下,其后,各大半导体公司相继研制和发展了自己的单 片机,像 Zilog 公司的 Z8 系列。到了 80 年代初,单片机已发展到了高性能阶 段,像 INTEL 公司的 MCS-51 系列,Motorola 公司的 6801 和 6802 系列, Rokwell 公司的 6501 及 6502 系列等等,此外,著名电气公司 NEC 和 HITACHI 都 相继开发了具有自己特色的专用单片机。 80 年代,世界各大公司均竞相研制出品种多功能强的单片机,约有几十个 系列,300 多个品种,此时的单片机均属于真正的单片化,大多集成了 CPU、 RAM、ROM、数目繁多的 I/O 接口、多种中断系统,甚至还有一些带 A/D 转换器的单片机,功能越来越强大,RAM 和 ROM 的容量也越来越大,寻 址空间甚至可达 64kB,可以说,单片机发展到了一个全新阶段,应用领域更广 泛,许多家用电器均走向利用单片机控制的智能化发展道路。 1982 年以后,16 位单片机问世,代表产品是 INTEL 公司的 MCS-96 系列, 16 位单片机比起 8 位机,数据宽度增加了一倍,实时处理能力更强,主频更高, 集成度达到了 12 万只晶体管,RAM 增加到了 232 字节,ROM 则达到了 8kB, 并且有 8 个中断源,同时配置了多路的 A/D 转换通道,高速的 I/O 处理单元, 适用于更复杂的控制系统。 单片机自 20 世纪 70 年代末诞生至今,经历了单片微型计算机 SCM、微控 制器 MCU 及片上系统 SoC 三大阶段,前两个阶段分别以 MCS-51 和 80C51 为 代表。随着在嵌入式领域中对单片机的性能和功能要求越来越高,以往的单片 机无论是运行速度还是系统集成度等多方面都不能满足新的设计需要,这时 Silicon Labs 公司推出了 C8051F 系列单片机,成为 SoC 的典型代表。 ATMEL 公司的 AT89S51 是一个低功耗,高性能 CMOS 8 位单片机,片内 含 4k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序 存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S51 可为许多嵌入式控制应用 系统提供高性价比的解决方案。 单片机是目前国内外集成电路中量大面广、附加值高的产品。由于 MCS- 51 单片机影响极深远,许多公司都推出单片机开发板及学习环境,如国内新华 龙公司代理 C8051 系列单片机开发板等。 目前主流 MCU 虽仍为 8 位,但是 16 位、32 位高档 MCU 增长很快。随着 单片机在汽车电子、工业控制等应用领域的高速成长,32 位及其以上 MCU 将 随着电子产品升级得到广泛应用。 1.4 本文主要研究内容 西安工业大学毕业设计( 论文) 3 对 AT89S51 开发板各部分硬件接口电路进行软件编写,包括了软件指令、 硬件接口和串行总线的应用,具体有 LED 灯控制程序, 8 位数码管显示程序, 1602 液晶接口显示程序,DS1302 接口程序,12864 液晶接口显示程序,串行 AD 接口程序,4*4 键盘扫描程序,I2C 存储器读写程序, SPI 存储器读写程序, ds18b20 温度传感器程序,RS232 通信例程。 2 理论基础 4 2 理论基础 2.1 C 语言简介 C 语言是一种通用的编译型结构化计算机程序设计语言,在国际上十分流 行,它兼顾了多种高级语言的特点,并具备汇编语言的功能。它支持当前程序 设计中广泛采用的自顶向下的结构化设计技术。一般的高级语言难以实现汇编 语言对于计算机硬件直接进行操作(如对内存地址的操作、移位操作等)的功 能,而 C 语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作。 C 语言具有功能丰富的库函数,运算速度快,编译效率高,并且采用 C 语言编 写的程序能够很容易地在不同类型的计算机之间进行移植。因此,C 语言的应 用范围越来越广泛。 用 C 语言来编写目标系统软件,会大大缩短开发周期,增加软件的可读性, 便于改进和扩充,从而研制出规模更大、性能更完备的系统。 因此,用 C 语言进行单片机程序设计是单片机开发与应用的必然趋势。对 汇编语言掌握只要可以读懂程序,在时间要求比较严格的模块中进行程序的优 化即可。采用 C 语言进行设计也不必对单片机和硬件接口的结构有很深入的了 解,编译器可以自动完成变量存储单元的分配,编程者就可以专注于应用软件 部分的设计,大大加快了软件的开发速度。采用 C 语言可以很容易地进行单片 机的程序移植工作,有利于产品中的单片机重新选型。 C 语言的模块化结构特点,可以使程序模块共享,不断丰富。C 语言可读 性的特点,使大家可以更容易地借鉴前人的开发经验,提高自己的软件设计水 平。采用 C 语言,可针对单片机常用的接口芯片编制通用的驱动函数,可针对 常用的功能模块、算法等编制相应的函数。这些函数经过归纳整理可形成专家 库函数,供广大的工程技术人员和单片机爱好者使用和完善,这样可大大提高 国内单片机软件设计水平。 过去长时间困扰人们的“ 高级语言产生代码太长,运行速度太慢,不适合单 片机使用”的致命缺点已被大幅度地克服。目前, 51 系列单片机的 C 语言代码 长度,在未加入人工优化的条件下,已经做到了最优汇编程序水平的 1.2-1.5 倍。 可以说,已超过中等程序员的水平。51 系列单片机中,片上 ROM 空间做到 32/64KB 的比比皆是,代码效率所差的 10%-20%已经不是重要问题。关于执行 速度的问题,只要有好仿真器的帮助,用人工优化关键代码就是很简单的事了。 至于谈到开发速度、软件质量、结构严谨、程序坚固等方面,则 C 语言的完美 绝非是汇编语言编程所能比拟的。 C 语言具有以下优点:(1)语言简洁,使用方便灵活;(2)可移植性好;(3)表 达能力强;(4) 表达方式灵活;(5) 可进行结构化程序设计;(6)可以直接操作计算 西安工业大学毕业设计( 论文) 5 机硬件;(7)生成的目标代码质量高; 2.2 模块化编程思想 模块化程序设计是一种经典的程序设计技术,它的出发点是把一个复杂的 系 统软件,分解为若干个功能模块,每个模块执行单一的功能,并且具有单入口 和 单出口结构。模块化程序设计的传统方法是建立在把系统功能分解为程序过程 和宏指令的基础上。这种分解会在程序中产生许多容易理解的过程。 模块化程序设计主要有两种方法:一种是自底向上的模块化设计,一种是 自顶向下的模块化设计。第一种方法,首先对最低层模块进行编码、测试和调 试。 这些模块正常工作后,就可以用它们来开发较高层模块。即在编写主程序 前,先开发各个子程序,然后,用一个测试用的主程序来测试每一个子程序。 这种方法是汇编语言设计的常用方法。 第二种方法,首先对最高层进行编码、测试和调试。为了测试这些最高层 模块,可以用“ 结点” 来代替还未编码的较低层模块,这些结点的输入和输出满 足程序的说明部分要求,但功能少的多。该方法一般适合用高级语言来设计程 序。 上述两种方法各有优缺点,在自底向上开发中,高层模块设计中的根本错 误也许要很晚才能发现。在自顶向下开发中,程序的大小和性能往往要开发关 键性的低层模块时才会表现出来。实际工作中,最好使用两种方法结合起来。 先开发高层模块和关键性低层模块,并用“结点” 来代替以后开发的不太重要的 模块。 2.3 Keil C 编程环境介绍 Keil Vision 系列是德国 Keil Software 公司推出的 51 系列兼容单片机软件 开发系统。Vison3 是集成的可视化 Windows 操作界面,其提供了丰富的库函 数和各种编译工具,能够对 51 系列单片机以及和 51 系列兼容的绝大部分类型 的单片机进行设计。Keil Vision 系列可以支持单片机 C51 程序设计语言,也可 以直接进行汇编语言的设计与编译。K eil C51 生 成 的 目 标 代 码 效 率 非 常 之 高 , 多 数 语 句 生 成 的 汇 编 代 码 很 紧 凑 , 容 易 理 解 。 在 开 发 大 型 软 件 时 更 能 体 现 高 级 语 言 的 优 势 。 Keil Vision 系列是一个非常优秀的编译器,受到广大单片机设计者的广泛 使用。其主要特点如下: 支持汇编语言、C51 语言等多种单片机设计语言;可视化的文件管理,界面 友好; 西安工业大学毕业设计( 论文) 6 支持丰富的产品线,除了 51 及其兼容内核的单片机外,还新增加了对 ARM 内核产品的支持; 具有完善的编译连接工具; 具备丰富的仿真调试功能,可以仿真串口、并口、A/D 、D/A 、定时器/ 计 数器以及中断等资源,同时也可以和外部仿真器联合进行在线调试; 内嵌 RTX-51 实时多任务操作系统; 支持在一个工作空间中进行多项目的程序设计。 支持多级代码优化。 2.4 AT89S51 简介 AT89S51 是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器 件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指 令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储 单元,功能强大的微型计算机的 AT89S51 可为许多嵌入式控制应用系统提供高 性价比的解决方案。 AT89S51 具有如下特点:40 个引脚,4k Bytes Flash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM),32 个外部双向输入/输出(I/O)口,5 个中断 优先级 2 层中断嵌套中断,2 个 16 位可编程定时计数器,2 个全双工串行通信口, 看门狗(WDT) 电路,片内时钟振荡器。 此外,AT89S51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模 式。空闲模式下,CPU 暂停工作,而 RAM 定时计数器,串行口,外中断系统 可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直 至外中断激活或硬件复位。同时该芯片还具有 PDIP、TQFP 和 PLCC 等三种封 装形式,以适应不同产品的需求。 AT89S51 主要功能特性: ·与 MCS-51 产品指令系统完全兼容 ·4k 字节在系统编程(ISP)Flash 闪速存储器 ·1000 次擦写周期 ·4.05.5V 的工作电压范围 ·全静态工作模式:0Hz 33MHz ·三级程序加密锁 ·128×8 字节内部 RAM ·32 个可编程 I/O 口线 ·2 个 16 位定时/计数器 ·6 个中断源 ·全双工串行 UART 通道 ·低功耗空闲和掉电模式 西安工业大学毕业设计( 论文) 6 ·中断可从空闲模唤醒系统 ·看门狗(WDT) 及双数据指针 ·掉电标识和快速编程特性 ·灵活的在系统编程(ISP 字节或页写模式) 3 系统的硬件描述 7 3 系统的硬件描述 系统的软件设计与硬件电路紧密相连,这里对开发板的硬件接口电路做简 要说明,以便进行软件设计。 3.1 系统组成 硬件设计包括以下几部分,电源接口电路、串行存储及实时时钟接口电路、 RS232 通信接口电路、A/D 转化接口电路、数码管显示、流水灯显示及液晶显 示电路、4*4 键盘扫描及温度传感器等部分的设计。硬件结构图如下图: 图 3.1 系统硬件结构图 3.2 各模块软件功能介绍 LED 灯控制程序:编程实现流水灯功能; 8 位 LED 数码管显示程序:实现 8 位动态和静态扫描,同时编写数码管显示程 序; 1602 液晶接口显示程序:以实现正确的显示输出; DS1302 接口程序:编程实现日历时钟功能; 12864 液晶接口显示程序:实现正确的显示输出; 串行 AD 接口程序:编写程序实现 AD 转换; 4*4 键盘扫描程序:通过键盘扫描正确识别输入,读写数据; 西安工业大学毕业设计( 论文) 8 I2C 存储器读写程序:实现正确的数据存储; SPI 存储器读写程序:实现正确的数据存储; DS18B20 温度传感器程序:编写程序实现温度采集; RS232 通信例程:双向连接,实现其通讯; 4 系统的软件设计 9 4 系统的软件设计 4.1 流水灯的例程设计 4.1.1 硬件电路原理 图 4.1 流水灯硬件电路原理图 从硬件原理图中可以看出,如果要让接在 P3.0 口的 LED1 亮起来,那么只 要把 P3.0 口的电平变为低电平就可以了;相反,如果要接在 P3.0 口的 LED1 熄 灭,就要把 P3.0 口的电平变为高电平;同理,接在 P3.1P3.7 口的其他 7 个 LED 的点亮和熄灭的方法同 LED1。因此,要实现流水灯功能,我们只要将发 光二极管 LED1LED8 依次点亮、熄灭, 8 只 LED 灯便会一亮一暗的做流水灯 了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指 令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就 看不到“流水 ”效果了。同理可以控制 P0,P1,P2 口。 4.1.2 流水灯流程图 图 4.2 流水灯软件流程图 西安工业大学毕业设计( 论文) 10 LED 灯以共阳极的方式接到 P1 口,要使第一个亮,给第一位赋 0,使用字 节赋值方法,即给 P1 口赋 0xfe,点亮后延时再左移继续赋值给 P1 口,通 过死循环 while(1)使 led 灯循环发光,达到流水灯的作用。 4.2 数码管显示的软件设计 4.2.1 数码管硬件特性 单片机系统中常用的显示器有: 发光二极管 LED(Light Emitting Diode)显示器、液晶 LCD(Liquid Crystal Display)显示器、CRT 显示器等。LED、 LCD 显示器有两种显示结构: 段显示(7 段、米字型等)和点阵显示(5×8、8×8 点阵等) 。 数码管硬件原理图: 图 4.3 数码管硬件原理图 使用 LED 显示器时,要注意区分这两种不同的接法。为了显示数字或字符, 必须对数字或字符进行编码。七段数码管加上一个小数点,共计 8 段。因此为 LED 显示器提供的编码正好是一个字节。本设计采用共阳极接法,当位选端为 低电平,某位段选端为低电平时,相应的段选端即点亮。根据电路连接图显示 16 进制数的编码已列在下表。 表 4.1 数码管共阳极编码表 0xc0 0xf9 0xa4 0xb0 0x99 0x92 0x82 0xf8 0x80 0 1 2 3 4 5 6 7 8 0x90 0x88 0x83 0xc6 0xa1 0x86 0x8e 0xff 9 A B C D E F 不显示 LED 显示器工作方式有两种:静态显示方式和动态显示方式。 静态显示的特点是每个数码管的段选必须接一个 8 位数据线来保持显示的 字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。 这种方法的优点是占用 CPU 时间少,显示便于监测和控制。缺点是硬件电路比 较复杂,成本较高。 西安工业大学毕业设计( 论文) 11 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是 哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流 向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作 用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要 差一些,所以在选择限流电阻时应略小于静态显示电路中的。 4.2.2 数码管软件流程图 图 4.4 数码管软件流程图 P0 口为段选, P2 口为位选,将 i(015)的显示编码 dispi依次送入 P0 口, 将初值为 0xfe 的变量 temp 送入 P2 口,并通过 temp 的移位来控制数码管显示 的移动,最终达到 8 位数码管依次动态显示 0F 的效果。 4.3 4X4 矩阵键盘扫描软件设计 4.3.1 硬件原理图 图 4.5 4X4 矩阵键盘硬件原理图 西安工业大学毕业设计( 论文) 12 4.3.2 矩阵键盘软件流程图 矩阵键盘软件流程图如图 4.6 所示。主程序一直在监视是否有键按下,当 有键按下时通过数码管将其显示,无键按下则一直循环。 子程序则扫描是哪个按键按下,由于按键在闭合和断开时,触点会存在抖 动现象,所以使用延时程序消除抖动。本程序采用行扫描,并通过查表来判断 按键的编号。 按键特征编码和顺序编号通过以下方法得到:先从 P1 口的高四位输出低电 平,低四位输出高电平,从 P1 口的低四位读取盘状态。再从 P1 口的低四位输 出低电平,高四位输出高电平,从 P1 口的高四位读取键盘状态。将两次读取结 果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到 16 个键的 特征编码。将 16 个键的特征编码按顺序排成一张表,然后用当前读得的特征编 码来查表,当表中有该特征编码时,它的位置就是对应的顺序编码。 图 4.6 键盘扫描流程图 扫描程序查询的内容为: 西安工业大学毕业设计( 论文) 13 (1)查询是否有键按下。首先单片机向行扫描 P1.0P1.3 输出全为“0“扫描码 F0H,然后从列检查口 P1.4 P1.7 输入列扫描信号,只要有一列信号不为 “1“, 即 P1 口不为 F0H,则表示有键按下。接着要查出按下键所在的行、列位置。 (2) 查询按下键所在的行列位置。要确定键所在的行,需要进行逐行扫描。 单片机首先使 P1.0 为“0“, P1.1P1.7 为“1“,即向 P1 口发送扫描码 FEH,接着 输入列检查信号,若全为“1“,表示不在第一行。接着使 P1.1 为“0“,其余为 “1“,再读入列信号这样逐行发“0“扫描码,直到找到按下键所在的行。当各 行都扫描以后仍没有找到,则放弃扫描,认为是键的误动作。 (3) 对得到的行号和列号译码,得到键值。 (4) 键的抖动处理。当用手按下一个键时,往往会出现所按键在闭合位置 和断开位置之间跳几下才稳定到闭合状态的情况。在释放一个键时,也会出现 类似的情况,这就是键抖动,抖动的持续时间不一,通常不会大于 10 ms,若 抖动问题不解决,就会引起对闭合键的多次读入,对于键抖动最方便的解决方 法就是当发现有键按下后,不是立即进行逐行扫描,而是延时 10 ms 后再进行。 由于键按下的时间持续上百毫秒,延时后再也不迟。扫描函数的返回值为键特 征码,若无键按下,返回值为 0。 4.4 DS1302 时钟显示的软件设计 4.4.1 器件特性 DS1302 是 Dallas 公司生产的一种实时时钟芯片。它通过串行方式与单片机 进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时 时间信息,并可对月末日期、闰年天数自动进行调整,时钟操作可通过 AM/PM 指示决定采用 24 或 12 小时格式。它还拥有用于主电源和备份电源的双电源引 脚,在主电源关闭的情况下,也能保持时钟的连续运行。另外,它还能提供 31 字节的用于高速数据暂存的 RAM。DS1302 工作时功耗很低,保持数据和时钟 信息时功率小于 1mW。鉴于上述特点,DS1302 已在许多单片机系统中得到应 用,为系统提供所需的实时时钟信息。DS1302 主要性能如下: 实时时钟具有能计算 2100 年之前的秒、分、时、日、星期、月、年的能力 及闰年调整的能力。 31*8 位暂存数据存储 RAM。 串行 I/O 口方式,管脚数量少。 宽电压工作范围:2.0V5.5V。 工作电流:2.0V 时小于 300nA。 读/写时钟或 RAM 数据时,有两种传送方式:单字节传送和多字节传送。 8 脚 DIP 封装或 SOIC 封装 DS1302 时钟芯片内主要包括移位寄存器、控制逻辑电路、振荡器、实时时 钟电路以及用于高速暂存的 31 字节 RAM。DS1302 与单片机系统的数据传送依 西安工业大学毕业设计( 论文) 14 靠 RST,I/O,SCLK 三根端线即可完成。其工作过程可概括为:首先系统 RST 引脚驱动至高电平,然后在作用于 SCLK 时钟脉冲的作用下,通过 I/O 引脚向 DS1302 输入地址/ 命令字节,随后再在 SCLK 时钟脉冲的配合下,从 I/O 引脚 写入或读出相应的数据字节。因此,其与单片机之间的数据传送是十分容易实现 的。 4.4.2 工作原理 DS1302 工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置 为高电平且将 8 位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上 升沿串行输入,前 8 位指定访问地址,命令字装入移位寄存器后,在之后的时 钟周期,读操作时输出数据,写操作时输入数据。时钟脉冲的个数在单字节方 式下为 8+8( 8 位地址+8 位数据) ,在多字节方式下为 8 加最多可达 248 的数据。 4.2.3 DS1302 的寄存器介绍 对 DS1302 的操作就是对其内部寄存器的操作,DS1302 内部共有 12 个寄 存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式。此 外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的 寄存器。日历、时间寄存器及控制字如表 4.2 所示: 表 4.2 日历、时钟寄存器与控制字对照表 7 6 5 4 3 2 1 0 寄存器名称 1 RAM/CK A4 A3 A2 A1 A0 RD/W 秒寄存器 1 0 0 0 0 0 0 分寄存器 1 0 0 0 0 0 1 小时寄存器 1 0 0 0 0 1 0 日寄存器 1 0 0 0 0 1 1 月寄存器 1 0 0 0 1 0 0 星期寄存器 1 0 0 0 1 0 1 年寄存器 1 0 0 0 1 1 0 写保护寄存器 1 0 0 0 1 1 1 慢充电寄存器 1 0 0 1 0 0 0 时钟突发寄存器 1 0 1 1 1 1 1 最后一位 RD/W 为“0”时表示进行写操作,为“1”时表示读操作。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共 31 个, 每个单元组态为一个 8 位的字节,其命令控制字为 C0HFDH ,其中奇数为读 操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次 性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写)、FFH( 读)。 西安工业大学毕业设计( 论文) 15 单片机是通过简单的同步串行通讯与 DS1302 通讯的,每次通讯都必须由 单片机发起,无论是读还是写操作,单片机都必须先向 DS1302 写入一个命令 帧,这个帧的格式如表 4.2 所示,最高位 BIT7 固定为 1,BIT6 决定操作是针对 RAM 还是时钟寄存器,接着的 5 个 BIT 是 RAM 或时钟寄存器在 DS1302 的内 部地址,最后一个 BIT 表示这次操作是读操作或是写操作。 单字节读、写时序: 图 4.7 DS1302 读写时序 4.2.4 硬件原理图 图 4.8 DS1302 硬件 原理图 4.2.5 软件流程图 西安工业大学毕业设计( 论文) 16 图 4.9 日历读取流程图 图 4.10 日历设定流程图 图 4.11 向 DS1302 写入一个字节 4.5 ADC0832 模数转换器的软件设计 4.5.1 ADC0832 介绍 ADC0832 是 美 国 国 家 半 导 体 公 司 生 产 的 一 种 8 位 分 辨 率 、 双 通 道 A/D 转 换 芯 片 。 由 于 它 体 积 小 , 兼 容 性 , 性 价 比 高 而 深 受 单 片 机 爱 好 者 及 企 业 欢 迎 , 其 目 前 已

    注意事项

    本文(AT89S51学习开发板软件设计 毕业设计论文.doc)为本站会员(小小飞)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开