基于51单片机数字时钟课程设计论文内容摘要:

30pF 之间,对外接电容的值没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。 由于单片机要进行串行通信,为了获得准确的波特率,选择晶振的频率为 12MHz。 图 时钟电路 10 LCD1602 的 结构及工作原理 LCD1602 可以显示 2 行 16 个字符,有 8 位数据总线 D0D7,和 RS、 R/W、EN 三个控制端口,工作电压为 5V,并且带有字符对比度调节和背光。 该模块也可以只用 D4D7 作为四位数据分两次传送。 这样的话可以节省 MCU 的 I/O口资源。 LCD1602 引脚说明 如表 所示 : 表 LCD 液晶显示器各引脚功能及结构 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 双向数据口 2 VDD 电源正极 10 D3 双向数据口 3 VL 对比度调节 11 D4 双向数据口 4 RS 数据 /命令选择 12 D5 双向数据口 5 R/W 读 /写选择 13 D6 双向数据口 6 E 模块使能端 14 D7 双向数据口 7 D0 双向数据口 15 BLK 背光源地 8 D1 双向数据口 16 BLA 背光源正极 注意事项 : 从该模块的正面看,引脚排列从右向左为: 15 脚、 16 脚,然后才是 1- 14 脚 (线路板上已经标明 )。 VDD:电源正极, - ,通常使用 5V 电压; VL: LCD 对比度调节端,电压调节范围为 0- 5V。 接正 极 时对比度最弱,接地电源时对比度最高,但对比度过高时会产生 “鬼影 ”,因此通常使用一个 10K的电位器来调整对比度,或者直接串接一个电阻到地; RS: MCU 写入数据或者指令选择端。 MCU 要写入指令时,使 RS 为低电平; MCU 要写入数据时,使 RS 为高电平; R/W:读写控制端。 R/W 为高电平时,读取数据; R/W 为低电平时,写入数据; E: LCD 模块使能信号控制端。 写数据时,需要下降沿触发模块。 D0- D7: 8 位数据总线,三态双向。 如果 MCU 的 I/O 口资源紧张的话,该模块也可以只使用 4 位数据线 D4- D7 接口传送数据。 本充电器就是采用 4位数据传送方式; BLA: LED 背光正极。 需要 背光时, BLA 串接一个限流电阻接 VDD, BLK接地,实测该模块的背光电流为 50mA 左右; BLK: LED 背光地端。 11 LCD1602 与单片机连接如图 所示。 +5 2 3 1K 1 16 GND 6 15 5 4 图 LCD 与单片机连接图 3 系统软件设计 系统软件设计概述 该软件系统的设计主要包含 以下几个子程序模块 :初始化 程序 模块、 按键扫描 子程序 模块、 显示 程序 模块等。 通过 系统的源程序代码 能 够 实现以下功能: 、日期、星期。 系统主程序设计 程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,再判断是否有按键按下。 若有按键按下则转到相应的功能程序执行,没有按键按下则调用 时间程序。 若没到则循环执行。 计时中断服 务程序完成秒的计时及向分钟、小时的进位和日期、星期的进位。 VDD D7 D6 VL D5 D4 D3 VSS D2 BLK D1 D0 E BLA R/W RS LCD1602 MCU 12 调时闪烁中断服务程序用于被调单元的闪烁显示。 调时程序用于调整分钟、小时;整日期的程序用于调整年、月、日;主要由 main( )组成通过对相关子程序的调用,如图 所示。 实现了对时间的设置与修改、 LCD 显示数值等主要功能。 相关的调整是靠对功能键的判断来实现的。 图 主程序流程图 4 系统调试 系统硬件调试 1)显示器部分调试为了使调试顺利进行,首先单片机与 LCD 显示分离,这样就 可以用静态方法先测试 LCD 显示,分为两个步骤:第一,对其进行初始化(即写入命令控制字,最好定义为输出方式)后;第二,将单片机与 LCD 结合起来,借助开发机,通过编制程序进行调试。 若调试通过后,就可以编制应用程序了。 2)键盘调试一般显示器调试通过后,键盘调试就比较简单,完全可以借助于显示器,利用程序进行调试。 利用开发装置对程序进行设置断点,通过断点可以检查程序在断点前后的键值变化,这样可知键盘工作是否正初始化 时钟 子程序 按键 扫描子程序 延时子程序 开 始 结束 13 常。 软件调试 软件编程环境 keil 介绍 a. Keil工程的建立 从桌面上直接双击 uVision 的图标以启动该软件。 UVison 启动后,程序窗口的左边有一个工程管理窗口,该窗口有 3 个标签,分别是 Files、 Regs、和 Books。 ( 1)源文件的建立 使用菜单 “FileNew”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本 编辑 窗口,在该窗口中输入汇编语言源程序,保存该文件,注意必须加上扩展名(汇编语言源程序一般用 .asm 或 a51 为扩展名)。 ( 2)建立工程文件 点击 “ProjectNew Project”菜单,出现一个对话框,要求给将要建立的工 程起一个名字,你可以在 编辑 框中输入一个名字(设为 321),不需要扩展名。 点击 “保存 ”按钮,出现第二个对话框,如图 所示。 图 选择目标 CPU 选择 ATMEL 公司的 STC89C51 芯片。 点击 ATMEL 前面的 “+”号,点击其中的 STC89C51,然后再点击 “确定 ”按钮,回到主界面,点击工程窗口的文件页的 “Target1”,前面的 “+”号,可以看到下一层的 “Source Group1”,点击 “Source 14 Group1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图 所示。 选中其中的 “Add file to Group Source Group1”,出现一个对话框,点击对话框中 “文件类型 ”后的下拉列表,找到并选中 “*.C Source File(*.C)”,这样,在列表框中就可以找到。 图 加入文件 双击 文件,将文件加入项目,然后点击 “Close”即可返回主界面,返回后,点击 “Source Group 1”前的加号,会发现 文件已在其中。 双击文件名,即打开该源程序。 b. 工程的 详细设置 工程建立好以后,还要对工程进行进一步的设置,以满足要求。 首先点击左边 Project 窗口的 Target 1,然后使用菜单 “ProjectOption for target„target1‟”即出现对工程设置的对话框,这个对话框可谓非常复杂,共有 8个页面,要全部搞清可不容易,好在绝大部份设置项取默认值就行了。 设置对话框中的 Target 页面,如图 所示。 图 对目标进行设置 Xtal后面的数值是晶振频率值,默认值是所选目标 CPU的最高可用频率值, 15 一般将其设置成与你的硬件 所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为 12MHZ。 设置对话框中的 Out Put 页面,如图 所示,这里面也有多个选择项,其中 Creat Hex file 用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX 格式文件,文件的扩展名为 .HEX),默认情况下该项未被选中,如果要写片做硬件实验,就必须选中该项。 其余均保持默认情况,设置完成后按确认返回主界面,工程文件建立、设置完毕。 图 对输出进行控制 c. 编译、连接 在设置好工程后,即可进行编译、连接。 选择菜单 ProjectBuild target,对当前工程进行连接。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。