1 绪论
我所做的单片机串行通信发射机主要在实验室完成,参考有关的书籍和资料,个
人完成电路的设计、焊接、检查、调试,再根据自己的硬件和通信协议用汇编语言编
写发射和显示程序,然后加电调试,最终达到准确无误的发射和显示。在这过程中需
要选择适当的元件,合理的电路图扎实的焊接技术,基本的故障排除和纠正能力,会
使用基本的仪器对硬件进行调试,会熟练的运用汇编语言编写程序,会用相关的软件
对自己的程序进行翻译,并烧进芯片中,要与对方接收机统一通信协议,要耐心的反
复检查、修改和调试,直到达到预期目的。
单片机串行通信发射机采用串行工作方式,发射并显示两位数字信息,既显示
00-99,使数据能够在不同地方传递。硬件部分主要分两大块,由 AT89C51 和多个按
键组成的控制模块,包括时钟电路、控制信号电路,时钟采用 6MHZ 晶振和 30pF 的
电容来组成内部时钟方式,控制信号用手动开关来控制,P1 口来控制,P2、P3 口产
生信号并通过共阳极数码管来显示,软件采用汇编语言来编写,发射程序在通信协议
一致的情况下完成数据的发射,同时显示程序对发射的数据加以显示。
毕业设计的目的是了解基本电路设计的流程,丰富自己的知识和理论,巩固所学
的知识,提高自己的动手能力和实验能力,从而具备一定的设计能力。
我做得的毕业设计注重于对单片机串行发射的理论的理解,明白发射机的工作原
理,以便以后单片机领域的开发和研制打下基础,提高自己的设计能力,培养创新能
力,丰富自己的知识理论,做到理论和实际结合。本课题的重要意义还在于能在进一
步层次了解单片机的工作原理,内部结构和工作状态。理解单片机的接口技术,中断
技术,存储方式,时钟方式和控制方式,这样才能更好的利用单片机来做有效的设计。
我的毕业设计分为两个部分,硬件部分和软件部分。硬件部分介绍:单片机串行
通信发射机电路的设计,单片机 AT89C51 的功能和其在电路的作用。介绍了
AT89C51 的管脚结构和每个管脚的作用及各自的连接方法。AT89C51 与 MCS-51 兼
容,4K 字节可编程闪烁存储器,寿命:1000 次可擦,数据保存 10 年,全静态工作:
0HZ-24HZ,三级程序存储器锁定,128*8 位内部 RAM,32 跟可编程 I/O 线,两个 16
位定时/计数器,5 个中断源,5 个可编程串行通道,低功耗的闲置和掉电模式,片内
震荡和时钟电路,P0 和 P1 可作为串行输入口,P3 口因为其管脚有特殊功能,可连
接其他电路。例如 作为串行输出口,其中时钟电路采用内时钟工作方式,
控制信号采用手动控制。数据的传输方式分为单工、半双工、全双工和多工工作方式;
串行通信有两种形式,异步和同步通信。介绍了串行串行口控制寄存器,电源管理寄
存器 PCON,中断允许寄存器 IE,还介绍了数码显示管的工作方式、组成,共阳极和
共阴极数码显示管的电路组成,有动态和静态显示两种方式,说明了不同显示方法与
单片机的连接。再后来还介绍了硬件的焊接过程,及在焊接时遇到的问题和应该注意
的方面。硬件焊接好后的检查电路、不装芯片上电检查及上电装芯片检查。软件部分:
在了解电路设计原理后,根据原理和目的画出电路流程图,列出数码显示的断码表,
计算波特率,设置串行口,在与接受机设置相同的通信协议的基础上编写显示和发射
程序。编写完程序还要进行编译,这就必须会使用编译软件。介绍了编译软件的使用
和使用过程中遇到的问题,及在编译后烧入芯片使用的软件 PLDA,后来的加电调试,
及遇到的问题,在没问题后与接受机连接,发射数据,直到对方准确接收到。在软件
调试过程中将详细介绍调试遇到的问题,例如:通信协议是否相同,数码管是否与芯
片连接对应,计数器是否开始计数等。
我所设计的单片机串行接口现在已经发展到无线收发的阶段,本文参考无线发射
部分就是参考南华大学黄智伟、朱卫华的《单片机与嵌入式系统应用》一文,该串行
无线发射电路结构简单、工作可靠,可方便地在单片机与单片机之间,构成一个点对
点、一点对多点的无线串行数据传输通道。单片机无线串行接口电路由 MICRF102 单
片发射器芯片、MICRF007 单片接收器芯片组成,工作在 300~440 MHz ISM 频段;
具有 ASK 调制和解调能力,抗干扰能力强,适合工业控制应用;采用 PLL 频率合成
技术,频率稳定性好;接收灵敏度高达 -96 dBm,最大发射功率达- dBm;数
据速率可达 2 Kb/s;低工作电压:~ V;功耗低,接收时电流 3 mA,发射时电
流 mA,接收待机状态仅为 μA,发射待机状态仅为 μA;可用于单片机之
间的串行数据无线传输,也可在单片机数据采集、遥测遥控等系统中应用。
最后介绍了毕业设计做完后的结论以及自己的心得体会。
2 硬件
硬件的基本组成:
单片机 89C51、6M 晶震、30pF 电容、22uf/10V 电容、1K 电阻、共阳极数码显
示管、按键。
电路图
(见附录 A)
硬件介绍
单片机概述
单片机也被称作“单片微型计算机”、“微控制器”、“嵌入式微控制器”。单片机一
词最初是源于“Single Chip Microcomputer”,简称 SCM。随着 SCM 在技术上、体系结
构上不断扩展其控制功能,单片机已不能用“单片微型计算机”来表达其内涵。国际上
逐渐采用“MCU”(Micro Controller Unit)来代替,形成了单片机界公认的、最终统一的
名词。为了与国际接轨,以后应将中文“单片机”一词和“MCU”唯一对应解释。在国内
因为“单片机”一词已约定俗成,故而可继续沿用。
单片机的发展历史
如果将 8 位单片机的推出作为起点,那么单片机的发展历史大致可以分为以下几
个阶段:
第一阶段(1976—1978):单片机的探索阶段。以 Intel 公司的 MCS-48 为代表。
MCS-48 的推出是在工控领域的探索,参与这一探索的公司还有 Motorola、Zilog 等。
都取得了满意的效果。这就是 SCM 的诞生年代,“单片机”一词即由此而来。
第二阶段(1978—1982):单片机的完善阶段。Intel 公司在 MCS-48 基础上推出
了完善的、典型的单片机系列 MCS-51。它在以下几个方面奠定了典型的通用总线型
单片机体系结构。
1.完善的外部总线。MCS-51 设置了经典的 8 位单片机的总线结构,包括 8 位数
据总线、16 位地址总线、控制总线及具有多机通信功能的串行通信接口。
外围功能单元的集中管理模式。
3.体现工控特性的地址空间及位操作方式。
4.指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。
第三阶段(1982—1990):8 位单片机的巩固发展及 16 位单片机的推出阶段,
也是单片机向微控制器发展的阶段。Intel 公司推出的 MCS-96 系列单片机,将一些用
于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机
的微控制器特征。
第四阶段(1990—):微控制器的全面发展阶段。随着单片机在各个领域全面、
深入地发展和应用,出现了高速、大寻址范围、强运算能力的 8 位/16 位/32 位通用型
单片机,以及小型廉价的专用型单片机。
单片机的发展趋势
目前,单片机正朝着高性能和多品种方向发展,今后单片机的发展趋势将是进一
步向着 CMOS 化、低功耗化、低电压化、低噪声与高可靠性、大容量化、高性能化、
小容量、低价格化、外围电路内装化和串行扩展技术。随着半导体集成工艺的不断发
展,单片机的集成度将更高、体积将更小和功能将更强。
单片机的特点
单片机主要有如下特点:
1.有优异的性能价格比。
2.集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,
内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰
能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境
下工作。
3.制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的
转移指令、I/O 口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均
高于同一档次的微机。
4.低功耗、低电压,便于生产便携式产品。
5.外部总线增加了 I2C(Inter-Integrated Circuit)及 SPI(Serial Peripheral Interface)
等串行总线方式,进一步缩小了体积,简化了结构。
6.单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。
单片机的应用
由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得力助
手。它的应用遍及各个领域,主要表现在以下几个方面:
1.单片机在智能仪表中的应用
2.单片机在机电一体化中的应用
3.单片机在实时控制中的应用
4.单片机在分布式多机系统中的应用
5.单片机在人类生活中的应用
单片机已成为计算机发展和应用的一个重要方面,另一方面,单片机应用的重要
意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模
拟电路或数字电路实现的大部分功能,现在已能通过单片机来实现了。这种用软件代
替硬件的控制技术也称为微控制技术,是对传统控制技术的一次革命。
A:由单片机组成控制器的结构和特点:
单片微型计算机是微型计算机发展中的一个重要分支,是把构成一台微型计算机
的主要部件如中央处理器(CPU)、存储器(RAM/ROM)和各种功能 I/O 接口集成在一块
芯片上的单芯片微型计算机(Single Chip Micro Computer),简称单片机.由于它的结构
与指令功能都是按工业控制要求设计的,且近年来单片机着力扩展了各种控制功能如
A/D、PWM 等,因此我们更多时候称其为一个单片形态的微控制器(Single Chip Micro
Controller),或直接称其为微控制器(Micro Controller)。
B:用单片机组成的微机控制系统具有以下特点:
1.受集成度限制,片内存储器容量较小,一般片内 ROM 小于 4—8K 字节,片内
RAM 小于 256 字节;但可在外部进行扩展,如 MCS—51 系列单片机的片外可擦可编
程只读存储器(EPROM)、静态随机存储器(SRAM)可分别扩展至 64K 字节。
2.可靠性高。单片机芯片本身是按工业控制环境要求设计的,其抗工业噪声的能
力优于一般通用 CPU;程序指令及其常数、表格固化在 ROM 中不易破坏;常用信号通
道均在一个芯片内,故可靠性高。
3.易扩展。片内具有计算机正常运行所必须的部件,芯片外部有许多供扩展用的总
线及并行、串行输入/输出端口,很容易构成各种规模的微机控制系统。
4.控制功能强。为了满足工业控制要求,单片机的指令系统中有极丰富的条件分支
转移指令、I/O 口的逻辑操作以及位处理功能。一般来说,单片机的逻辑控制功能及运
行速度均高于同一档次的微处理器。
5.一般的单片机内无监控程序或系统管理软件,软件开发工作量大。但近年来已
开始出现了片内固化有 BASIC 解释程序及 FROTH 操作系统的单片机,使单片机系统
的开发提高了一个新水平。
此外,单片机成本低、集成度高、控制功能多,可灵活地组装成各种智能控制装置,
并能有针对性设计成专用系统,解决从简单到复杂的各种需要,实现最佳的性价比。特
别是单片机与传统机械产品相结合,使原有机械产品的结构简化、控制智能化。如数
控机床就是典型实例。近年来,单片机发展极快,其产量占微机产量的 70%以上。目前,
至少有 50 个系列 400 余种机型,性能和结构各不相同,INTEL、MOTOROLA、ZILCG
等公司都有系列单片微型计算机。国内普及的几乎都是 INTEL 公司的产品。
AT89C51 单片机简介
AT89C51 是美国 ATMEL 公司生产的低电压,高性能的 CMOS8 位单片机片内
4Kbytes 的可反复擦写的只读程序存储器(PEROM)和 128bytes 的随机存储器
(RAM),器件采用 ATMEL 公司的高密度、非易失存储技术生产,兼容标准 MCS-51
指令系统,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大。AT89C51
单片机可为你提供许多高性价的应用场合,可灵活的应用于各种控制领域。
AT89C51
图 单片机 AT89C51
主要性能参数:
·与 MCS-51 产品指令系统的全兼容
·4k 字节可重擦写 Flash 闪速存储器
·1000 次可擦写周期
·全静态操作:0Hz-24MHz
·三级加密程序存储器
·128×8 字节内部 RAM
·32 个可编程 I/O 口线
·2 个 16 位定时/计数器
·6 个中断源
·可编程串行 UART 通道
·低功耗空闲和掉电模式
AT89C51 功能特性描述:
AT89C51 提供以下标准功能:4k 字节 Flash 闪速存储器,128 字节内部 RAM,32
个 I/O 口线,两个 16 位定时/计数器,一个 5 向量中断结构,一个全双工串行通信口,
片内震荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种
软件的可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时/计数
器,窜行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但震荡器停止
工作并禁止所有部件工作直到下一个硬件复位。
(1) AT89C51 引脚功能说明:
·Vcc:电源电压
·GND:地
·P0 口:PO 口是一组 8 位漏极开路行双向 I/O 口,也既地址/数据总线复用口。可
作为输出口使用时,每位可吸收电流的方式驱动 8 个 TTL 逻辑电路,对端口写“1”可
作为高阻抗输入输入端用。在访问外部数据存储器时,这组口线分时转换地址(低 8
位)和数据总线复用,在访问期间激活内部上拉电阻。在 Flash 编程时,PO 口接收
指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。
·P1 口:P1 口是一个内部上拉电阻的 8 位双向 I/O 口,P1 的输入缓冲级可驱动
(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端
口拉到高电平,此时可作输出口。作输入口时,因为内部存在上拉电阻,某个引脚被
外部信号拉低时输出一个电流(I)。Flash 编程和程序校验期间,P1 口接收 8 位地址。
·P2 口:P2 口是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输入缓冲极可以
驱动(输入或输出电流)4 个 TTL 逻辑门电路。对端口“1”,通过内部的上拉电阻把
端口拉到高电平,此时和作为输出口,作输出口时,因为存在内部上拉电阻,某个引
脚被外部信号拉低时会输出一个电流。在访问外部存储器或 1 位地址的外部数据存储
器(例如执行 MOVX@DPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地
址的外部数据存储器(如执行 MOVX@RI 指令)时,P2 口线的内容(也既特殊功能
寄存器(SFR)区中 R2 寄存器的内容),在整个访问期间不改变。Flash 编程或校验
时,P2 亦接收高地址和其他控制信号。
·P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口,,P1 的输入缓冲级可
驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉
电阻拉高并可作为输出端口。作输出端口时,被外部拉低的 P3 口将用上拉电阻输出
电流。P3 口除可作为一般的 I/O 口线外,更重要的用途是它的第二功能,如表 所
示:
P3 口还接收一些用于 Flas 闪速存储器编程和程序校验的控制信号
图 AT89C51 方框图
·RST:复位输出。当震荡器工作时,RST 引脚出现两个机器周期以上高电平使
机器复位。
·ALE/ 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输
出脉冲用于锁存地址的低 8 位字节,即使不访问外部字节,ALE 仍时钟震荡频率的
1/6 输出固定的正脉冲信号,因此它可对外输出时钟脉冲或用于定时目的。要注意的
是:每次访问外部存储器时将跳过一个 ALE 脉冲。对 Flash 存储器编程期间,该引脚
还要输入编程脉冲( )。如有必要,可通过对特殊功能寄存器(SFR)区中的
8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC
指令可激活。此外,此引脚会被微弱拉高,单片机执行外部程序时,应该置 ALE 无
效。
· :程序存入允许( )输出的是外部程序存储器的读选通信号,当
PROG
PROG
PSEN PSEN
表 AT89C51 端口
AT89C51 由外部程序取指令(或数据)时,每个机器周期两次 有效,既输出两
个脉冲。在此期间,当访问外部数据存储器,这两次有效的 信号不出现。
·EA/VPP : 外 部 访 问 允 许 。 欲 使 CPU 仅 访 问 外 部 程 序 存 储 器 ( 地 址 为
0000H--FFFFH),EA 端必须保持低电平(接地)。要注意的是:如果加密位 LB1 被
编程,复位时内部会锁存 EA 端状态。Flash 存储器编程时,该引脚加上+12V 的编程
允许电源 Vpp,当然这必须是该器件是使用 12V 的编程电压 Vpp。
·XTAL1:震荡器反向放大器及内部时钟的输入端。
·XAAL2:震荡器反向放大器的输出端。
·时钟震荡器:AT89C51 中有一个构成内部震荡器的高增益反向放大器,引脚
XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的
片外石英或陶瓷震荡器一起构成自激震荡器震荡电路如图。外接石英晶体(或陶瓷震
荡器)及电容 C1、C2 接在放大器的震荡回路中构成并联震荡电路。对外接电容 C1、
C2 虽然没有非常严格的要求,但电容的大小会轻微影响震荡频率的高低、震荡工作
的 稳 定 性 、 起 震 的 难 易 程 序 及 温 度 稳 定 性 , 如 果 使 用 石 英 晶 体 , 推 荐 使 用
30pF±10pF,而如果使用陶瓷谐振器建议选择 40pF±10pF。用户还可以采用外部时钟,
采用外部时钟如图所示。在这种情况下,外部时钟脉冲接到 XTAL1 端,既内部时钟
发生器的输入端,XTAL2 悬空。
图 内部震荡电路 图 外部震荡电路
PSEN
PSEN
由于外部时钟信号是通过一个 2 分频的触发器后作为内部时钟信号的所以外部
表 AT89C51 寄存器
寄存器 内容 寄存器 内容
PC 0000H TMOD 00H
ACC 00H TCOM 00H
B 00H TH0 00H
PSW 00H TLO 00H
SP 07H TH1 00H0
DPTR 0000H TH1 00H
P1—P3 0FFH SCON 00H
IP xxx00000 SBUF 不定
IE 0xxx00000 PCON 0xxx00000
时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符
合产品技术条件的要求。
·Flash 闪速存储器的编程:
AT89C51 单片机内部有 4K 字节的 Flash PEROM,这个 Flash 存储存储阵列出厂时已
处于擦除状态(既所有存储单元的内容均为 FFH),用户随时可对其进行编程。程序
接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式,适用与用
户在线编程系统。而高电平模式可与通用 EPROM 编程程序兼容。
·编程方法:
编程前需设置好地址、数据及控制信号,编程单元的地址就、加在 P1 口和 P2 口的
—(11 位地址范围为 0000H—0FFFH),数据从 P0 口输入,引脚 、
和 、 的电平设置见表。PSEN 为低电平,RST 保持高电平,EA/Vp 引脚是
编程电源的输入端,按要求加上编程电压,ALE/PROG 引脚输入编程脉冲(负脉冲)
编程时可采用 4—20MHz 的时钟震荡器 AT89C51 的编程方法如下: 在地址线上
加上要编程单元的地址信号。
1.在数据线上加上要写入的数据字节。
2.激活相应的控制信号。
3.在高电压编程时,将 EA/Vpp 端加上+1V 编程电压。
4.每对 Flash 存储阵列写入一个字节,加上一个 ALE/PROG 编程脉冲。
(2) AT89C51 控制信号
RST/VPD(9 脚)复位信号时钟电路工作后,在引脚上出现两个机器周期的高电
平,芯片内部进行初始复位,复位后片内存储器的状态如表所示,P1—P3 口输出高
电平,初始值 07H 写入堆栈指针 SP、清 0 程序计数器 PC 和其余特殊功能寄存器,
但始终不影响片内 RAM 状态,只要该引脚保持高电平,89C51 将循环复位,,
RAT/VPD 从高电平到低电平单片机将从 0 号单元开始执行程序,另外该引脚还具有
复用功能,只要将 VPD 接+5V 备用电源,一旦 Vcc 电位突然降低或断电,能保护片
内 RAM 中的信息不丢失,恢复电后能正常工作。
AT89C81 通常采用上电自动复位和开关手动复位,我们采用的是手动复位开关
如图所示:
图 手动开关
手动开关未按下之前,电容正极处于家电状态,当按键按下去后,VCC 与 GND
导通,电容放电,从而实现放电。
单片机的串行接口
MCS-51 单片机内部有一个 全双工的串行接收和发射缓冲器(SBUFF),这两个
在物理上独立的接收发射器,即可以接收也可以发射数据,但接收缓冲器只可以读出
不能写入,而发送缓冲器只能写入不能读出,它们的地址是 99H。这个通信口即可以
用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用。如果在
串行口的输入输出引脚上加上电平转换器,就可以方便的构成标准的 RS-232 接口。
下面我们分别介绍。
基本概念
数据通信的传输方式:常用于数据通信的传输方式有单工、半双工、全双工和
工方式。
A. 单工方式:数据仅按一个固定的方向传送。因为这种传输方式的用途有限,
常用于串行口的打印数据传输与简单系统间的数据采集。
B. 双工方式:数据可以实现双向传送,但不能同时进行,实际的应用采用某种
协议实现收发开关转换。
C. 全双工方式:允许双方同时进行数据双向传送,但一般全双工电路的线路和
设备比较复杂。
D. 多工方式:以上三种传输方式都是同一线路传输一种频率信号,为了充分的
利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分、或码
分复用技术,即可实现在同一线路上资源共享功能,我们称之为多工传输方式。
串行通信的两种通信形式
A. 异步通信
在这种通信方式中,接收器和发射器有各自的时钟,他们的工作是非同步的,
异步通信用一帧来表示一个字符,其内容如下:一个起始位,紧接着是若干个数
据位,图 是传输 45H 的数据格式。
B.同步通信
同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步传输
中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送
的数据量较大的
C. 串行数据通信的传输速率:
串行数据传输率有两个概念,既美秒传送的位数 bps(Bit per second)和美秒符号
数-波特率(Band rate),在具有调治解调器的通信中,波特率与调治速率有关。
MCS-51 的串行和控制寄存器
串行口和控制寄存器
MCS-51 单片机串行口专用寄存器结构如图所示。SBUF 为串行口的收发缓冲器,
它是一个可寻址的专用寄存器,其中包含了接收器和发射器寄存器,可以实现全双工
通信。但这两个寄存器具有同一地址(99H)。MCS-51 的串行数据传输很简单,只要
向缓冲器写入数据就可发送数据。而从接收缓冲器读出数据既可接收数据。
此外,接收缓冲器前还加上一级输入移位寄存器,MCS-51 这种结构的目的在于
接收数据时避免发生重叠现象,文献称这种结构为双缓冲结构。而发送数据就不需要
这样设计,因为发送时,CPU 是主动的,不可能出现这种情况。
A:串行通信寄存器
在上一节我们已经分析了 SCON 控制寄存器,它是一个可寻址的专用寄存器,
用于串行数据通信的控制,单元地址是 98H,其结构格式如下:
表 SCON 寄存器结构
表 1 寄存器 SCON 结构
D7 D6 D5 D4 D3 D2 D1 D0SCON
SM0 SM1 SM2 REN TB8 RB8 TI RI
位地址 9FH 9EH 8DH 9CH 9BH 9AH 99H 98H
下面我们对个控制位功能介绍如下:
(1)SM0、SM1:串行口工作方式控制位
SMO SM1 工作方式 功能说明
0 0 方式 0 移位寄存器方式(用于 I/O 扩展)
0 1 方式 1 8 位 UART,波特率可变(T1 溢出率/ n)
1 0 方式 2 9 位 UART,波特率为 fosc/64 或 fosc/32
1 1 方式 3 9 位 UART,波特率可变(T1 溢出率/ n)
(2)SM2:多机通信控制位
多机通信是工作方式 2 和方式 3,SM2 位主要用于方式 2 和方式 3。接收
状态,当串行口工作方式 2 或 3,以及 SM2=1 时,只有当接收到第 9 位数据(RB8)
为 1 时,才把接收的前 8 位数据送入 SBUF,且置位 RI 发出中断申请,否则会将收
到的数据放弃。当 SM2=0 时,只有在接收到有效停止位时才启动 RI,若没接收到有
效停止位,则 RI 清“0”。在方式 0 中 SM2 应该为“0”。
REN:允许接收控制位。由软件置“1”时,允许接收;软件置“0”时,不许接收。
TB8:在方式 3 和方式 3 中要发送的第 9 位数据,需要时用软件置位和清零。
TB8:在方式 2 和方式 3 中是接收到的第 9 位数据。在方式 1 时,如 SM2=0,RB8
接收到的停止位。在方式 0 中,不使用 RB8。
TI:发送中断标志。由硬件在方式 0 发送完第 8 位时置“1”,或在其它方式中串
行发送停止位的开始时置“1”。必须由软件清“0”。
RI:接收中断标志。由硬件在方式 0 串行发射第 8 位结束时置“1”
B:特殊功能寄存器 PCON
PCON:主要是是 CHMOS 型单片机的电源控制而设置的专用寄存器,单元地址
为 87H 其机构格式如下表:
表 特殊功能寄存器 PCON
PCON D7 D6 D5 D4 D3 D2 D1 D0
位符号 SMOD GF1 GF0 PD IDL
在 CHMOS 型单片机中,除 SMOD 位外其它位均为虚设的,SMOD 是串行波特
率倍增位,当 SMOD=1 时串行口波特率加倍,系统复位默认为 SMOD=0。
C:中断允许寄存器 IE
中断允许寄存器这里重述一下对串行口有影响的位 ES。ES 为串行中断允许控制
位,ES=1 允许串行中断,ES=0,禁止串行中断。
串行口工作方式
串行口具有 4 种工作方式,我从应用和毕业设计的角度,重点讨论方式 1 发送。
串行口定义为方式 1 时传送 1 帧数据为 10 位,其中 1 位起始地址、8 位数据位
(先低位后高位)、1 位停止位方式 1 的波特率可变,波特率= (T1 的溢出
率)
表 中断允许寄存器
符号 EA ES ET1 EX1 ETO EX0
位地址 AFH AEH ADH ACH ABH AAH A8H A8H
数码显示管
要用单片机构成发射机,就需要一个人机界面。常采用的方式是 LED 数码管显
示测试结果,用一个小键盘执行某些功能,如请零、预置值、改变测量范围等等。
LED 显示器的工作原理
LED 显示是用发光二极管显示字段的显示器件,也可称为数码管,其外形结构
如图所示,由图可见它由 8 个发光二极管构成,通过不同的组合可用来显示 0~9、
A~F 及小数点。
32/2SMOD
图 “8”字型数码管
LED 显示器分为共阴极和共阳极,共阴极是将 8 个发光二极管阴极连接在一起
作为公共端,而共阳极是将 8 个发光二极管的阳极连接在一起作为公共端。我们这次
就是采用的共阳极 LED,所以这里要介绍共阳极数码管。如图所示,LED 显示器有
静态和动态显示两种方式,静态显示是将共阴极联到一起接地,每位的显示段
(a-dp)分别与一个 8 位的锁存器输出相连。由于显示的各位可以相互独立,各位可
以互相显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。
并且由于各位由一个 8 位锁存器控制段选线,故在同一时间内每一位显示的字符可以
不同,
表 段码与字型的关系
段码 D7
DP
D6
g
D5
f
D4
e
D3
d
D2
c
D2
b
D0
a
字形
3FH 0 0 1 1 1 1 1 1 0
06H 0 0 0 0 0 0 1 0 1
5BH 0 1 0 1 1 0 1 1 2
4FH 0 1 0 0 1 1 1 1 3
66H 0 1 1 0 0 1 1 0 4
6DH 0 1 1 0 1 1 0 1 5
7DH 0 1 1 1 1 1 0 1 6
07H 0 0 0 0 0 1 1 1 7
7FH 0 1 1 1 1 1 1 1 8
6FH 0 1 1 0 1 1 1 1 9
77H 0 1 1 1 0 1 1 1 a
7CH 0 1 1 1 0 1 1 1 b
39H 0 0 1 1 1 0 0 1 c
5EH 0 1 0 1 1 1 1 0 d
79H 0 1 1 1 1 0 0 1 e
71H 0 1 1 1 0 0 0 0 f
这种方式占用锁存器较多。动态显示是将所有位的段选线相应的并联在一起,由一
个 8 位的 I/O 口控制,形成段选线的多路复用。而各位的阴极分别由相应的 I/O 口控
制,实现各位的分时选通。要 LED 能够显示相应的字符,就必须采用动态扫描方式,
只要每位显示的时间足够短,则可造成多位同时显示的假象,达成显示的目的。在数
字电路中常常要把数据或运算结果通过半导体数码管、液晶数码和荧光数码管,用十
进制数显示出来。
发光二极管的工作电压为 伏,工作电流为己毫安到几十毫安,寿命很长。
半导体数码管将十位数分成七个字段,每段为一个发光二极管,其字形结构如图所示,
选择不同的字段发光,可显示出不同的字型。例如:当 a,b,c,d,e,f,g 七个字段同时亮
时,显示 8,b、c 段亮时,显示出1。
共阳极:把发光二极管的阳极连在一起构成共阳极。使用时公共端接 Vcc,当某
阳极为低电平时,该发光二极管就导通发光。输出一个段码就可以控制 LED 显示器
的字型,表 给出了段码与字型的关系,假定 a、b、c、d、e、f、g、DP 分别对应
D0、D1、D2、D3、D4、D5、D6、D7。
硬件的焊接及调试过程
硬件的焊接是毕业设计中重要的环节,用的工具很简单:电烙铁、焊丝和镊子。
因为我们选用的是实验板,所以要用导线把各个元器件连接起来,这就要有一定的技
术基础,幸好这个在我们以前的电娤实习中已经掌握。焊接要细心,还要有耐心。焊
接前要对照电路图对元器件有一个合理的布局,那样的话就会使电路简洁明朗,而且
不易出错,即使出错也容易检查。下面就来介绍元器件的焊接方法和过程。
硬件的焊接
底座的焊接
我的电路板有两个底座,一个是单片机 AT89C51 的,另一个是数码显示管的。
我们用的是 40 脚的双排直插式的,在焊接时,要先把底座插到电路板上再进行焊接,
底座各脚的焊点要小,以免各脚之间导通,还不能形成虚焊,虚焊会导致电路不通,
底座要焊接牢固,不能和电路板距离太远,以免导致虚焊。底座还要放在公共线的两
边,因为那两条线是火线和地线。焊接好后要对照电路仔细检查,再用万用表检测,
看焊接是否良好。
按键的焊接
我的电路中用到了 5 个按键,一个复位键、一个发射键、两个置数键,还有我自
己加的一个计数控制键。我虽然做的是发射机,但只要对软件进行一些改动,也可以
作为接收机,那时发射控制键就变成接收控制键了。
我所用的按键是普通的断开按键,有 4 个脚,两边各两个,其中每边的两个脚是
导通的,在焊接的时候要特别注意,我就是不小心,把相连的两个脚焊接当成不连的
脚用来作开关,结果按键按下后不起作用。所以在焊接前一定要用万用表测出那两个
脚是导通的,焊接完后再检测,看焊接是否良好。
时钟电路的焊接
我们的电路中时钟电路包括一个晶震,两个电容。晶震是 6M 的,电容是普通电
容,焊接前要刮腿,以免接触不好。晶震和电容要尽量靠近芯片,这样有利于时钟电
路的稳定,减少干扰。焊接好后要用万用表检测。
导线的焊接
导线的焊接比较麻烦。因为导线比较多,就要先对导线进行布局,找好于元器件
相对的管脚,焊接前先要检测导线是否导通。焊接完成后要检测是不是连接良好。
电路板的检测和故障排除
电路板完成后要进行全面检测,包括以下几个方面:
火线和底线的检测
检测单片机底座的 Vcc(40 脚)是否与火线相连,检测数码管的功用端是否与火
线连接,手动复位开关是否连接上火线。地线检查:其他按键接地是否良好,时钟电
路接地端的检测,单片机 GND 端(20 脚)是否接地。检查完后再用万用表检查火线
和地线是否导通。
元器件之间的连接的检查
参照电路图,用万用表仔细检查各个元器件连接是否良好,是否对应。
硬件的调试机器故障排除
硬件的调试在上电后的工作是不是正常,主要包括不插单片机的调试和插上单片
机的检测。
无单片机的调试
无单片机调试主要检查电路工作是否正常,调试数码管是否点亮,显示数据是否
正确,具体步骤如下:
A:打开电源,将输出电压调到 5 伏,然后关闭电源。
B:将电路板的火线与电源正极相连,地线与负极相连。
C:打开电源,用万用表检测电路板是否有输出电压,如果有就是好的,没有就
要检测是否有短路。
D:电路检查完后,关闭电源,用一根导线与电源负极相连,然后打开电源,用
导线的另一端逐个与 P0、P2 口的管脚接触,看数码管显示是否正确。
调试过程中遇到的问题及解决办法:
(1)上电后,用导线一端接低电平,另一端逐一连接 P0、P2 管脚,数码管显示不正
常,检测后发现管脚有短路现象,将短路管脚重新焊接后,显示正常。
(2)反复调试几次后,发现电路不稳定,有时没反应。仔细分析后,觉得是稳压管
有问题,拆除后直接接 5V 电压源,问题解决。
有单片机的调试
加上单片机,目的是看单片机能否正常工作,有效地控制显示数据。编写一个小
程序,烧入芯片中加点调试。
A:程序如下:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:MOV DPTR,#DDSS
MOV A,#0
MOVC A,@A+DPTR
MOV P0,A
MOV P2,A
DDSS:DB 3FH,06H,5BH,4FH,66H
DB 6DH 7DH,07H,7FH,6FH
END
B:将编好的程序进行编译,即将*.ASM 文件转化为*.BIN 文件,然后烧入片子。
程序的编译和烧入将在以后介绍。
C:把单片机 AT89C51 接入底座插入底座,加电,看各位显示是不是正确。
D: 用复位键看显示是否正确,如果稳定,表示调试成功。
调试过程中遇到的问题:
上电后,用示波器检测 30 脚,发现没有时钟频率输出,仔细分析发现 30 脚没
接高电平,重新焊接后,输出漂亮的时钟脉冲。
3 软件的设计和调整过程
软件的设计是我毕业设计的另一个重要方面。它的好坏直接关系毕业设计的成功
与否。我等软件是用汇编完成的,需要能熟练的掌握汇编语言,还要熟悉 AT89C51
单片机。从程序流程图、通信协议、波特率计算、编写程序、编译、和烧入软件的操
作,到最后的调试,是很复杂的。下面作详细介绍:
程序流程图
程序流程图是编写软件的重要前提,它是在图表上直观的体现拟设计的目的及过
程。也是编译的重要依据,按照流程图一步一步编写程序,下面是我的流程图;
图 发射接口流程图
通信协议
通信协议是发射机和接收机之间通信不可缺少的部分,包括下面几方面的设置;
串行口控制寄存器 SCON 的设置
串行口控制寄存器的基本情况在前面已经介绍,这里不再重复。根据我们所做的
内容,我们采用了串行工作方式 1,REN 设置为“1”(允许接收),综上所述我们设
SCON 的初始值为 50H,如下表所示:
表 串行口控制寄存器
定时器的初始化设置
在定时器为方式 1 时,方式字为:
表 定时计数器的初始化
CATE
C/
M1 MO
0 0 1 0
T1 T0
GATE:表示 不参与控制
C/ :选择计数/时钟方式
M1MO:选定定时器 1 工作方式 2
所以定时器 TMOD 初始值为 20H
波特率计算
晶震为 6M,波特率为 单片机工作方式为串行方式 1,T1 是方式 2,所以
=1/16*X
X=
=1/2*(256-Y)
Y=
把十进制转换成十六进制数为 D9,所以初始值为 D9。
发射程序
(见附录 B)
我所做的程序实现了毕业设计的要求,并此基础上加了一个自己编的小程序,它
能够在 为低电平是开始从 00-99 计数。
编译软件的使用和 PLDA 的使用
两个软件的作用是将源程序转化为目标文件,再把目标文件烧到单片机 AT89C51
SM0 SM1 SM2 REN TB8 TB8 TI RI
0 1 0 1 0 0 0 0
T
1INT
T
中,他们是这个过程中不可缺少的,在这里我们详细介绍这两个软件的使用。
编译软件的使用和编译过程
编译软件的使用
A: 编译软件的装载:这个软件不需要安装,只要复制到机子里就行。
B:双击快捷方式,进入编辑界面,进行下一步编辑(如图)。
图 仿真器使用界面
C.点击文件,新建一个文件,将源程序输入后保存(生成.ASM 文件)。
D. 选择项目,点击全部编译,系统自动进行编译后弹出对话框,提示编译中出
现的问题,双击提示后系统会自动指出出问题的地方(生成.BIN 文件)。
E. 单击仿真器,配置选择芯片、通信端口和晶震频率。
F. 单击执行,系统输出仿真信号。也可以选择但不执行,这样可以看到每部执
行的情况。
烧片
烧片用的是 PLDA 软件,它的使用方法如下:
(1)先配置软件,选择 MCU89C51。
(2)导入预先编译好的程序。
(3)擦除芯片,然后烧制。
烧片时应注意的问题:
(1)芯片的放置要真确,否则有可能造成芯片烧坏。
(2)配置芯片时要注意选对芯片型号,例如用 AT89C51 就要选:MCU AT89C51。
(3)在烧片之前,应该先擦除芯片,防止芯片内原有遗留程序的影响。
4 单片机串行通信领域的扩展
我所做的发射机是有线接收的,得却能完成数据在不同地方的传递,也完成了我
们毕业设计的要求,但他受到了很多限制。不如距离太远,导线太长久汇有干扰而且
有时还会很大,使得接收到的信号很弱,甚至接收不到。必须进行无线发射、接收的
方面的研究,由于毕业设计的时间有限,就没能完成无线发射、接收的设计。现在就
介绍一下无线发射的原理和电路。
单片机无线串行接口电路由 MICRF102 单片发射器芯片,工作在 300~440 MHz ISM
频段;具有 ASK 调制和解调能力,抗干扰能力强,适合工业控制应用;采用 PLL 频
率合成技术,频率稳定性好;接收灵敏度高达 -96dBm,最大发射功率达-
;数据速率可达 2Kb/s;低工作电压:~;功耗低,接收时电流 3mA,
发射时电流 ,接收待机状态仅为 μA,发射待机状态仅为 μA;可用于单
片机之间的串行数据无线传输,也可在单片机数据采集、遥测遥控等系统中应用。
无线发射电路组成及工作原理:
图 无线发射电路图
无线发射电路如图 所示,电路以 MICRF102 为核心。MICRF102 是 Micrel 公
司推出的一个单片 UHF/ASK 发射器,采用 SOP(M)-8 封装,芯片内包含有:由基准
振荡器、相位检波器、分频器、带通滤波器、压控振荡器构成的合成器,发射偏置控
制,RF 功率放大器,天线调谐控制和变容二极管等电路,是一个真正的"数据输入-
无线输出"的单片无线发射器件。UHF 合成器产生载频和正交信号输出。输入相位信
号(I)用来驱动 RF 功率放大器。天线调谐正交信号(Q)用来比较天线信号相位。
天线调谐控制部分检测天线通道中发射信号的相位和控制变容二极管的电容,以调谐
天线,实现天线自动调谐。功率放大器输出受发射偏置控制单元控制。ASK/OOK 调
制,提供低功耗模式,数据传输速率为 20kb/s。
使用中应注意的问题是:
(1)REFOSC(引脚 4)是基准振荡端,连接晶振到地,或采用 AC 耦合方式输
入峰-峰值为 V 的时钟脉冲。发射频率是基准振荡器频率的 32 倍:基准振荡频率
×32=发射频率。如果使用外接时钟信号,须采用 AC 耦合方式,输入信号幅度峰-峰
值为 200~500 mV。
(2)MICRF102 使用差分输出去驱动天线负载。功率放大器输出级包含有一个
变容二极管,它自动与天线的电感调谐,以保证谐振在发射频率上。典型的 PCB 导
线天线的电感与回路的尺寸、天线导线的宽度、PCB 铜泊的厚度和接地板的位置有
关。设计时一般选择变容二极管的电容值为 。天线电感 L 由公式 L=1/(4π2f2C)
计算。
(3)功率放大器的输出功率与 PC 端(引脚 1)上的电压有关。正常工作时,该
引脚端上的电压被设置在 ~ 之间。PC 端上的电压上升,输出功率加大;但是,
如果 PC 端上的电压超过 ,功率放大器被限流,输出功率不再增加。减少 PC 端
的电压可降低电源功率消耗,同时也会减少 RF 输出功率。
(4)STBY 端(引脚 5)是待机模式控制。接 VDD 为发射方式,接 VSS 为待机
模式。
(5)MICRF102 芯片对电源纹波敏感,正确地电源旁路是必需的,一般使用
μF、μF、100pF3 个电容并联在 VDD 和 VSS 之间。
使用中应注意的问题是:
① 在发射模式下,通信速率最高为 2 Kb/s;发送数据之前须将电路置于发射模
式(MICRF102 的第 5 脚 STBY = 1);接收模式转换为发射模式的转换时间至少 5 ms;
可以发送任意长度的数据;发送结束后应将电路置于接收模式(MICRF007 的第 6 脚
SHUT = 0);发射模式转换为接收模式的转换时间至少 5 ms。
① 在待机模式(MICRF102 的 STBY=0,MICRF007 的 SHUT=1)下,电路不发
射/接收数据。设计串行通信程序应考虑:双方通信的协议,有效数据识别标志,数
据的检错、纠错和校验。
单片机串口接口
AT89C51(与 MCS-51 兼容)单片机的串行口在方式 0 工作状态下,使用移位寄
存器芯片可以扩展多个 8 位并行 I/O 口。在 LED 点阵显示屏应用系统中,一般都采
用数据同步移位输出方式,并使用移位寄存器芯片(如 74LS595)扩展并行 I/O 口驱
动 LED 点阵显示。LED 点阵显示采用扫描方式,为不产生闪烁感,每秒需要传送 50
屏点阵显示数据,因此有大量的数据要通过同步移位的方式送到显示驱动电路部分,
这就要求单片机能够快速地输出数据。AT89C51 单片机的串行口在方式 0 工作状态
下,数据以 fosc/12 的波特率输出,1 个字节数据写入 SBUF 后,需检查中断标志位 TI
是否为“1”并清“0”TI 或延时几个机器周期后才能继续写入了一个数据,输出速度慢。
在 LED 点阵显示屏应用系统中,系统与 PC 机之间的通讯需要使用单片机的串行口,
显示数据的同步移位输出口只有另外扩展。本文介绍的高速串行同步移位输出口(以
下简称扩展串行口)电路,采用模块化设计,给出基于 TTL 和 PLD 两种电路的实现
方案,波特率提高到 fosc,数据输出不需要等待或延时。
扩展串行口与单片机的连接
扩展串行口电路框图如图 所示。与并行存储器芯片类似,扩展串行口被视为
一个外部 RAM 地址单元,直接挂接在 AT89C51 的外部数据总线上,D0~D7 为数据
线,CE 为片选信号,WE 为写脉冲信号,也是扩展串行口的输出控制信号。AT89C51
外接晶体振荡器的振荡信号经二个与非门整形后为扩展串行口提供时钟脉冲 XTAL2。
DAT 和 CLK 分别是扩展串行口的数据输出端和同步移位脉冲输出端。
图 扩展串行输出口与单片机的连接
操作指令
假设 AT89C51 分配给扩展串行口的地址是 0000H,使用 MOVX@DPTR,A 或
MOVX@R0,A 指令将数据写入扩展串行口并移位数据。下面的程序段将内部 RAM
数据区首址为 30H 的 32 字节数据送扩展串行口同步移位输出:
MOV P2,#00H ;设置扩展串行口地址高 8 位
MOV R1,#30H ;设置内部 RAM 数据区首址
MOV R7,#32 ;输出字节个数
LOOP:MOV A,@R1 ;从内部 RAM 数据区读入 1 字节
INC R1 ;指向内部 RAM 数据区下一个地址单元
MOVX @R0,A ;数据送扩展串行口输出
DJNZ R7,LOOP ;32 字节未送完继续
RET
图 扩展串行口原理图
基于 TTL 电路的设计方案和工作原理
图 是用 TTL 电路实现的扩展串行口电路。74LS74 是有预置、清零功能的双
上升沿 D 触发器,D1~D5 构成 8 脉冲发生器(计数器原理),74LS165 是 8 位并行
输入串行输出移位寄存器。CPU 执行 MOVX@R0,A(或 MOVX @DPTR,A)指令
时,数据被锁存在 74LS165 中。产生 8 脉冲信号的时序如图 3 所示。图 3 中,Q0~Q5
分别是 6 个 D 触发器的输出端,扩展串行口片选有效(CE=0),写脉冲 WE 到来时,
WR=0,在时钟脉冲 XTAL2 的上升沿触发器 D0 的输出 Q0=0,Q0 复位 Q5,使
Q5=1;写脉冲结束后,WR=1,则 WR·Q5=1,计数器的复位端无效,计数器开始计
数,同时在 Q1 端输出方波脉冲;第 8 个脉冲结束后,Q5=1,则 WR·Q5=0,计数器
被复位,停止计数,等待下一个写脉冲。Q1 端输出的 8 个脉冲作为同步移位脉冲接
74LS165 的 CLK2(15 脚),同时也是扩展串行输出口的同步移位脉冲输出信号:
由 MOVX 指令锁存在 74LS165 中的数据在同步移位脉冲(CLK)的作用下,从扩展
串行输出口的数据端(DAT)输出。
单片机扩展高速串行同步移位输出口的方法,以及基于 TTL 电路的实现方案,
在 LED 点阵显示屏系统中都已得到成功的应用。扩展串行口采用模块化设计,很容
易移植到其他应用系统中。
结论
我所做的是单片机串行通信发射机,从去年放假我就开始准备。毕业设计完成了,
达到了预期的目的。一开始拿到这个题目的时候,真不知道从哪下手,在老师的指导
下,自己找资料、看书,总算完成了。通过这次的毕业设计,使我对单片机有了更深
的认识,从理论和实践上都得到了很大的提高,所以这次任务的完成是我学到了很多
东西。首先,丰富了自己的知识面,学到了以前没能学通的东西,具体了解了怎样去
完成一个电路的设计:从流程图、电路图、焊接电路板、检查电路板、仿真到烧片一
整套东西。从毕业设计中,学到了单片机 AT89C51 的内部结构及其工作原理,了解
了时钟电路和控制电路的工作原理,还有共阳极数码管的工作原理,巩固了汇编语言
的使用能力,提高了自己动手的能力,学到了很多经验,并且提高了自己分析问题的
能力和创新能力,得到了理论联系实际的机会,做出了成果。使自己在硬件设计方面
树立了信心,为以后从事这方面的工作打好了基础,这也是这次毕业设计的最大收获。
在一开始接触这个题目的时候,真的很茫然,不知道从哪开始下手,不知道单片
机串行发射接口是干什么的?怎么才能做出来?用什么做?这些问题一个都不知道。
后来在薛老师的指导下,才知道我要怎么开始做。自己就开始找资料,了解单片机
89C51、数码显示管的有关知识,学习时钟电路、控制电路的设计原理,看不懂的时
候就去问老师、同学。在这些都搞得比较明白后就开始画设计流程图和电路图,最后
用了很长时间才画出自己的电路图,给老师看后,在老师的帮助下,改正了几处有问
题的地方,定稿后就去买元器件。因为第一次设计电路,因此就多买了一些元件,这
就保证了后面因为焊接错误替换的元器件。电路的焊接比较容易,因为以前有经验,
很快就做出了板子。但接下来的检测可就费了不少劲,因为这次用的实验板与上次电
装实习用的电路板有很大不同,元器件要用导线一个个连接起来,这就要求开始的布
线要合理,因为没有这方面的经验,所以没太注意,结果导致后来的连线比较混乱,
为后面的检查带来了不少麻烦。在后来的电路检测中,就发现不能按要求显示,又是
显示乱码,经过耐心反复的用万用表和示波器检测后,发现并解决了问题。在解决完
所有问题后,自己又一种成功感,还在想,要是没有这些错误,就不会学会这么多检
测电路的方法,而且对自己所做的电路有了进一步的了解。做到这一步满以为不会再
有什么错误了,但是仿真的时候却又遇到了马麻烦,先是数码管不亮,在后来就是全
亮,按键后没反应,刚有的一点成功感马上就没了,又一次陷入了反复的检测。检测
发现了不少问题,解决后仿真成功。在后来就开始烧片,烧片的过程还算顺利。烧好
后插上电路板,显示成功了。接下来的工作一切还算顺利,在老师还有同学的帮助下,
都一一完成。
这次的毕业设计总的来说还是很成功的,自己从中学到很多,也发现了不少问题,
为自己以后的学习、进步打下了不错的基础。
参考文献
[1] Micrel Inc. QwikRadio TM UHF ASK Transmitter[A] .
[2] Micrel Inc. QwikRadio TM Low Power UHF Receiver[A] .
[3] 薛晓书.单片微机原理及接口技术[M].西安石油大学
[4] 黄智伟 朱卫华.单片机与嵌入式系统应用[M].南华大学.
[5] 付浩 AT89C51 单片机高速串行输出口设计[A]淮阴师范学院
致谢
这次的毕业设计之所以能很好的完成,除了自己的努力外,也离不开老师同学的
帮助,特别是薛晓书老师,可以说没有他们的帮助,我就很难完成这次毕业设计。在
此对他们的无私帮助表示感谢。
附录 A
附录 B
发射程序:
org 0000h
sjmp start
org 0030h
start:mov 30h,#00h
mov 31h,#00h
mov a,30h
mov dptr,#ddss
movc A,@a+dptr
cpl a
mov p0,a
mov a,31h
movc a,@a+dptr
cpl a
mov p2,a
main:jb ,m0
lcall dely0
jb ,m0
lcall dely1
lcall z0
m0:jb ,m1
lcall dely0
jb ,m1
lcall dely1
lcall z1
m1:jb ,m2
lcall dely0
jb ,m2
lcall dely1
lcall dely1
lcall z2
m2:jb ,m3
lcall dely0
jb ,m3
lcall dely1
lcall z3
m3:ljmp main
dely0: mov r7,#100
dly0: mov r6,#98
nop
dly1: djnz r6,dly1
djnz r7,dly0
ret
z0: inc 30h
mov a,30h
cjne a,#0ah,abc0
mov 30h,#00h
abc0:mov a,30h
mov dptr,#ddss
movc a,@a+dptr
cpl a
mov p0,a
ret
z1:inc 31h
mov a,31h
cjne a,#0ah,abc1
mov 31h,#00h
abc1:mov dptr,#ddss
mov a,31h
movc a,@a+dptr
cpl a
mov p2,a
ret
z2:mov r5,#00h
mov r4,#0ffh
mov dptr,#ddss
z21:inc r4
lcall dely1
cjne r4,#10,z22
mov r4,#0
inc r5
cjne r5,#10,z22
ret
z22:mov a,r5
movc a,@a+dptr
cpl a
mov p2,a
mov a,r4
movc a,@a+dptr
cpl a
mov p0,a
ljmp z21
z3:mov scon,#50h
mov tcon,#20h
mov th1,#0d9h
mov tl1,#0d9h
mov a,30h
mov sbuf,a
wait0:jbc ti,wait1
sjmp wait0
wait1:mov a,31h
mov sbuf,a
wait2:jbc ti,next
sjmp wait2
next:nop
ret
dely1:mov r7,#250
dly2:mov r6,#250
nop
dly3:djnz r6,dly3
djnz r7,dly2
ret
ddss:db 3fh,06h,5bh,4fh,66h
db 6dh,7dh,07h,7fh,6fh
end