基于at89c51单片机的电子秒表的设计内容摘要:
;对于具有驱 动电路和单片机接口的LCD 显示模块,一般多采用并行接口,对单片机的接口要求较高,占用资源多;另外, AT89C51 单片机本身没有专门的 LCD 驱动接口。 而 LED 数码管作为一种主动显示器件,具有结构简单、亮度高、响应速度快、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或者远距离操作。 因此在本设计中,我们采用两个 3 位数码管作为显示介质。 数码管显示可以分为静态显示和动态显示两种。 由于本设计需要采用两个三位数码管显示时间,如果静态显示则占用的口线多,硬件电路复杂,所以采用动态显示。 动态显示是一位一位地 轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。 通常各位数码管的段选线相应并联在一起,由一个 8 位的 I/O 口控制;各位的公共阴极位选线由另外的 I/O 口线控制。 动态方式显示时,各数码管轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管并送出相应的段码,在另一时刻选通另一数码管,并送出相应的段码,依次规律循环,即可以使各位数码管显示将要显示的字符,虽然这些字符是在不同时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显无锡科技职业学院毕业设计(论文) 电子秒表的设计 11 示的感觉。 数码管的结构及字形码表如图 25 所示。 在设计中,我们采用 LED 图 25 数码管结构图 动态显示,用 P0 口驱动显示。 由于 P0 口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。 电路如图 26 所示。 图 26 显示电路 电源电路 电源电路是 系统 最基本 的部分 ,任何电路都离不开电源部分 ,由于三端集成a bcdegGNDfdpGNDabcefgddpabcdefgdpdpgfedcba+ 5V(a ) (b )无锡科技职业学院毕业设计(论文) 电子秒表的设计 12 稳压器件所组成的稳压电源线路简单,性能稳定,工作可靠,调整方便,已逐渐取代分立元件,在生产中被广泛采用。 系统硬件控制电路 系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与 以上各部分电路合理的连接就组成了系统总电路。 系统总电路图如图 27 所示。 AT89C51 单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。 AT89C51 单片机提供了 XTAL1 和 XTAL2 两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。 图 27 系统总电路图 无锡科技职业学院毕业设计(论文) 电子秒表的设计 13 复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。 按键电路与单 片机的端口连接可以由用户自己设定,本设计中软件复位键和查看键分别接单片机的 和 ,均设为低电平有效。 而另外的开始键和暂停键两键使用了外部中断,所以需要连接到单片机的特殊接口 和 ,这两个 I/O 口的第二功能分别为单片机的外部中断 1 端口和外部中断 0 端口。 同样设置为位低电平有效。 显示电路由五位数码管组成,采用动态显示方式,因此有 8 位段控制端和 5位位控制端,八位段控制接 P0 口, ~ 分别控制数码显示管的 a、 b、 c、 d、e、 f、 g、 dp 显示, AT89C52 的 P0 口没有集成上拉电阻 ,高电平的驱动能力很弱,所以需要接上拉电阻来提高 P0 的高电平驱动能力。 五位位控制则由低位到高位分别接到 ~ 口, NPN 三极管 9013 做为位控制端的开关,当 ~端口任意一个端口为高电平时,与其相对应的三极管就导通,对应的数码管导通显示。 通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全部功能。 无锡科技职业学院毕业设计(论文) 电子秒表的设计 14 第三章 系统软件的设计 待硬件电路接线完成后,通常可先编写简单的测试程序 对硬件电路进行测试,排除硬件电路设计中存在的错误。 然后根据设计任务的要求确定系统程序的整体结构,尽可能采用模块化程序设计的方法,将任务划分为相对独立的功能模块,明确各模块的功能、时间顺序和相互关系,并画出各程序模块的流程图,根据流程图逐一编写程序,最后将各个模块连接成完整的程序。 程序设计的主要思想 本设计决定采用 C 语言进行编写。 首先是考虑到对 C 语言程序的编写比汇编要熟识的多,当然对于程序的编写 C 语言也会方便简单易懂的多。 C 语言的特点: ( 1)程序结构简洁、紧凑、规整,表达式简练、使用灵活。 ( 2) 编写的程序可读性强,编译效率高。 ( 3)具有丰富的运算符,多达 34 种。 丰富的数据类型与丰富的运算符相结合,使 C 语言具有表达灵活和效率高等特点。 ( 4)数据类型种类繁多。 C 语言具有 5 种基本的数据类型和多种构造数据类型以及复合的导出类型,同时还提供了与地址密切相关的指针机器运算符。 指针可以指向各种类型的简单变量、数组、结构和联合,乃至函数等。 此外, C 语言还允许用户自己定义数据类型。 ( 5)是一种结构化程序设计语言,特别适合大型程序的模块化设计。 C 语言具有编写结构化程序所必需的基本流程控制语句, C 语言程序是由函数 集合构成的,函数各自独立,并且作为模块化设计的基本单位。 说明: C 语言的源文件,可以分割成多个源程序,分别进行编译,然后连接起来构成可知性的目标文件,为开发大型软件提供了极大的方便。 C 语言还提供了多种存储属性,使数据可以按其需要在相应的作用域起作用,从而提高了程序的可靠性。 ( 6)语法限制不太严格,程序设计自由度大。 例如,对数组下标越界不作检查,由程序编写者自己保证程序的正确。 一般的高级语言语法检查比较严,能检测出几乎所有的语法错误,而 C 语言允许程序编写者有较大的自由度,因此无锡科技职业学院毕业设计(论文) 电子秒表的设计 15 放宽了语法的检查。 程序员应当仔 细检查程序,保证其正确,而不要过分依赖 C语言编译程序去查错。 ( 7)允许直接访问物理地址,能进行位( bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 因此, C 语言既具有高级语言的功能,又兼容低级语言的许多功能,可用来编写系统软件。 ( 8)生成的目标代码质量高,程序执行效率高。 它一般只比汇编程序生成的目标代码率低 10%~ 20%。 ( 9)具有较高的可移植性。 它的语句基本上无须修改就能用于各种型号的计算机和各种操作系统。 C 语言是处于汇编语言和高级语言之间的一种中间型程序设计语言,常被称为中级语 言。 它既有高级语言的基本特点,又具有汇编语言面向硬件和系统,可以直接访问硬件的功能。 程序流程图设计 这里采用顺序结构,通过对按键的扫描,判断要实现什么功能。 如图 31 所示。 无锡科技职业学院毕业设计(论文) 电子秒表的设计 16 图 31 程序流程图 软件程序的仿真 Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件 ,它 可以仿真、分析 (SPICE)各种模拟器件和集成电路。 该软件的 主要 特点 总结后有以下四点 : ① 实现了单片机仿真和 SPICE 电路仿真相结合 的功能。 ② 支持 目前 主流单片机系统的仿真。 ③ 提供 了 软件调试功能 ,并可以 与 WAVE 联合仿真调试。 ④ 具有强大的原理图绘制功能。 总之,该软件是一款集单片机和 SPICE 分析于一身的仿真软件,功能极其强大。 在电子领域中也起到了很大的作用,它的出现仿真不需要先焊接电路,可以先仿真调试通过后在焊电路,节省了不少在硬件调试上所花的时间。 无锡科技职业学院毕业设计(论文) 电子秒表的设计 17 Proteus ISIS 的工作界面是一种标准的 Windows 界面。 它 包括标题栏、主菜单、状态栏、标准工具栏、绘图工具栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口 等十几个工具,方便了使用者的使用。 Proteus ISIS 绘制原理图的操作与 Protel 99se 绘制原理图的操作基本相同,在这里就不再作赘述。 下面拿本设计中的一个仿真例子作简述说明。 运行 Proteus ISIS 后,绘制 病床呼叫系统 的原理图。 首先打开已经画好的 proteus DSN 文件,双击图中的 AT89C51 芯片,就弹出一个窗口,在 Program File 项中通过路径选择在 WAVE 中生成的 HEX 文件,双击选中后确定,这样仿真图中的 AT89C51 芯片就已经读取了本设计中的 HEX 文件。 单击 “三角形按钮 ”进行仿真。 通过对仿真结果的观察来对程序进行修改, 最终使程序到达设计要求。 仿真图如图 32 所示。 图 32 仿真图 无锡科技职业学院毕业设计(论文) 电子秒表的设计 18 第四章 系统调试 软件程序编译与调试 ( 1)输入源程序 打开 keil软件,输入源程序,输入时应以西文方式输入字母和符号,且中文注释前要加分号。 ( 2)对源程序进行编译和纠错 根据自动编译提供的错误信息逐条纠正错误,直至编译信息提示 “错误 (0)”,编译结束。 ( 3)确定调试方案 在调试程序前一定要认真分析源程序,明确各功能程序运行的预期结果。 然后结合源程序应达到的结果,确定出如何通过某些关键参数和实验现象检验程序运行结果正确与否。 ( 4)调试程序 调试程序时首先要明确程序的具体功能,对程序做认真分析。 程序运行后,观察有无显示,时钟是否工作,运行结果是否正确。 若运行结果不正确,首先应根据程序运行的实际现象分析判断哪些因素可引起相关故障,再通过调试方法逐一认证和排除。 通过反复调试,发现并排除软件与硬件存在的各类问题,以满足系统设计的预期目的。 在编译调试通过以后,生成 hex 文件以待仿真之用。 系统联调 系统联调就是把程序加载到单片机上去进行调试。 首先是把显示程序加载上去,进行调试时,看数码管的显示是否正确,还要看显示的亮度是否 太暗或太亮,是否出现了闪烁现象,如果显示不正确,就检查一下数码管的引脚和单片机的连线是否接错了。 如果有太暗或太亮的问题,说明限流的电阻的电阻值不合理,应适当调整。 如果出现闪烁现象,就要改变一下延时时间,直到合理为止。 然后把整个的设计程序都加载到单片机上去调试。 把单片机放到电路板上,进行整个系统程序的调试。 接上电源,按一下开始按钮。 看一下显示是否正确,时间运行是否符合运行轨迹。 也对照一下数码管显示的次序是否正确。 运行一段时间后,按一下停止按钮,让秒表停止。 无锡科技职业学院毕业设计(论文) 电子秒表的设计 19 致谢 在毕业论文的完成过程中,我首先要感谢我的指导 教师袁芬老师的耐心指导。 老师细心给我们讲解了有关论文的各方面主义的事项,还有有关电子秒表讲解,老师在这一方面给了我们很大的帮助,有不懂的老师细心的给我们讲解,非 常感谢老师。 主要是编程学的不太成功,在老师的细心指导下,然后再加以修改错误,最后完成设计。 在论文的格式和排版问题有很多小地方的错误,经过老师的耐心指导,终于完成了毕业设计。 接着,我还要感谢我的寝室同学和身边的朋友,正是在这样一个团结友爱,相互促进的环境中,在和他们的相互帮助和启发中,才有我今天的小小收获。 这次的毕业设计让我学到了许多东西,让我知 道了做什么事。基于at89c51单片机的电子秒表的设计
相关推荐
完成硬件初始化,子程序调用和程序间的切换,由于本设计要求抢答器具有开始、复位、抢答、三种方式切换功能,所以主程序除了要进行硬件部分的初始化以外还要进行各个程序之间的调用和切换。 主程序 流程图如图46 所示。 程序: void main huang 0。 red 0。 EA 1。 TMOD 0x11。 T2CON 0x01。 TH0 6553650000 /256。 TL0 6553650000
,0x99, //04 0x92,0x82,0xF8,0x80,0x90, //59 0x86,0xAF,0xFF,0x7F,0xBF,}。 //E,r,空格 ,., /***main 函数 ***/ void main(void) { char i,j,k,c。 char a[8],b[8]。 /***定时 1ms***/ TMOD=0。 TL0=(1000/256)。
晶振电路 图22 电子琴系统原理框图 简易电子琴的proteus总体仿真图 电子琴的proteus总体仿真图见图23。 按下MUSICKEY键,系统自动播放预存在内存中的曲子,按下RESKEY键,系统复位,停止播放。 按下矩阵键盘中的任意键,扬声器发出相应的音符。 图23 简易电子琴的proteus总体仿真图 单片机必须在时钟的驱动下才能工作。 在单片机内部有一个时钟振荡电路
1111 1111 1111 1000 FFF8H 1111 1111 0110 1110 FF5EH 1111 1111 0110 1111 FF6FH 55 1111 1100 1001 0000 FC90H 黄河科技学院毕业论文 第 8 页 3 硬件电路及系统原理分析 系统总体设计 系统总体设计图如图 所示。 图 系统总体设计结构图 本系统是以单片机为核心,由数字温度传感器 DS18B温度
亮 35s 6 / 10 1. 软件设计基本思想: 有定时器产生 定时,软件计数得到秒信号 ,设 30s 计数器, 30s 计数器满,绿灯灭、黄灯闪烁 5 次,黄灯灭、红灯亮;同时,另两路口红灯灭、绿灯亮。 总流程图如 下图所示: N N Y N N 开始 南北绿灯亮 东西红灯亮 30s 计时器清 0 30s 时间到。 南北黄灯闪 5 次闪完。 30s 计时器清 0 5 次闪完。 30s 时间到
评阅教师签名: 说明:评定成绩分为优秀、良好、中等、及格、不及格五个等级,实评总分 90—100 分记为优秀, 80—89 分记为良好, 70—79 分记为中等, 60—69 分记为及格, 60 分以下记为不及格。 M 湖南科技学院本科毕业论文(设计)答辩记录表 论文题目 基于 AT89C51单片机的智能电子秤的设计 作者姓名 戴莹莹 所属系、专业、年级 电子工程系 电子信息工程 专业 2020