为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于单片机的数字钟电子钟设计

2017-09-06 37页 doc 379KB 35阅读

用户头像

is_624976

暂无简介

举报
基于单片机的数字钟电子钟设计单片机课程设计 目录 一 概述 ................................................................................... 1 1.1 数字钟简介 .................................................................................................................. 1 1.2 数字钟的发展前景 .......................
基于单片机的数字钟电子钟设计
单片机课程设计 目录 一 概述 ................................................................................... 1 1.1 数字钟简介 .................................................................................................................. 1 1.2 数字钟的发展前景 .................................................................................................... 2 1.3 51 单片机 .................................................................................................................... 3 1.4 汇编语言 ...................................................................................................................... 3 二 课题设计功能要求及总体 ........................................ 4 2.1 功能要求 ........................................................................................................................ 4 2.2 设计总体方案介绍 .......................................................................................................... 4 三 数字电子钟硬件系统的设计.......................................... 6 3.1芯片介绍............................................................................................................................. 6 3.2 硬件系统各模块功能简要介绍 .................................................................................... 10 3.3 数字钟原理图 ................................................................................................................ 11 四 数字电子钟软件系统的设计........................................ 12 4.1 数字电子钟使用单片机资源情况 ................................................................................ 12 4.2 数字电子钟软件系统各模块功能简要介绍 ................................................................ 12 4.3 数字钟软件系统程序流程框图 .................................................................................... 13 4.3.1 主程序流程框图 ............................................................................................... 13 4.3.2 键扫描子程序流程框图 ................................................................................... 14 4.3.3 显示子程序流程框图 ....................................................................................... 15 4.3.4 加1子程序流程图 ........................................................................................... 16 4.3.5 中断服务子程序流程图 ................................................................................... 16 五 仿真与误差分析 ........................................................... 18 5.1 数字电子钟的设计结论及使用说明 ............................................................................ 18 5.2 设计课题的仿真结果 .................................................................................................... 18 5.3 设计课题的误差分析 .................................................................................................... 20 心得 ......................................................................................... 21 单片机课程设计 参考文献 ................................................................................. 22 致 谢 ..................................................................................... 23 附 录 ..................................................................................... 24 1硬件原理图.......................................................................................................................... 24 2仿真电路图.......................................................................................................................... 25 3数字电子钟程序清单 .......................................................................................................... 26 单片机课程设计 摘要:数字钟广泛应用于生活生产中,对其深入了解很有必要,在此用单片机设 计了一个简单的数字电子钟。 本设计为基于AT89S52单片机,辅以必要的外围电路,用自制单片机实验板 设计了一个简单的数字电子时钟。在硬件方面,除了单片机外,用数码管来进行 显示,LED采用动态扫描显示。通过LED能够比较准确显示时、分、秒,三个简 单的按键实现对时间的调整。软件方面采用A51汇编语言编程。整个电子钟系统 能完成时间的显示,调时,调分,调秒,复位功能。本次设计的电子钟带采用独 立式键盘,用共阳数码管显示,因为LED亮度较高,显示醒目所以此电子钟在部 分场所推广很大。 关键词 数字电子钟;AT89S52;汇编语言 ABSTRACT: Widely used in digital electronic clock production life, its understanding is necessary, in this single chip design with a simple digital electronic clock. AT89S52 microcontroller based on the design, combined with the necessary peripheral circuits, a simple digital electronic clock. On the hardware side, in addition to SCM, the use of digital control for display, LED display using dynamic scanning. Can accurately through the LED display hours, minutes, seconds, three simple buttons to adjust the time to achieve. Software exchange with A51。The completion time clock system can display, transfer, the transfer points, transfer seconds, reset. The design of the electronic clock with the use of stand-alone keyboard, digital display with a total positive, because higher brightness LED, so this electronic clock display visible in some places a great promotion. Key words digital electronic clock; AT89S52; assembly language 单片机课程设计 一 概述 1.1 数字钟简介 1350年6月6日意大利人乔万尼?德?党笛制造了世界上第一台结构简单的机械打点多功能数字钟,由于数字钟报价便宜,功能齐全,因此很快受到众多用户的喜爱。1657年,荷兰人惠更斯率先把重力摆引入机械钟,进而才创立了摆钟。 到了20世纪以后,随着电子工业的快速发展,电池驱动钟、交流电钟、电机械表、指针式石英电子钟表以及数字显示式石英钟表相继问世,数字钟报价非常合理,再加上产品的不断改良,多功能数字钟的日差已经小于0.5秒,因此受到广大用户的青睐。尤其是原子钟的出现,它是使用原子的振动来控制计时的,是目前世界上最精准的时钟,即使经过将近100万年,其偏差也不可能超过1秒钟。 多功能数字钟最早是在欧洲中世纪的教堂,属于完全机械式结构,动力使用重锤,打点钟声完全使用人工进行撞击铸钟,所以当时一个多功能数字钟在建筑与机械结构方面是非常复杂的,进而影响了数字钟报价。进入电子时代以后,电子多功能数字钟也相继问世。我国电子多功能数字钟行业从80年代开始渐渐成长壮大,目前不仅数字钟报价合理,在技术和应用水平上也已经达到世界同类水平。 电子数字钟是一种用数字电路技术实现时、分、秒计时的钟表。与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。数字钟的设计有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。数字钟已成为人们日常生活中不可或缺的生活必须品,广泛地应用于人家庭以及车站、码头、剧场、办公室等家庭和公共场所,给人们的生活,学习,工作,娱乐带来极大的方便。 单片机课程设计 数字钟一般由振荡器,译码器,单片机,显示器等部分组成,当前市场上已有现成数字钟集成芯片出售,价格较便宜。由于数字集成电路的发展,采用了先进稳定的石英震荡技术,使数字钟具有走时准确,性能稳定,携带方便等特点,是目前人们生活和工作不可或缺的报时用品。 1.2 数字钟的发展前景 现在是一个知识爆炸的新时代。新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对于人们来说越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。一次我们需要一个定时系统来提醒这些忙碌的人。数字化的钟表给人们带来了极大的方便。 近年来,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能上还是样式上都发生改变,有电子闹钟,数字闹钟等等。单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。但是去很少知道它的内部结构以及工作原理。由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以进行定时,校时功能。输出设备可以用液晶显示技术和数码管显示技术。 单片机芯片作为控制系统的核心部件,它除了具备微机CPU的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的输入量、系统的输出量,实现自动控制。在本次设计中采用单片机技术来实现数字钟的功能。方案的设计可以从以下几个方面来确定。微处理器的选择,AT89S51、52是2003年ATMEL推出的新型品种,除了完全兼容8051外,还多了ISP编程和看门狗功能。但是AT89S52的存储器容量比AT89S51的大。在本次设计中采用AT89S52单片机;显示电路的设计,随着科技的发展,液晶显示的使用越来越方便,已被普遍的使用。由于液晶显示与驱动都集成在一个芯片上,因此使用起来很方便。在这里采用液晶显示;校时和定时电路的设计;实时控制电路是时钟电路的一个重要组成部分, 2 单片机课程设计 采用的是一个时钟芯片,单片机从中读取数据送到显示器上显示,从而实现数字钟的功能;还有一些其他控制电路如复位电路、时钟电路等。 1.3 51 单片机 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。作为嵌入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。51 系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51 系列单片机的发展又进入了一个新的阶段。在今后很长一段时间内51 系列单片机仍将占据嵌入式系统产品的中低端市场。 1.4 汇编语言 汇编语言是一种面向机器的计算机低级编程语言,通常是为特定的计算机或系列计算机专门设计的。汇编语言保持了机器语言的优点,具有直接和简捷的特点,其代码具有效率高实时性强等优点。但是对于复杂的运算或大型程序,用汇编语言编写将非常耗时。汇编语言可以与高级语言配合使用,应用十分广泛。 3 单片机课程设计 二 课题设计功能要求及总体方案 2.1 功能要求 设计的数字电子钟上电或按键复位后能无显示, 进入时钟准备状态;第一次按数字电子钟启动/调整键,数字电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按数字电子钟启动/调整键,则数字电子钟进入时钟调整状态,并且时间停止不动,此时可分别利用各调整键调整时、分、秒,调整结束后可按启动/调整键再次进入时钟运行状态。 2.2 设计总体方案介绍 本课程设计采用AT89S52单片机实验板设计一个数字电子钟,通过8位LED数码管显示时、分、秒,并设有5个按键。其中一个用于单片机的复位;一个为启动/调整键;另外三个为时、分、秒调整键。 电路分别为复位电路、键盘电路、晶振电路、驱动电路和控制电路。复位电路采用按键复位方式。键盘电路采用独立式键盘。时钟电路用12MHz的晶振产生时钟信号。显示电路采用74ls245三极管驱动8位LED显示。控制电路 采用8位AT89S52单片机进行控制。其设计框图如图1.1所示: 按键电路 晶振电路 驱动电路 LED AT89S52 复位电路 电源 图2.1 电子钟实现框图 4 单片机课程设计 1. 计时方案 设定定时器1负责计时初值TH0=ODCH,TL0=00H.设定中断时间为 根据公式: 16T=(2-X)*1us„„„„„„„„„„„„ 2.2 代入初值得T为50ms循环20次。当计满20次时说明一秒时间到。此时秒位加1,判断秒位是否达60秒不满60秒则返回。满60秒则秒位清0并分为加1,判 ,不满60分则返回。满60则分位清0,并时位加1,判断时断分位是否满60分 位是否为24小时,不满则返回。满24小时则时位清0 。 2. 键盘/显示方案 AT89S52的P2口外接由8个LED数码管构成的显示器,用P0口作LED 的段码输入口,P2口作8个LED数码管的位控输出线,在内部RAM钟设置显 示缓冲区共8个单元,如表2.1所示。P1口外接4个按键。 表2.1 单元格地址及显示 LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 37H 36H 35H 34H 33H 32H 31H 30H 时十位 时十位 间隔 分十位 分十位 间隔 秒十位 秒十位 5 单片机课程设计 三 数字电子钟硬件系统的设计 3.1芯片介绍 1.AT89S52: AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。 图3.1 6 单片机课程设计 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能: P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原 7 单片机课程设计 因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则 8 单片机课程设计 执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 2.74LS245 74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。 74LS245还具有双向三态功能,既可以输出,也可以输入数据。 当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。 当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收) DIR=“1”,信号由 A 向 B 传输;(发送)当CE为高电平时,A、B均为高阻态。 由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,E端接地,保证数据线畅通。8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入(P0.1?D1),其它时间处于输出(P0.1?D1)。 图3.2 9 单片机课程设计 3.2 硬件系统各模块功能简要介绍 1) 复位电路 复位是单片机的硬件初始化操作。经复位操作后,单片机系统才能开始正常工作。 单片机上有复位引脚RST,用于外接复位电路,这里复位电路采用按键电平复位。 2) 时钟电路 单片机工作所需的同步时钟信号由以下两种方法获得:由单片机片内时钟电路结合外部晶振、电容产生和直接从单片机外部引入脉冲信号。这里用第一种方法产生时钟信号。 电路用12MHz的石英晶体和二个微调电容(为33pF左右)连接起来接到单片机的XTAL1和XTAL2引脚上。 3) 键盘电路 由于按键较少,所以此处使用独立式键盘,键盘接到单片机的P1.0~P1.3上当键按下时,在其相应的口线上产生低电平信号,键松开时仍为高电平信号。 4) 显示电路 本显示电路采用74LS245驱动8位数码管段和位控端。显示电路用单片机的P0口线作段控口,线上串入100Ω的限流电阻,用P2口线作位控口。 10 单片机课程设计 3.3 数字钟原理图 图3.1 设计原理图 11 单片机课程设计 四 数字电子钟软件系统的设计 4.1 数字电子钟使用单片机资源情况 在电子钟的编程过程中,单片机资源使用情况如下: 寄存器:通用寄存器0组的R0~R7; IO口线:P0口(作数码管的段控口),P2口(作数码管的位控口) P1口(作键盘接口); 堆栈地址:60H; 显示缓冲单元:30H~37H; 键扫子程序出口:20H 秒,分,时缓存单元:为41H,43H,45H 定时器1 50ms计数值存放单元:40H 4.2 数字电子钟软件系统各模块功能简要介绍 1) 显示模块 显示子程序主要是对段(位)控码的操作。要注意的是寄存器的使用,指针的初始化,延时控制,以及LED显示的判断。显示程序中显示的是缓冲区中的内容再调数据中显示代码,程序中只要将要显示的内容在数据表中的位置送往显示缓冲区即可,就可以显示你所需要显示的内容。 2) 中断服务程序模块 中断服务程序主要由4次判断构成,当程序开始,寄存器装入初值后,顺序开始4次判断,否则返回继续判断,是则相应单元请0,且下一位判断位置加一。最后进行出栈操作,并结束程序。 3) 键盘模块 12 单片机课程设计 键盘扫描子程序同样包括3次判断,第一次但程序开始时,判断是否有键闭合,是则程序继续,否则直接结束;第二次在调用显示子程序时,判断是否有键闭合,是则程序继续,否则直接结束;第三次紧跟第二次判断之后,当有键按下,判断其是否释放,是则程序继续,否则返回继续判断是否释放。 4.3 数字钟软件系统程序流程框图 4.3.1 主程序流程框图 主程序流程框图如图4.1所示: 开始 系统初始化 A键按下否 进入自动计时状态 检测到A键按下 进入时间设置状态 检测到A键按下 图4.1 主程序流程图 13 单片机课程设计 4.3.2 键扫描子程序流程框图 键扫描子程序流程图如图4.2所示: 开始 N 有键闭合 Y 调显示子程序延时去抖动 N 有键闭合 Y N 调显示子程序 键释放否 Y 保存键值(A中) 结束 图4.2 键扫描子程序流程图 14 单片机课程设计 4.3.3 显示子程序流程框图 显示子程序流程框图如图4.3所示: 开始 现场保护 开辟第三组寄存器 地址指针R0初始化、位控制寄存器初始化 查表取段控码 段控码送P0口 段控码送P2口 延时1毫秒 位控码左移 显示缓冲区地址加1 N 8位LED显示完否 Y 恢复现场 返回 图4.3 显示子程序流程图 15 单片机课程设计 4.3.4 加1子程序流程图 加1子程序流程框图如图4.4所示: 开始 取十位数 使十位数占A高半字节 取个位数占A低半字节 加一 十进制调整 个位数送入缓冲单元 把十位数交换到低半字节 十位数送缓冲单元 结束 图4.4 加1子程序流程图 4.3.5 中断服务子程序流程图 中断服务子程序流程框图如图4.5所示: 16 单片机课程设计 开始 保护现场(入栈) 改变寄存器组组号 重装定时器计数初值 中断次数减1 N 满8次 Y 秒值加1 N 满60秒 Y 秒缓冲单元清0 分值加1 N 满60分 Y 分缓冲单元清0 时值加1 N 满24小时 Y 时缓冲单元清0 恢复寄存器组组号 现场恢复(出栈) 结束 图4.5 中断服务子程序流程图 17 单片机课程设计 五 仿真与误差分析 5.1 数字电子钟的设计结论及使用说明 本课程设计的目的是设计一个电子钟,通过原理图的绘制和仿真,最终做出的实物是成功的,能够达到预期的目的,以下本次所作电子钟的具体的使用说明:电子钟上电后,什么都不显示,按下启动/调整键,电子钟从0时0分0秒开始自动运行,再次按下启动/调整键,电子钟运行停止,处于调整状态,调整位闪烁。按下调加键,加1,以实现时、分、秒的调整,再次按下启动/调整键,电子钟自动运行起来,处于运行状态,调整结束。 5.2 设计课题的仿真结果 设计课题的仿真结果如图5.1所示 18 单片机课程设计 图5.1 仿真结果 19 单片机课程设计 5.3 设计课题的误差分析 本课程设计存在一定误差,引起误差原因主要是程序中定时后很多指令引起的时间积累误差。但误差在允许范围内,所以,时间基本准确。减小误差的办法:经过运行监测发现电子钟行走24小时快大约五分钟所以可通过软件方法自动24小时校正5分钟。 20 单片机课程设计 心得 本次做课程设计,是我进这个大学来的第一次做的课程设计。以前在专科的时候学了单片机这门课程但是从来都没有实践过。 这次是我第一次做真正的单片机课程设计,从实物到软件编程都是自己亲自动手实践的。俗话说的好:纸上学来终觉浅,须知此事要躬行。我们的这门课程本来就是繁琐的,只有在真正的实践之中才能知道我们到底学了多少,以及理论与实践中的区别。制版本次采用的是纯手工制作,从绘制原理图开始。的确,这次的设计是完全从头开始,绘制原理图、PCB、转印、腐蚀、焊接、调试,以及最后的实践程序编写。当然,难度最大的还是程序的编写,本次的电子钟设计,我个人认为难度最大的就是键盘与显示,由于本次的电路板是全手工制作,工艺比较粗糙,焊接中也有问题,导致最终程序编写也要相应改变。 在课程设计的第一次调试过程中,出现了许多我无法解释的问题,使我有些灰心,但是在认真重新读完自己的程序以后,我发现原来出现问题的原因都是自己的粗心,在修改完这些问题以后,接下来的调试就比较顺畅了,归结原因主要还是我对流程图的设计下了很多功夫,为调试打下了良好的基础。在本次设计当中,深深感悟到即使是一个小的板子也有很多的学问,我们必须真正的掌握它才能顺利解决遇到的各种问题。虽然这只是一个比较小的实验系统,但却是一切的基础,只有懂了基础才能学的更深。 21 单片机课程设计 参考文献 ,1, 张友德.单片微型机原理、应用与实验,,,.上海:复旦大学出版社, 2006.5. 17,28 Zhang Youde. Single-chip microcomputer principles, applications and experimental ,,,. Shanghai: Fudan University Press, 2006.5. 17,28 ,2, 夏宽理.程序设计,,,.上海:复旦大学出版社,2000.7. 26,44 Xia Kuangli. Programming,,,. Shanghai: Fudan University Press, 2000.7. 26~44 ,3, 谭浩强.C程序设计,,,.北京:清华大学出版社,1999.12. 48,56 Tan Haoqiang. C Programming,,,. Beijing: Tsinghua University Press,1999.12.48~56 ,4,李广弟.单片机基础,,,.北京:北京航空航天大学出版社,2010.5 Li Guangdi. Microcontroller based,,,. Beijing: Beijing Aerospace University Press, 2010.5 [6] 李景宏,马学文。电子技术实验教程[M]。沈阳:东北大学出版社,2004 [7] 贾正松。单片机系统复位电路设计[J]。科技资讯,2007,(36) [8] 袁新燕。浅谈单片机应用系统的调试[J]。自动化与仪器仪表, 2000,(03) [9] 王晖,薛永存。基于MCS-51单片机的复位电路抗干扰分析与设计[J]。 现代电子技术,2006,(08) [10] 丁元杰主编.单片微型计算机.北京:机械工业出版社.2003 [11] 李广第主编.单片机基础.北京:北京航天工业出版社.2002 [12] 江志红编著.51单片机技术与应用系统研发.清华大学出版社.2008 22 单片机课程设计 致 谢 这次课程设计终于完成了,完成这次课程设计离不开老师和同学的帮助没有他们的指导我想我是很难完成这次课程设计的。在这次课程设计的撰写过程中,我得到了许多人的帮助。 首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。 其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。同时也感谢学院为我提供良好的做毕业设计的环境。 最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。 23 单片机课程设计 附 录 1硬件原理图 24 单片机课程设计 2仿真电路图 25 单片机课程设计 3数字电子钟程序清单 ;主程序 ORG 0000H AJMP MAIN ORG 000BH LJMP INTT0 ORG 0030H MAIN: MOV SP, #60H; 确立堆栈区 MOV PSW, #00H; MOV R0, #20H; RAM区首地址 MOV R7, #5FH; RAM区单元个数 QL: MOV @R0, #00H; RAM清零 INC R0 DJNZ R7, QL MOV IP, #02H; IP初始化,优先定时器0 MOV IE, #82H; E初始化, MOV TMOD, #01H; 定时器0方式1工作 NEXT: LCALL KEY; 按键检测子程序 JB ACC.0 , RUNF; A键按下运行 SJMP NEXT RUNF: LCALL OUTT; 调传送子程序 LCALL TIME; 开电子钟 JK: LCALL DISP; 调用显示子程序 LCALL KEY; 按键检测子程序 JZ JK LCALL ANKEY LCALL DISP; 调用显示子程序 SJMP JK 26 单片机课程设计 ;键扫描子程序 KEY: LCALL KEYS; 调用键值处理子程序 JZ EXIT; 没有键按下转到返回 LCALL DISP LCALL DISP; 调用显示去抖动 LCALL KEYS JZ EXIT MOV B, 20H; 保存键值 KEYSF: LCALL KEYS; 调键值处理子程序 JZ KEYY; 键释放,转到恢复键值 LCALL DISP; 调显示子程序延时 AJMP KEYSF; 等到键释放 KEYY: MOV A, B; 键值送20H单元保存 EXIT: RET; 返回 KEYS: MOV P1, #0FFH; 先向P1口写1 MOV A, P1; P1口值送累加器A CPL A; A值取反 ANL A, #0FH; 保存P1口低4位 MOV 20H, A; A值送20H保存 RET ;键功能子程序 ANKEY: CLR EA; 关中断 CHECK: JB TR0, YXZ; 判断是否运行 K0: CJNE A, #01H, K1 AJMP RUN; 转运行 K1: CJNE A, #02, K2 AJMP KEY1; 转时调整 K2: CJNE A, #04H, K3 AJMP KEY2; 转分调整 27 单片机课程设计 K3: CJNE A, #08H, OUT AJMP KEY3; 转秒调整 YXZ: JB ACC.0, STOP AJMP OUT KEY1: MOV R0, #45H; 时调整 LCALL ADD1 CLR C CJNE A, #24H, OUTT ACALL CLR0 AJMP OUTT KEY2: MOV R0, #43H; 分调整 LCALL ADD1 CLR C CJNE A, #60H, OUTT ACALL CLR0 AJMP OUTT KEY3: MOV R0, #41H; 秒调整 ACALL ADD1 CLR C CJNE A, #60H, OUTT ACALL CLR0 ;传送显示数据程序 OUTT: MOV 30H, 40H; 秒显示单元41H-42H MOV 31H, 41H MOV 32H, #11H; “-” MOV 33H, 42H; 分显示单元43H-44H MOV 34H, 43H MOV 35H, #11; “-” MOV 36H, 44H; 时显示单元43H-45H 28 单片机课程设计 MOV 37H, 45H RET STOP: CLR TR0; 关电子钟跳出 RET RUN: LCALL TIME; 运行电子钟 OUT: SETB EA; 无键按下或完成功能跳出 RET ;运行电子钟 TIME: SETB EA MOV TL0, #0B0H MOV TH0, #3CH; 3CB0H MOV R4, #20; 50ms,20次循环 SETB TR0; 启动定时器0 RET ;定时中断 INTT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV TL0, #0B0H; 重新设置定时初值 MOV TH0, #3CH SETB TR0; 启动定时器0 DJNZ R4, OUTT0; 1秒到 ADDSS: MOV R4, #14H; 20次计数 MOV R0, #41H; 秒十位 ACALL ADD1; 加1程序 CLR C CJNE A, #60H, ADDMM; 1分到 ADDMM: JC OUTT0 29 单片机课程设计 ACALL CLR0 MOV R0, #43H ACALL ADD1; 加1程序 CLR C CJNE A, #60H, ADDHH; 1小时到 ADDHH: JC OUTT0 ACALL CLR0 MOV R0, #45H ACALL ADD1; 加1程序 CLR C CJNE A, #24H, HOUR; 1天到 HOUR: JC OUTT0 ACALL CLR0 OUTT0: MOV 30H, 40H; 秒显示单元41H-42H MOV 31H, 41H MOV 32H, #11; ”-” MOV 33H, 42H; 分显示单元43H-44H MOV 34H, 43H MOV 35H, #11; ”-” MOV 36H, 44H; 时显示单元44H-45H MOV 37H, 45H POP PSW POP ACC SETB ET0 RETI ;时间清零子程序 CLR0: CLR A MOV @R0, A DEC R0 30 单片机课程设计 MOV @R0, A RET ;加一子程序 ADD1: MOV A, @R0; 取十位 DEC R0 SWAP A ORL A, @R0; 组合十位与个位 ADD A, #01H; 加1 DA A; 十进制调整 MOV R3, A; 暂存 ANL A, #0FH; 屏蔽十位 MOV @R0, A; 放入个位单元 MOV A, R3; 取值 INC R0 SWAP A ANL A, #0FH; 屏蔽个位 MOV @R0, A; 放入十位单元 MOV A, R3; 数值放入A中等待判断 RET ;显示子程序 30H DISP: MOV R1, #30H; 显示缓冲存储单元首地址 MOV R2, #80H; 从右至左显示 DISP1: MOV P2, R2; 送位控 MOV A, @R1 MOV DPTR, #TAB MOVC A, @A+DPTR MOV P0, A; 送段控 ACALL DL; 延时 MOV A, R2 31 单片机课程设计 JB ACC.0, DISP2 RR A INC R1 MOV R2, A AJMP DISP1 DISP2: RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0CH DL: MOV R6, #14H; 显示延时子程序 DL1: MOV R7, #19H DL2: DJNZ R7, DL2 DJNZ R6, DL1 RET END 32
/
本文档为【基于单片机的数字钟电子钟设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索