单片机原理课程设计(论文)单片机数字时钟的设计_第1页
单片机原理课程设计(论文)单片机数字时钟的设计_第2页
单片机原理课程设计(论文)单片机数字时钟的设计_第3页
单片机原理课程设计(论文)单片机数字时钟的设计_第4页
单片机原理课程设计(论文)单片机数字时钟的设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理单片机原理 课课 程程 设设 计计 论论 文文 题目题目: : 单片机数字时钟的设计单片机数字时钟的设计 学 生 姓 名: ywh 学号:070108041124 学 部 (系): 信息学部 专 业 年 级: 07 自动化 4 班 指 导 教 师: 职称或学位: 20102010 年年 0707 月月 1111 日日 目录目录 第一章第一章 设计要求设计要求.3 第二章第二章 单片机简介单片机简介.3 2.1 概述.3 2.2 单片机的发展历程.4 2.3 时钟的特性.4 第三章第三章 系统原理与硬件设计系统原理与硬件设计.5 3.1 硬件选择.5 3.2 单片机的构成.5 3.3

2、at89c52 单片机的引脚说明.6 3.4 led 简介.7 第四章第四章 软软件件设设计计.9 第五章第五章 调试过程及数据分析调试过程及数据分析.13 5.1 硬件调试.13 5.2 keil 调试.14 5.3 开发板调试.14 第六章第六章 结论与总结结论与总结.15 参考文献参考文献.16 第一章第一章 设计要求设计要求 题目:数字时钟的设计 1、 任务简介: 时钟在生产、生活中具有相当重要的作用。数字式时钟直接用数字显示时间, 读数直观,并且具有一定的实用功能。本设计要求利用单片机完成一个数字时 钟的设计。 2、 设计要求: (1) 系统硬件设计:利用单片机实验板完成设计要求(已

3、有) ; (2) 系统软件设计:完成控制软件的编写与调试; (3) 功能要求: 1) 6 位数码管显示小时、分钟,秒(例如:18:30:30) ; 2) 可通过键盘调校当前时间; 3) 具有整点提示功能(例如蜂鸣器鸣响半分钟) ,具有整点报时功能(例如十 点响十声) ; 4) 1 个 led 每秒闪烁一次,指示秒针动作; 5)具有定时功能,可通过键盘设定及查询定时时间;定时时间到,有蜂鸣器提 示。 第二章第二章 单片机简介单片机简介 2.1 概述概述 随着电子技术的迅速发展,特别是随着大规模集成电路产生而出现的微型 计算机,给人类生活带来了极大的方便。走入家庭,从洗衣机、微波炉到音响、 汽车,

4、到处都可以见到单片机应用的踪影。如果说微型计算机技术的出现使现 代科学研究得到了质的飞跃,那么也可以毫不夸张的说:“单片机技术的出现 则是给现代工业测控领域带来了一次新的工业革命” 。目前,单片机以其可靠性 高和智能性等特点被广泛应用到工业控制系统、数据采集系统、智能化仪器仪 表、办公自动化等领域中,并已经进入家庭,因此,单片机技术的开发和应用 水平已经逐步成为一个国家自动化发展水平的标志之一。 2.2 单片机的发展历程单片机的发展历程 单片机是微型计算机的一个重要分支,也是一种非常活跃和颇具生命力的 机种,特别适用于工业控制领域。1971 年微处理器研制成功不久,就出现了单 片机,但最早的单

5、片机是 1 位的,处理能力有限。单片机的发展共分四个阶段: 第一阶段是初级阶段,功能非常简单;第二阶段是低性能阶段, 16 位定时器/ 计数器,片内 rom、ram 容量加大,直到现在仍被广泛应用,是目前应用数量较 多的单片机。 、32 位单片机推出阶段,以满足不同的用户需要。纵观单片机几 十年的发展历程,单片机的今后发展方向将向多功能、高性能、高速度、低功 耗、低价格、外围电路内装化以及内存储器容量增加和 flash 存储器化方向发 展。 2.3 时钟的时钟的特性特性 省电(关闭显示)功能(2)以 24h(小时)计时方式(3)白来整点报时, 晚上 22 点后不报时(4)用六位 led 数码管

6、显示时、分、秒(5)使用按键开 关可实现时分调整、秒表功能转换(6)使用按键开关可实现时分调整、时钟功 能转换等功能。 这里用到中断,50ms 的产生一次。然后累加到 20 次,秒表就加 1.。每 60 秒分值加 1。 每 60 分时加 1,每 24 小时日加 1. 第三章第三章 系统原理系统原理与硬件设计与硬件设计 3.1 硬件硬件选择选择 (1)单片机的选择 选用 at89c52 单片机,并配备 12mhz 晶振,复位电路 采用上电复位。 (2)显示电路选择 采用软件译码动态显示,p3.0-p3.3 作数码管的位选 口。p1.0-p1.6 作数码管的段选口。考虑直接用单片机 i/o 口作位

7、选时驱动功 率不够, (3)电源选择 采用直流 5v 电源供电。 (4)选择器的选择 74ls04。 (5)ctc89c52 单片机是一种低功耗,高性能的片内含有 4kb 可编程/擦除 只读存储器(fperomflash programmable and erasable read only memory)的 8 位 coms 微控制器,使用高密度,非易失存储技术制造,并且与 at89c52 引脚和指令系统完全兼容。芯片上的 flash 允许在线编程或采用通用 的非易失存储编程器对存储器重复编程。 3.2 单片机的构成单片机的构成 at89c51 单片机是在一块芯片中集成了 cpu、ram、r

8、om、定时器/计数器和 多种功能的 i/o 线等一台计算机所需要的基本功能部件,at89c52 单片机单片 机内包含下列几个部件: (1) 一个 8 位 cpu; (2)一个片内振荡器及时钟电路; (3)4k 字节 rom 程序存储器; (4)256 字节 ram 数据存储器; (5)两个 16 位定时器/计数器; (6)可寻址 64k 外部数据存储器和 64k 外部程序存储器空间的控制电路; (7)32 条可编程的 i/o 线(四个 8 位并行 i/o 端口) ; (8)一个可编程全双工串行口; (9)具有五个中断源、两个优先级嵌套中断结构。 其内部机构框图如图 2.2 所示: 图 3-1

9、mcs-51 单片机内部机构框图 3.3 at89c52 单片机的引脚说明单片机的引脚说明 at89c52 单片机采用 40 条引脚双列直插式器件,引脚除 5v( 40 脚) 和电源地( 20 脚)外,其功能分为时钟电路、控制信号、输入/输出三大部 分,逻辑框图及引脚图分别如图 2.4(a)(b)所示 (a) (b) 图 3-2 at89c52 单片机逻辑图与引脚图 at89c52 单片机的内部硬件结构中除了程序存储器由 flash 取代了 87c51 单片机的 eprom 外,其余部分完全相同,其管脚说明如下: (1)vcc:供电电压 (2)gnd:接地 (3)时钟电路 xtal1(19 脚

10、)芯片内部振荡电路(单级反相放大器)输入端。 xtal2(18 脚)芯片内部振荡电路(单级反相放大器)输出端。 (4)控制信号 rst(9 脚)复位信号:时钟电路工作后,在此引脚上将出现两个机器周期 的高电平,芯片内部进行初始复位,p0 口p3 口输出高电平,将初值 07h 写入 堆栈指针。 ale(30 脚)地址锁存信号:当访问外部存储器时,p0 口输出的低 8 位地 址由 ale 输出的控制信号锁存到片外地址锁存器,p0 口输出地址低 8 位后,又 能与片外存储器之间传送信息。另外,ale 可驱动 4 个 ttl 门。 (29 脚)片外程序存储器读选通:低电平有效,作为psenpsenps

11、en 程序存储器的读信号,输出负脉冲,将相应的存储单元的指令读出并送到 p0 口, 可驱动 8 个 ttl 门。psen /vpp(30 脚):当为高电平且 pc 值小于 0fffh 时,cpu 执行内部eaea 程序存储器程序;当为低电平时,cpu 仅执行外部程序存储器程序。ea 3.4 led 简介简介 led 数码管根据 led 的接法不同分为共阴和共阳两类,了解 led 的这些特 性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异 外,编程方法也是不同的。图 2.7(a)是共阴和共阳极数码管的内部电路图,它 们的发光原理是一样的,只是它们的电源极性不同而已。 将多只

12、led 的阴极连在一起即为共阴式,而将多只 led 的阳极连在一起即 为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段 即会发光。当然,led 的电流通常较小,一般均需在回路中接上限流电阻。假 如我们将b和c段接上正电源,其它端接地或悬空,那么b和c段发光, 此时,数码管显示将显示数字“1”。而将a、b、d、e和g段都接上 正电源,其它引脚悬空,此时数码管将显示“2”。其它数字的显示原理与此类 同。 led 的 7 段数码管利用单只 led 组合排列成“8”字型的数码管,分别引出 它们的电极,点亮相应的点划来显示出 0-9 的数字。在这次的设计中采用的均 是共阴极的 led

13、 显示,当 i/o 口输出为高电平的时候,对应段就被点亮。led 数码管的结构图如图 2.7(b)所示。 (a) (b) 图 3-3 led 分类结构图和结构图 这次设计的显示部分采用 at89c51 单片机动态扫描完成, 在多数的应用场 合中,我们并不希望使用多 i/o 端口的单片机,原则上是使用尽量少引脚的器 件。在没有富余端口的情况下,应通过优化设计程序和扩展电路达到预期的目 的。动态扫描的频率有一定的要求,频率太低,led 将出现闪烁现象。如频率 太高,由于每个 led 点亮的时间太短,led 的亮度太低,肉眼无法看清,所以 一般均取几个 ms 左右为宜,这就要求在编写程序时,选通某一

14、位 led 使其点亮 并保持一定的时间,程序上常采用的是调用延时子程序。 led 显示电路 (1) 静态显示电路 lde 显示器工作在静态显示时,其公共阳极(或阴极) 接 vcc(或 gnd) ,一 直处于显示有效状态,所以每一位的显示内容必须由锁存器加以锁存,显示各 位相互独立。 (2) 动态显示电路 将所有位的段选线的同名端联在一起,由一个 8 位 i/o 口控制,形成段选 线的多位复用。而各位的公共阳极或公共阴极则分别由相应的 i/o 口线控制, 实现各位的分时选通,即同一时刻只有被选通位是能显示相应的字符,而其他 所有位都是熄灭的。由于人眼有视觉暂留现象,只要每位显示间隔足够短,则 会

15、造成多位同时点亮的假象。这就需要单片机不断地对显示进行控制,cpu 需 要不断地进行显示刷新,动态显示电路参见图 2.8,图 2.8 中是扩展了五位的 led 数码管显示,用一个 74ls04 作为五个 led 的段选输入,采用动态显示的方 式连接。类似地,16 位的 led 数码管显示也可以用这种方法来实现。 图 3-4 五位 led 数码管的动态显示 第四章第四章 软件设计软件设计 程序如下:程序如下: #include #define uchar unsigned char #define uint unsigned int uchar code seg710=0 x3f,0 x06,0

16、 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; uchar act8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f; /位选 uchar deda, sec=50,min=59,hour=6; /deda 计时器 0 计数多少次是一秒的控制变量 sbit led1 = p10; / 用 p1.0 口控制 led 灯 uchar num1; /led 灯的计数器变量 uchar cnt,m; void delayms(uint) ; sbit fmq=p35;/p3.5 是蜂鸣器的控制端口 /*/

17、void init(void)/开定时器 0 和 1,并置初值 tmod=0 x11; th0=-(50000/256); tl0=-(50000%256); et0=1; /允许 t0 中断 tr0=1; th1=-(1000/256); tl1=-(1000%256); et1=1; tr1=1;/启动 ea=1;/开中断 /*/ void di() /蜂鸣器子程序 uchar i; for (i=0;i100;i+) fmq=0;delayms(1); fmq=1;delayms(1); /*/ void time0(void) interrupt 1 /秒计时器 th0=-(50000

18、/256); /置初值 tl0=-(50000%256); deda+; num1+; if(num1=10) /二极管半秒钟亮半秒钟熄 达到秒钟动作 num1=0; led1=led1; /led 闪烁子程序 /*/ void time1(void) interrupt 3 /数码管显示时分秒子程序 th1=-(1000/256); /定时器控制位扫描频率 tl1=-(1000%256); if(-cnt=20) /计数 20 次为一秒 deda=0;sec+; if(m0)di();-m; if(sec=60)sec=0;min+; if(min=60)min=0;hour+;m=hour

19、; if(hour=24)hour=0; /*/ void delayms(uint xms) /蜂鸣器延时 uint i,j; for(i=xms;i0;i-) for(j=100;j0;j-); /*/ void delay(uint k) uint data i,j; for(i=0;ik;i+) for(j=0;j59)min=0;delay(300);break; /键盘控制的进位 case 0 xf7:if(+hour23)hour=0;delay(300);break; default:break; 第五章第五章 调试过程及数据分析调试过程及数据分析 5.1 硬件调试硬件调试 硬

20、件调试的调试比较困难。因为是调试所以不能对元件进行焊接,只能把 各个元件用导线连接起来。调试的整体过程是:各个系统逐个调试,各部分调 试成功后再进行组装后的整体调试。 调试过程包括: 1. 显示部分的调试 问题:数码管的显示不稳定,不停的闪烁。 分析:没有考虑到干扰及环境的制约。于是我们把在面包板上连好的电路 焊接在印刷板上,并采用电容滤波尽可能去除纹波和干扰。 2. 控制部分的调试 问题:按下按键后数据有时正常有时又不正常,数据的加减不稳定。 分析:根据分析有两个问题可以导致此种现象,一是按键接触不良可能有 短路,二是程序部分有问题。用万用表测量后发现按键按下后不稳定,更换质 量更好的按键后

21、故障即排除。 5.2 keil 调试调试 启动 keil 软件,选择“project”菜单下的“new project”命令,输入项 目的文件名,选择存储路径,点击“保存”按钮。 在“select device”窗口中选择“atmel”下的“at89c51” 芯片,单击 “确定”按钮。展开“project workspace”窗口中的“target 1”, 右击 “target 1” ,选择“options for target target 1 ”,选择“target”选 项在 keil (mhz)右边输入“12m” 。选择“debug”选项,选择“use keil monitor-51 d

22、river” 。单击“settings”按钮,串口选择“com1”,波特率选择 “38400” ,单击“ok”按钮。 右击“source group 1” ,选择“add files to group source group 1,在文件类型中选择“asm source file”,找到将要编译的程序,单击 “add”按钮,然后再单击“close”按钮。单击“rebuild all target files”,在“build”窗口中观察编译结果,根据提示修改程序,直到没有错误 出现。 5.3 开发板调试开发板调试 根据程序的设计在开发板上分别连接好各个端口的连接线,用串口线把计 算机和试验箱的

23、仿真头连接好。 单击 keil 软件上的“start/stop debug session”按钮,再单击“run” 按钮,运行程序。观察试验箱上出现的效果,分析程序的对错,直到调试出正 确的结果。 第六章第六章 结论结论与总结与总结 经过一周的努力,顺利完成了基于at89s52at89s52单片机控制的单片机数字时钟 的设计,所完成的工作主要包括以下几个方面: (1)准备阶段的工作 准备阶段的工作主要包括:查阅国内外相关文献,了解单片机微控制器的主 要作用,发展过程及发展趋势和使用方法,了解用led数码管显示电子时钟日历 的工作原理、分析led显示系统。详细了解了at89c51单片机应用中的数据转换 显示、数码管显示原理、动态扫描显示原理。 (2)系统硬件设计 本次的设计基于at89c52单片机的led显示系统主要由at89c52单片机处理器 控制、位扫描控制电路、端码显示驱动电路及与计算机的接口电路组成。此外 还包括一些基本的电路如电源电路,晶振电路,及接口电路。 (3)系统软件设计 根据led显示管控制器的功能和系统硬件电路,进行系统软件设计

温馨提示

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

评论

0/150

提交评论