电子时钟的设计.doc_第1页
电子时钟的设计.doc_第2页
电子时钟的设计.doc_第3页
电子时钟的设计.doc_第4页
电子时钟的设计.doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录目录 1 1 课程设计目的课程设计目的.1 1 2 2 系统方案设计及确定系统方案设计及确定.2 2 2.1 方案的提出 .2 2.2 方案的论证及确定 .2 2.2.1 单片机简介及选择 .2 2.2.2 键盘电路的简介及选择 .4 2.2.3 LED 数码管的简介及选择.5 3 3 系统的硬件设计系统的硬件设计.7 7 3.1 AT89S51 最小系统设计.7 3.1.1 时钟电路硬件设计 .7 3.1.2 复位电路硬件设计 .7 3.2 键盘电路硬件设计 .9 3.3 显示电路硬件设计 .9 3.4 蜂鸣器电路硬件设计 .10 4 4 系统软件设计系统软件设计.1111 4.1 系统主程序设计 .11 4.1.1 系统软件设计内存分配及芯片地址介绍 .11 4.1.2 系统主程序流程图 .11 4.2 定时器的设计 .12 4.3 整点报时 .14 5 5 系统调试系统调试.1515 5.1 调试步骤 .15 5.2 调试过程中的问题及解决方法 .22 6 6 总结总结.2323 7 7 参考文献参考文献.2424 附录附录.2525 附录一:程序清单.25 附录二 系统硬件原理图及 PCB 图 .46 1 1 课程设计目的课程设计目的 单片机体积小、成本低,嵌入到工业控制单元、机器人、智能仪器仪表、 汽车电子系统、武器系统、家用电器、办公自动化设备、金融电子系统、玩具、 个人信息终端及通讯产品中。单片机是计算机技术发展史上的一个重要里程碑, 标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片 机是集成电路技术与微型计算机技术高速发展的产物。体积小、价格低、应用 方便、稳定可靠,因此,给工业自动化等领域带来了一场重大革命和技术进步。 由于体积小,很容易地嵌入到系统之中,以实现各种方式的检测、计算或 控制,这一点,一般微机根本做不到。 由于单片机本身就是一个微型计算机,因此只要在单片机的外部适当增加 一些必要的外围扩展电路,就可以灵活地构成各种应用系统,如工业自动检测 监视系统、数据采集系统、自动控制系统、智能仪器仪表等。 从工业自动化、自动控制、智能仪器仪表、消费类电子产品等方面,直到 国防尖端技术领域,单片机都发挥着十分重要的作用。所以单片机的课程设计 是十分必要的。 灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图 设计,到 PCB 制版,再到软件编程及系统调试实现系统功能,完成课程设计, 加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。 能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能 力。 独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解 决问题的能力,为日后的毕业设计及科研工作奠定良好的基础。 2 2 系统方案设计及确定系统方案设计及确定 2.12.1 方案的提出方案的提出 用单片机及 6 位 LED 数码管显示时、分、秒,以 24 小时计时方式运行,能 整点提醒(短蜂鸣,次数代表整点时间) ,使用按键开关可实现时、分调整,秒 表(或闹钟)/时钟功能转换,以及实现省电(关闭显示)功能。系统框图如下 图 单 片 机 时钟电路 复位电路 键盘电路 显示电路 蜂鸣器电路 2.22.2 方案的论证及确定方案的论证及确定 2.2.12.2.1 单片机简介及选择单片机简介及选择 单片机是集成电路技术与微型计算机技术高速发展的产物。体积小、价格 低、应用方便、稳定可靠,因此,给工业自动化等领域带来了一场重大革命和 技术进步。 由于体积小,很容易地嵌入到系统之中,以实现各种方式的检测、 计算或控制,这一点,一般微机根本做不到。 由于单片机本身就是一个微型计 算机,因此只要在单片机的外部适当增加一些必要的外围扩展电路,就可以灵 活地构成各种应用系统,如工业自动检测监视系统、数据采集系统、自动控制 系统、智能仪器仪表等。20 世纪 80 年代以来,发展迅速,世界一些著名厂商 投放市场的产品就有几十个系列,数百个品种,Intel 公司的 MCS-48、MCS- 51,Motorola 公司的 6801、6802,Zilog 公司的 Z8 系列,Rockwell 公司的 6501、6502 等。此外,荷兰的 Philips 公司、日本的 NEC 公司、日立公司等也 相继推出了各自的产品。 尽管机型很多,但是在 20 世纪 80 年代以及 90 年代, 在我国使用最多的 8 位单片机还是 Intel 公司的 MCS-51 系列单片机以及与其兼 容的单片机(称为 51 系列单片机)MCS-51 系列单片机主要包括 基本型:8031/8051/8751(低功耗型 80C31/80C51/87C51)增强型: 8032/8052/8752。已为我国广大技术人员所熟悉和掌握。在上世纪 80 年代和 90 年代,MCS-51 系列是在我国应用最为广泛的单片机机型之一。 (1)基本型 典型产品:8031/8051/8751。 8031 内部包括 1 个 8 位 CPU、128B RAM,21 个特殊功能寄存器(SFR) 、4 个 8 位并行 I/O 口、1 个全双工串行口,2 个 16 位定时器/计数器,5 个中断源, 但片内无程序存储器,需外扩程序存储器芯片。 8051 是在 8031 的基础上,片内又集成有 4KB ROM 作为程序存储器。所以 8051 是一个程序不超过 4KB 的小系统。ROM 内的程序是公司制作芯片时,代为 用户烧制的。 8751 与 8051 相比,片内集成的 4KB EPROM 取代了 8051 的 4KB ROM 来作为 程序存储器。 (2)增强型 Intel 公司在基本型基础上,推出增强型-52 子系列,典型产品: 8032/8052/8752。内部 RAM 增到 256B,8052、片内程序存储器扩展到 8KB,16 位定时器/计数器增至 3 个,6 个中断源,串行口通信速率提高 5 倍。 表 2-1 列出了基本型和增强型的 MCS-51 系列单片机片内的基本硬件资源。 表 2-1MCS-51 系列单片机片内的基本硬件资源。 与 MCS-51 系列的 87C51 单片机相比,AT89C51/AT89S51 单片机片内的 4KB Flash 存储器取代了 87C51 片内的 4KB EPROM。AT89S51 片内的 Flash 存储器可 在线编程或使用编程器重复编程,且价格较低。 因此 AT89C51/AT89S51 单片机作为代表性产品受到用户欢迎,AT89C5x/AT89S5x 单片机是目前取代 MCS-51 系列单片机的主流芯片之一。本书重点介绍 AT89S51 单片机的原理及应用系统设计。 AT89S5x 的“S”档系列机型是 ATMEL 公司继 AT89C5x 系列之后推出的新机 型,代表性产品为 AT89S51 和 AT89S52。基本型的 AT89C51 与 AT89S51 以及增 强型的 AT89C52 与 AT89S52 的硬件结构和指令系统完全相同。使用 AT89C51 的 系统,在保留原来软硬件的条件下,完全可以用 AT89S51 直接代换。 与 AT89C5x 系列相比,AT89S5x 系列的时钟频率以及运算速度有了较大的提高, 例如,AT89S51 工作频率的上限为 24MHz,而 AT89S51 则为 33MHz。AT89S51 片 内集成有双数据指针 DPTR,看门狗定时器、具有低功耗空闲工作方式和掉电工 作方式。目前,AT89S5x 系列已逐渐取代 AT89C5x 系列。此次设计使用的是 AT89S51。 2.2.22.2.2 键盘电路的简介及选择键盘电路的简介及选择 键盘具有向单片机输入数据、命令等功能,是人与单片机对话的主要手段。 键盘可分为两类:非编码键盘和编码键盘。本报告主要介绍非编码键盘。 非编码键盘是利用按键直接与单片机相连接而成,这种键盘通常使用在按 键数量较少的场合。使用这种键盘,系统功能通常比较简单,需要处理的任务 较少,但是可以降低成本、简化电路设计。按键的信息通过软件来获取。 非编码键盘 分为两种结构:独立式键盘和矩阵式键盘 (1)独立式键盘 独立式键盘特点是:一键一线,各键相互独立,每个键各接一条 I/O 口线, 通过检测 I/O 输入线的电平状态,可容易地判断哪个按键被按下,如图 10-8 所 示。 对于图 3-1 的键盘,图中的上拉电阻保证按键释放时,输入检测线上有稳 定的高电平。 当某一按键按下时,对应的检测线就变成了低电平,与其他按键相连的检 测线仍为高电平,只需读入 I/O 输入线的状态,判别哪一条 I/O 输入线为低电 平,很容易识别哪个键被按下。 (2) 矩阵式键盘 矩阵式(也称行列式)键盘用于按键数目较多的场合,由行线和列线组成,按 键位于行、列的交叉点上。如图 3-2 所示,一个 44 的行、列结构可以构成一 个 16 个按键键盘。在按键数目较多的场合,要节省较多的 I/O 口线。 矩阵中无按键按下时,行线为高电平;当有按键按下时,行线电平状态将 由与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低; 列线的电平如果为高,则行线的电平也为高,这是识别按键是否按下的关键所 在。 由于本设计键盘数目较少故采用独立式键盘。 图 3-1 独立式键盘 3-2 矩阵式键盘 2.2.32.2.3 LEDLED 数码管的简介及选择数码管的简介及选择 LED(Light Emitting Diode)发光二极管缩写。LED 数码管是由发光二极 管构成的。常见的 LED 数码管为“8”字型的,共计 8 段。每一段对应一个发光 二极管。有共阳极和共阴极两种,如图 3-3 所示。共阴极发光二极管的阴极连 在一起,通常公共阴极接地。当阳极为高电平时,发光二极管点亮。同样,共 阳极 LED 数码管的发光二极管的阳极连接在一起,公共阳极接正电压,当某个 发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。 图 3-3 LED 数码管有静态显示和动态显示两种显示方式。 静态显示方式的显示无闪烁,亮度都较高,静态显示方式接口编程容易, 但是占用口线较多(图 3-4) 。 动态显示的优点是硬件电路简单,显示器越多,优势越明显。缺点是显示 亮度不如静态显示的亮度高。如果“扫描”速率较低,会出现闪烁现象(图 3- 5) 。 图 2-4 静态显示 图 2-5 动态显示 基于以上原因本设计采用动态显示。 总结以上选择,我们单片机选用了 AT89S51,键盘选用了非编码式独立式 键盘,数码管选择动态显示。 3 3 系统的硬件设计系统的硬件设计 3.13.1 AT89S51AT89S51 最小系统设计最小系统设计 AT89S51 的最小系统包括时钟电路、复位电路,和 AT89S51 芯片。 3.1.13.1.1 时钟电路硬件设计时钟电路硬件设计 AT89S51 内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片 引脚 XTAL1,输出端为引脚 XTAL2。这两个引脚跨接石英晶体振荡器和微调电容, 构成一个稳定的自激振荡器。C1和C2的典型值通常选择为 30pF。电容大小会影 响振荡器频率高低、振荡器的稳定性和起振的快速性。晶振频率范围通常是 1.212MHz。晶体频率越高,单片机速度就越快。速度快对存储器的速度要求 就高,印制电路板的工艺要求也高,即线间的寄生电容要小。晶体和电容应尽 可能与单片机靠近,以减少寄生电容,保证振荡器稳定、可靠地工作。为提高 温度稳定性,采用温度稳定性能好的电容。常选 6MHz 或 12MHz 的石英晶体。随 着集成电路制造工艺技术的发展,单片机的时钟频率也在逐步提高,已达 33MHz。本设计选用的是 11.0592MHZ。 图 3-1 时钟电路 3.1.23.1.2 复位电路硬件设计复位电路硬件设计 单片机的初始化操作,给复位脚 RST 加上大于 2 个机器周期(即 24 个时钟 振荡周期)的高电平就使 AT89S51 复位。 复位电路采用上电自动复位和按钮复位两种方式。 上电自动复位是给电容C 充电加给 RST 引脚一个短的高电平信号,此信号 随着 VCC对电容C 的充电过程而逐渐回落,即 RST 引脚上的高电平持续时间取 决于电容C 充电时间。为保证系统可靠复位,RST 引脚上的高电平必须维持足 够长的时间。除了上电复位外,有时还需要按键手动复位,本设计采用上电自动 复位和按钮复位结合的方式。 图 3-2 复位电路 下图为 AT89S51 的最小系统 图 3-3AT89S51 的最小系统 3.2 键盘电路硬件设计键盘电路硬件设计 对于图 3-8 的键盘,图中的上拉电阻保证按键释放时,输入检测线上有稳 定的高电平.与门 U5B 的输出为高电平。 当某一按键按下时,对应的检测线就变成了低电平,与其他按键相连的检 测线仍为高电平,与门 U5B 的输出为低电平(向单片机发出中断请求) ,只需读 入 I/O 输入线的状态,判别哪一条 I/O 输入线为低电平,很容易识别哪个键被 按下。 图 3-8 键盘电路 3.3 显示电路硬件设计显示电路硬件设计 本设计采用的动态显示,图 3-9 所示为一个 6 位 8 段 LED 动态显示电路。 其中段码线占用一个 8 位 I/O 口(P0 口) ,而位选线占用一个 6 位 I/O 口(P2 口低 6 位) 。必须采用动态的“扫描”显示方式。即在某一时刻,只让某一位的 位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输 出相应位要有显示的字符的段码(三极管电路起到驱动作用)。 图 3-9 显示电路 3.4 蜂鸣器电路硬件设计蜂鸣器电路硬件设计 当单片机测控系统发生故障或处于某种紧急状态时,单片机系统应能发出 提醒人们警觉的声音报警。用 I/O 口很容易实现该功能。本设计用于整点报时 和闹铃用。 购买市售的压电式蜂鸣器,用一根 I/O 口线驱动蜂鸣器发声。约需 10mA 的 驱动电流,可用 7406 或 7407 低电平驱动,也可以用一个晶体管驱动如图 3-10 所示 图 3-10蜂鸣器电路 4 4 系统软件设计系统软件设计 4.14.1 系统主程序设计系统主程序设计 4.1.14.1.1 系统软件设计内存分配及芯片地址介绍系统软件设计内存分配及芯片地址介绍 定时器 T0、T1 溢出周期为 50MS,T0 为秒计数用, T1 为调整时闪烁及 秒表定时用, P1.0、P1.1、P1.2、P1.3 为调整按钮,P0 口为字符输出口,P2 为扫描口, P1.7 为蜂呜器口,采用共阳显示管。 50H-55H 为闹钟定时单元,60H-65H 为秒表计时单元,72H-75H 为显示时 间单元,76H-79H 为分时计时单元。 03H 标志=0 时钟闪烁,=1 秒表,05H=0,不闹铃,=1 要闹铃. 07H 每秒改 变一次,用作间隔呜叫。 4.1.24.1.2 系统主程序流程图系统主程序流程图 通过不断地调用显示程序可保证在执行其他子程序时保证数码管亮(除省 电模式外) 。 开始 系统初始化 显示子程序 扫描键盘子程序 图 4-1 系统主程序流程图 4.24.2 定时器的设计定时器的设计 定时器 T0、T1 溢出周期为 50MS,T0 为秒计数用, T1 为调整时闪烁及秒 表定时用。 重置T0定时初值 百分位秒位+1 T0中断 服务子程序 1S到? 秒位+1 百分秒位清0秒 分位+1 秒位清0 1分钟到? 1小时到? 小时位+1 分位清0 24小时到? 小时位清0 返回 N Y N Y N N Y Y 图 4-2 用 T0 实现计时流程图 开始 是否按下P1.1 设置键 时间调整模式 是否退出调整 模式 启动闹铃 是否跟闹钟时 间一致 显示时间 Y Y Y Y Y Y Y Y N N N N N N 图 4-3 时间调整流程图 4.34.3 整点报时整点报时 开始 显示时间 蜂鸣器响一次 分钟是否为00? P1.0键是否按下 退出 Y N Y N 图 4-4 整点报时流程图 5 5 系统调试系统调试 5.15.1 调试步骤调试步骤 该程序的调试环境是在星研仿真软件环境里面进行的,通过软禁工具里的 窗口来对 CPU 进行选择,在其窗口工具栏下的数据窗口里观察,以判断时钟是 否正常的进行,再通过仿真机和星研软件相连通,从而进行仿真调试,最终完 成时钟系统的各个功能。 1、建立项目文件。 a)执行 主菜单 | 文件 | 新建 选择“创建项目文件” ,在“项目文件名”中输入您的项目文件名,例 如:example;在“位于哪个目录”中选择一个项目文件存放目录。该目录 名决定编译、连接时生成的所有文件所在目录;该项目文件名决定最终生 成的代码文件的名称。即如果项目文件名叫“Example” ,则最后生成的代 码文件为“Example.dob” 、 “Example.hex”等。 “确定”后,进入下一步。 b) 选择仿真头、您需要仿真的 CPU 的公司、型号。点击“下一步” c) 选择语言 d) 按照您的硬件需要,设置编译、连接控制项。 e) 设置存贮器出借方式。点击“完成” ,您的项目文件建立完毕。 存贮器出借方式分为程序空间出借方式、外部数据空间出借方式。 STAR 系列仿真器 仿真器内有 128K 仿真 RAM,其中 64K 可以出借给您作为程序存贮器,存放 机器码;64K 可出借给您作为数据存贮器,存放外部数据。通常,您借用仿真 RAM 作为程序存贮器,便于调试程序;外部数据空间在您的应用系统上,便于 对您系统上的 I/O、数据 RAM 操作;如果您的线路板还未制成,您也可借用仿 真 RAM。 SUPER ICE16 、SUPER ICE51 仿真器 仿真器内有 64K 仿真 RAM,可以作为您的程序、数据存贮器。以 8K 为 一个单位,可出借给您作为程序、数据存贮器。如果您选中相应的复选框, 该 8K 空间在您的系统上;不选中相应的复选框,该 8K 空间在仿真器上。 通常,您借用仿真 RAM 作为程序存贮器,便于调试程序;外部数据空间在 您的应用系统上,便于对您系统上的 I/O、数据 RAM 操作;如果您的线路板 还未制成,您也可借用仿真 RAM。但要注意您借用的程序空间与您借用的外 部数据空间地址不能重叠,因为仿真器内只有 64K 存贮器(仿真 RAM)。 MCS196 类 CPU 可以根据 INST 引脚区分程序空间和数据空间,如果您不需要 区分程序、数据空间或对于只有 64K 空间的 CPU(如 8098) ,请不要选中使 用 INST 区分程序、数据空间。 SUPER ICE51S 仿真器 仿真器内有 64K 仿真 RAM,可出借给您作为程序、数据存贮器。如果您 选中相应的复选框,该 64K 空间在您的系统上;不选中相应的复选框,该 64K 空间在仿真器上。通常,您借用仿真 RAM 作为程序存贮器,便于调试程 序;外部数据空间在您的应用系统上,便于对您系统上的 I/O、数据 RAM 操 作;如果您的线路板还未制成,您也可借用仿真 RAM。但要注意您存放代码 的区域与存放数据的区域不能重叠,因为仿真器内只有 64K 存贮器(仿真 RAM)。 2、添加模块文件 工作区窗的项目视中,包含“源文件” 、 “头文件” 、 “库文件” 、 “其它文件” , “其它文件”中通常包含对该项目用途作一些说明的文件。 “库文件”通常包含 编译软件自带的 OBJ 文件、LIB 等库文件。 a)如果您的模块文件还没建立,您可以执行 主菜单 | 文件 | 新建 在“文件名”中输入模块文件名,在“位于哪个目录”中,选择一个文件 存放的目录,通常与项目文件名在同一个目录;选中“添加到项目文件中” ,系 统自动将该模块文件加入到项目中。 b)添加已存在的模块文件,库文件 在工作区窗的文件视中按鼠标右键,系统弹出一个菜单,选择“添加文 件” ,选择需要添加到项目文件中的各种文件。在选择文件时,按住“Ctrl” , 一次可添加多个文件。 使用 主菜单 | 项目 | 添加文件,也可以添加文件。 c)在文件窗中,按鼠标右键,系统弹出一个菜单,选择“添加文件至项目” , 即可将当前文件添加至项目中。 工作区窗的“Examples”视中包含有一些例子,根据您使用的编译软件,可 以选择相应的例子。 3、编辑程序 在工作区窗的项目视中,用鼠标双击程序文件名,即可打开相应的文件, 编辑程序。 4、设置项目文件 a)在工作区窗的项目视中按鼠标右键,系统弹出一个菜单,选择“设置项 目文件” ,可以重新选择仿真头、CPU 的公司、型号、编译软件、设置编 译软件、存贮器出借方式。 b)使用 主菜单 | 项目 | 设置项目文件,也可以设置项目文件。 5、删除模块文件 在工作区窗的文件视中,选择需要删除的模块文件名: a)按 Del 键。 b)按鼠标右键,系统弹出一个菜单,选择“删除文件” ,即可把它从项目 文件中去除。 c)使用 主菜单 | 项目 | 删除文件。 2 编译、连接 星研集成环境软件不带任何编译软件,请根据您使用的编译软件设置工作 环境 1、设置工作环境 根据您在项目文件中选择的语言、编译器所在目录,设置以上路径。 2、启动编译、连接 对工作区窗项目视的“源文件”中所有模块文件编译,如果没有错误, 再与“库文件”中所有库文件连接,生成代码文件(DOB、HEX 文件) 。 a) 在工作区窗的项目视中按鼠标右键,系统弹出一个菜单,选择“编译、 连接”或“重新编译连接” b) 使用 主菜单 | 项目 | 编译、连接 或主菜单 | 项目 | 重新编译、 连接 ” 。 “编译连接”与“重新编译、连接”区别:“重新编译、连接”不管 项目中有无添加、删除模块文件、编译软件是否变化、编译控制项有无修 改、模块文件有无修改,对“源文件”中所有模块文件编译,如果没有错 误,再与“库文件”中所有库文件连接,生成代码文件(DOB、HEX 文件) 。 3、编译、连接结果 编译、连接过程中产生的信息显示在信息窗的“建立”视中。如有错误、 警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上, 回车,系统自动打开对应的出错文件,并定位于出错行上。 进入调试状态 在进入调试状态以前,请正确设置通信口:执行 主菜单 | 辅助 | 通信 。 仿真器配套的通信线可以与微机并口相连,即为并口通信线,如果并口地 址是 378H,请选择并口 1;并口地址是 278H,请选择并口 2;并口地址是 3BCH,请选择并口 3。 仿真器配套的通信线可以与微机串口相连,即为串口通信线: 波特率 STAR 系列、SUPER ICE51S 使用串口通信时,波特率可以选择 115200。 如果您选择串行通信,您可在此选择一个合适的波特率。通常,您可以选 择缺省,一般情况下,星研集成环境软件会自动选择一个合适的波特率,用于 仿真器与微机之间的通信,但是,对于有的微机可能选择的不合适,出现无法 联机,或者过了几分钟,状态条中仍然出现“正在通信”标志,按 Esc 键,退 出联机状态,然后,由高(通常 57600)到底,选择波特率,重新联机。 校验 通常您不必选中它,可以提高传送 DOB/HEX 文件时的速度。 如果编译、连接正确后,可以开始调试程序。进入调试状态方法: a)执行 主菜单 | 运行 | 进入调试状态 b)点击工具条的 c)执行 主菜单 | 运行 | 装载 DOB、HEX、BIN 文件 在信息窗的“装载”视中,显示装载的代码文件,装载的字节数,装载 完毕后,显示启始地址,结束地址。 装载完毕后,进入调试状态,可以根据您的需要,在 主菜单 | 查看 中打开:寄存器窗、存贮器窗 1、2、3、观察窗、变量窗、反汇编窗。您也 可以通过 主菜单 | 辅助 | 设置 | 格式,设置每一种窗口使用的字体、 大小、颜色。移动窗口到您喜欢的位置、大小。 首先在“种类”中选择一个窗口,然后选择“字体” 、 “大小” ,在“颜 色”中选择某一类,在“前景” 、 “背景”中选择您喜欢的颜色。 对于高级语言,在您的程序前有一段库文件提供的初试化代码,(当 前可执行标志)不会出现在您的文件行上,如果您使用 C 语言,可将光标移 到 main 函数上,按 F4 功能键,让 CPU 全速运行到 main 行上后停下;如果 您使用 PL/M 语言,按 F7 功能键,让 CPU“单步进入” ,运行到您的任何一 个可执行后停下。 您可以使用以下命令调试您的程序: 设置或清除断点(功能键为 F2) 在当前光标行上设置或清除一个断点 单步进入(功能键 F7) 单步执行当前行或当前指令,可进入函数或子程序。SUPER ICE16、SUPER ICE51“单步进入”时,不响应中断。 连续单步进入(功能键 Ctrl + F7) 连续执行“单步进入” ,用鼠标点击或按任意键后,停止运行。SUPER ICE16、SUPER ICE51“单步进入”时,不响应中断。 单步(功能键 F8) 单步执行当前行或当前指令,将函数或子程序作为一条指令来执行。如 果当前行中含有函数、子程序、或发生中断,CPU 将执行完整个函数、子程 序、或中断,停止于当前行或当前指令的下一有代码的行上。SUPER ICE16、SUPER ICE51“单步”时,不响应中断。 连续单步(功能键 Ctrl + F8) 连续执行“单步” ,用鼠标点击或按任意键后,停止运行。SUPER ICE16、SUPER ICE51“单步”时,不响应中断。 运行到光标行(功能键 F4) 从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击, 停止运行。 全速断点(功能键 F9) 从当前地址开始全速运行用户程序,碰到断点或用鼠标点击,停止运 行。 全速运行(功能键 Ctrl + F10) 从当前地址开始全速运行用户程序,此时,按用户系统的复位键,CPU 从头开始执行用户程序,即对于 MCS51 类 CPU 是从 0 开始执行;对于 MCS96、MCS196 类 CPU 是从 2080H 开始执行。用鼠标点击,停止运行。 停止运行 终止微机与仿真器之间通信(功能键 ESC) 。 5.2 调试过程中的问题及解决方法调试过程中的问题及解决方法 在调试的过程中,由于源程序有多处错误,在编译时会出现提示,这个时 候我们会根据提示对错误的地方进行修改,从而使程序编译成功。虽然编译成 功了,但是这只是代表程序的语法方面没有错误,还有可能存在逻辑上的错误, 这样也会导致仿真的不正确,从而使得仿真无法通过,这个时候就需要进行单 步调试,有的时候也需要设置断点,或者是执行到光标处,运用这些指令,从 而将程序进行进一步的调试。 6 总结总结 为期三周的单片机课程设计结束了,令我感到非常高兴,因为我真正的学 到了东西,正所谓严师出高徒,在老师的严格要求下,在我看来基本是完不成 的任务,我按时完成了。以前的实训真的不可与课程设计同日而语,课程设计 不仅锻炼我们的动手能力,而且还有自主学习的能力以及团队协作的能力,实 训时老师要从旁指导,全程监督,而课程设计完全交给了我们自己去完成,交 给了我们自己的团队。 人们都说看花容易绣花难,通过这此课程设计我深刻的理解了这个道理。 这次课程设计,遇到了很多的困难,编写程序我们就研究了好久,有时做梦都 能梦见写程序,达到了日有所思夜有所梦的地步。不过在我和我们组长和组员 细心地研究,终于写出来了、去实验室去验证也和我们所想的一样。我们实验 不只一次,有时我还要在晚上去实验室,去验证我的程序。功夫不负有心人, 我们达到了我们想要的效果。我深深地知道这是老师在培养我们自学习的能力, 在学校有很好的老师告诉你,他们愿意倾囊相授,但是不是那种你问什么老师 就回答你,因为这样做会导致我们毕业之后什么也不会。遇到新的事物就不会 去认识它,因为我们在大学没有学到认识新事物的本领。后来我试着编写,终 于实现了我想要的功能,我非常有成就感。 通过了这次课程设计,我不仅大大提高了系统设计和软件编程的能力,自 身的各方面的素质也得到了提高。同时也培养了我的团队协作精神。一个人很 难完成的任务,通过团队便可以在最短的时间和最高的质量完成,不过前提是 要知道如何运用团队里的成员,要知道他们各自的长处,好好利用,才能得到 事半功倍的效果,否则适得其反。这次课程设计不仅充实了我的自动化专业知 识,扩大了知识面,增强分析问题和解决问题的能力,也提高自学的能力与软 件开发能力,为今后的工作打下了坚实的基础。感谢老师们辛苦的带着我们学 习新的东西! 7 参考文献参考文献 1谷树忠,刘文洲,姜航Altium Designer 教程电子工业出版社,2010 2 周航慈. 单片机应用程序设计技术M.北京航空航天大学出版社, 2011.2 3 李光才单片机课程设计实例指导M北京:北京航空航天大学出版社 2004 4 赵文博单片机语言 C51 程序设计M北京:人民邮电出版社, 2005,10 5 徐爱钧, 彭秀华. 单片机高级语言 C51 应用程序设计M.北京航空航天大 学出版社,2006 6于殿泓,王新年单片机原理与程序设计实验教程M西安电子科技大学 出版社,2007.8 附录附录 附录一:程序清单附录一:程序清单 ; AT89S52 时钟程序 ; ; ;* * ;定时器 T0、T1 溢出周期为 50MS,T0 为秒计数用, T1 为调整时闪烁及秒表定 时用, ;P1.1、P1.2、P1.3 为调整按钮,P0 口为字符输出口,P2 为扫描口,P1.2 为蜂 呜器口,采 ;用共阳显示管。 ;50H-55H 为闹钟定时单元,60H-65H 为秒表计时单元,72H-75H 为显示时间单 元,76H-79H ;为分时计时单元。 ;03H 标志=0 时钟闪烁,=1 秒表, 05H=0,不闹铃,=1 要闹铃. 07H 每 秒改变一次, ;用作间隔呜叫. ;* * DISPFIRST EQU 30H ;显示首址存放单元 BELL EQU P1.7 CONBS EQU 2FH ;存放报时次数 ; ;* ; 中断入口程序 ; ;* ; ORG 0000H ;程序执行开始地址 LJMP START ;跳到标号 START 执行 ;ORG 0003H ;外中断 0 中断程序入口 ; LJMP INT00 ;外中断 0 中断返回 ORG 000BH ;定时器 T0 中断程序入口 LJMP INTT0 ;跳至 INTTO 执行 ORG 0013H ;外中断 1 中断程序入口 LJMP INT01 ;外中断 1 中断返回 ORG 001BH ;定时器 T1 中断程序入口 LJMP INTT1 ;跳至 INTT1 执行 ORG 0023H ;串行中断程序入口地址 RETI ;串行中断程序返回 ; ;* ; 以下程序开始 ; ;* ;整点报时用 QQQQ: MOV A,#10 MOV B,79H MUL AB ADD A,78H MOV CONBS,A CJNE A,#00H,BSLOOP MOV CONBS,#24H BSLOOP: JNB P1.0,INT_00 LCALL DS21MS LCALL DL1S LCALL DL1S ;LCALL DL1S DJNZ CONBS,BSLOOP S1: CLR 08H ;清整点报时标志 AJMP START1 INT_00:LCALL DS20MS ;消抖 JB P1.0,BSLOOP WALL1 : LCALL DISPLAY ;等键 释放 JNB P1.0, WALL1 AJMP S1 ; ;* ; 主程序开始 ; ;* ; START: MOV R0,#00H ;清 00H-7FH 内存单元 MOV R7,#80H ; CLEARDISP: MOV R0,#00H ; INC R0 ; DJNZ R7,CLEARDISP ; MOV 20H,#00H ;清 20H(标志用) MOV 55H,#1 MOV 54H,#2 MOV 7AH,#0AH ;放入熄灭符数据 MOV TMOD,#11H ;设 T0、T1 为 16 位定时器 MOV TL0,#00H ;50MS 定时初值(T0 计时用) MOV TH0,#4CH ;50MS 定时初值 MOV TL1,#00H ;50MS 定时初值(T1 闪烁定时用) MOV TH1,#4CH ;50MS 定时初值 SETB EA ;总中断开放 SETB ET0 ;允许 T0 中断 SETB TR0 ;开启 T0 定时器 MOV R4,#14H ;1 秒定时用计数值(50MS20) MOV DISPFIRST,#70H ;显示单元为 70-75H ;以下主程序循环 START1: LCALL DISPLAY ;调用显示子程序 JB 08H, QQQQ INT01: JNB P1.1,SETMM1 ;P1.1 口为 0 时转时间调整程序 JNB P1.2,TSFUN ;定时闹铃设定 JNB P1.3,FUNPT ;秒表功能(STOP,RUN,CLR AJMP START1 ;P1.1 口为 1 时跳回 START1 FUNPT: LJMP FUNPTT START12: LJMP START1 ;以下闹铃时间设定程序,按 P1.2 进入设定 TSFUN: LCALL DS20MS JB P1.2,START1 ; WAIT113: JNB P1.2,WAIT113 ;等待键释放 JB 05H,CLOSESP ;闹铃已开的话,关闹铃 MOV DISPFIRST,#50H ;进入闹铃 52-55H 闹钟定时单元 DSWAIT: SETB EA LCALL DISPLAY JNB P1.3,DSFINC ;分加 1 JNB P1.1,DSDEC ;分减 1 JNB P1.2,DSSFU ;进入时调整 AJMP DSWAIT CLOSESP: CLR 05H ;关闹铃标志 CLR BELL AJMP START1 DSSFU: LCALL DS20MS ;消抖 JB P1.2, DSWAIT LJMP DSSFUNN ;进入时调整 SETMM1: LJMP SETMM ;转到时间调整程序 SETMM DSFINC : L

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论