基于51单片机的数字钟设计-毕业设计论文(编辑修改稿)内容摘要:

再调校时均不向上一单位进位(例如分加到 59 后变为 00;但小时不发生改变)。 按键的开关状态通过一定的电路转换为高、低电平状态。 按键闭合过程在相应的 I/O 端口形成一个负脉冲。 闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。 抖动持续时间的常长短与开关的机械特性有关,一般在 510ms 之间。 为了避免 CPU 多次处理按键的一次闭合,应采用措施消除抖动。 本文采用的是独立式按键,电子综合设计论文 9 直接用 I/O 口线构成单个按键电路,每个按键占用一条 I/O 口线,每个按键的工作状态不会产生互相影响。 4 硬件设计 图 LED 电路图 由 MCS51 单片机系统的硬件原理图可知, 8位数码管的显示由 SEL1— 8端控制由哪个数码管显示,由 SEG_AG 端控制显示的数据,同时这两个端口都与 P0 口相接的74HC573 的输出有 关,而控制端分别为与非门输出口的 CS_LED_SEL11, CS_LED_SEG11,由此找到 CS3, CS2与非门输入端,同时 CS3, CS2 为 HC138 译码器的输出,由高 8 位的 A8,9,10,15 控制,故可通过对高 8位的设置从而来控制数码管的显示。 电子综合设计论文 10 图 74HC138 芯片图 图 或非门电路 图 74HC573芯片图 电子综合设计论文 11 5 软件设计 图 主程序定时器的程序流图 电子综合设计论文 12 图 中断服务以及显示 电子综合设计论文 13 6 系统测试 硬件: MCS51 单片 机系统 一片一片,计算机一台,通讯电缆一根,数据线一根。 软件: Windows XP 操作系统、 Keil51 软件, SoftICE 监控程序。 硬件测试 先检测单片机与计算机的连接问题,将单片机设置为可控制状态;由于我们拿到的是现成的 51单片机,首先编先一段程序检测 LED 数码管是否完好 ,同时利用这个小程序可以检测数码管是共阴极还是共阳极类型,查看晶体振荡器的振荡频率,复位是否有效,电源是否接通好等硬件设施。 软件测试 SoftICE 的下载与使用: SoftICE 的英文是 Software In Circuit Emulator 的简称,其翻译成中文就是在线 的软件仿真器的意思,它是 SST 公司为方便 SST用户在使用 SST 单片机(包括 SST89C5xSST89x564RD/554RC/516RD2/5XRD2 )调试程序所开发的开发工具,这个 SST 的仿真器功能可以代替大部分的专用仿真器的功能,使单片机工程师在开发单片机时省却了价格昂贵的仿真器和编程器,使得 51 单片机的开发更加容易和普及并且 SST的单片机价格便宜,出厂时就包含了在线下载和在 线仿真的功能。 SoftICE 监控程序占用 89E516RD 的 MCU 的 5Kbyte 程序空间为: BLOCK1 的 4Kbyte 从 0000h 到 0FFFh BLOCK0 的 1Kbyte 从 FC00h 到 FFFFh 由于 SST 的 MCU 在出厂时已经将 BOOT LOADER 的下载监控程序写入到芯片中,因此无需编程器就可通过 SST BOOTSTRAP LOADER 软件工具将用户程序下载到 SST 的 MCU中,电子综合设计论文 14 从而运行用户程序。 SST BOOTSTRAP LOADER 软件工具还可将原来的 MCU 内部的下载监控程序转 换为SoftICE 的监控程序从而实现 SOFTICE 的仿真功能。 执行 软件运行 SST BootStrap Loader,在内部模式下检测到对应器件的型号后, SoftICE 固件通过按 SoftICE 菜单下“ Download SoftICE”选项下载,便将 SoftICE 固件下载到 MCU, 在 BLOCK1 的 SST BootStrap Loader 会被 SoftICE固件代替,详细操作步骤如下: 选择连接的串口,选择 Detect Target MCU for and RS232 Config: 选择芯片型号和内部存储器模式,选择 SST89E/V516RD2 和 Inter Memory: 选择串口波特率 MCU的晶振频率,串口号为 COM1,晶振频率为 : 按确定后再重新复位 MCU: 如果通讯成功在窗口的右上角可以显示出芯片的型号及 BOOT LOADER 的版本信息: 点击 DOWNLOAD SOFTICE 的按钮即可将 MCU 内部的 BOOT LOADER 的监控程序更换为 SOFTICE 的监控程序: 点击确定 按钮确认转换为 SOFT ICE 的监控程序: 这是转换后的提示信息,说明转换 SOFTICE 监控程序成功: 此时这片 SST89E516RD 芯片便具备了 SOFTICE 的在线仿真的功能。 若要将 Keil C 编译生成的 HEX 文件下载到 MCU 中,则在通讯成功(参见 5)后,点击 Download 或者 Dnload/Run UserCode: 1点击浏览后选择需要下载的 HEX 文件,然后点击“ OK”确定: 1然后点击“是”确认下载,或者点击“否”放弃下载。 实施过程 :点亮最右边的数码管,显示设定的数字 ORG 0000H JMP MAIN。 转入主程序 ORG 0100H。 主程序 MAIN: MOV A,0FEH。 选择最右边的数码管 MOV DPTR,8300H。 通过 SEL 选择数码管地址端 MOVX @DPTR,A。 将最右边数码管的地址传给低 8 位 p0 口,点亮 MOV A,3FH。 设置显示数字, 0 MOV DPTR,8200H。 通过 SEG 选择显示的数据 MOVX @DPTR,A。 将要显示的数据的地址传给低 8 位 p0 口,显示 LJMP MAIN。 使程序一直在主程序中,之前少了这句,编译 电子综合设计论文 15 通过,却运行不了 END :点亮最右边的数码管,从 TAB 字表中选择想要显示的数字 ORG 0000H JMP MAIN ORG 0100H MAIN: MOV 7EH,3。 用地址 7EH 做十进制数据 3 的缓冲区 MOV R0, 7EH。 将数据 3 寄存在 R0 寄存器 MOV DPTR,TAB。 将 DPTR 指针指向字表 MOV A,R0。 把 R0 中的数据放到 A 中,注意区别于 A,@R0 MOVC A,@A+DPTR。 从字表中取出从 0 开始的编号为 3 的数存在 A MOV DPTR,@8200H。 显示 A 中的数据 MOVX @DPTR,A MOV A,@0FEH。 选择最右边的数码管 MOV DPTR,@8300H MOVX @DPTR,A TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END :用定时器 T0 在秒位(最右边的数码管)上实现 1S 加 1 显示 初始值的计算: 模式 0 最长定时约 16ms, 模式 1 最长可定时约 130ms, 模式 2 最长可定时约 510us 要实现 1s 定时,可选择模式 1,每个 50ms 中断一次,中断 20 次为 1s。 根据公式,设初值为 X ( 216 X) *12/(12*106HZ)=50*103s 所以算得 X =15536=3CB0H 故初值 ( TL0) =0B0H,(TH0)=3CH 代码: ORG 0000H JMP MAIN ORG 000BH。 T0 中断入口 AIMP SERVE。 转入中断 ORG 0030H 电子综合设计论文 16 MAIN:。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。