




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用电子时钟 课程设计报告 学院:信息工程学院 专业班级:通信工程10-1班 姓名:牛爱 刘欢 焦航 指导教师:葛振 目 录1. 设计题目.1 1.1课题研究背景.1 1.2课题主要内容.12. 设计任务.13. 设计思路.2 3.1系统框图设计.2 3.2系统电路原理设计.34. 硬件原理图和连接图.4 4.1总原理图.4 4.2at89c51.4 4.3复位电路.7 4.4按键电路.7 4.5led显示电路.85. 程序流程图.9 5.1主程序.9 5.2数码管显示.9 5.3定时器/计数器t0中断服务程序.9 5.4按键处理程序.116. 程序清单.127. 实验总结.178. 设计心得.189. 参考资料.191 1.设计题目 1.1课题研究背景 电子时钟有着很长的历史,在1957年,ventura发明了世界上的第一块电子表后,他就奠定了电子时钟的基础,电子时钟开始迅速地发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒为一分钟进一,满六十分为一小时进一,满二十四小时清零,从而达到计时的功能。基于51单片的电子时钟,外围电路简单易于实现,性价比高,是实现电子时钟的不错选择。 1.2课题主要内容本次课程设计基于单片机内部资源设计出的一款性价比高的电子时钟系统,主要涉及到以下几个研究方向: (1) 熟悉mcs-51单片机内部定时器的工作方式; (2) 掌握单片机内部中断系统的工作模式; (3) 了解mcs-51单片机外部电路的一般设计方法; (4) 熟悉汇编语言的编写规则;(5) 掌握单片机内部ram地址分配方法; (6) 掌握特殊功能寄存器的用法; (7) 熟悉proteus isis及keil uvision2软件的使用。 2.设计任务我们采用应用广泛的at89c51作为时钟控制芯片,利用单片机内部的定时/计数器t0 实现软时钟的目的。在六位数码显示器上显示时,分,秒。选用定时器每隔0.125秒产生一次中断,在内存中设定四个单元,存放0.125秒,秒,分,时,每隔0.125秒对这些单元中的内容进行必要的修改。存放时分秒及0.125秒的数值的四个单元选用片内ram:(50h) 0.125秒的个数(51h) 秒(bcd码)(52h) 分(bcd码)(53h) 时(bcd码)晶振频率为6mhz,使用方式1定时0.125秒,则定时器的初始值为0bdch。可每中断8次更新一次时间显示,每隔两次中断(0.25秒)进行一次键盘检查。此外还要实现对时间的调整功能,89c51的p1.0、p1.1、p1.2外接三个独立按键,当有键按下时,分别使秒单元清零,时,分内容加一。3.设计思路 3.1系统框图设计 根据电子时钟能够实现的功能,采用单片机内部资源,设计出了系统原理框图,如图3-1所示: 图3-1 在单片机内部构建三个模块:控制模块、译码模块、定时模块,用以实现自动计数、译码显示功能。单片机外部构建三个电路:复位电路、外部按钮电路、显示电路,用以实现对单片机内部计数控制以及译码输出的正确显示。该电子时钟是将秒、分、时显示在人的视觉器官面前的一种计时装置。故将计时周期设置为24小时,当显示满刻度是23时59分59秒时,数码管显示为0。为了确保时间正常校对,在系统中设有校对按钮,用以实现对数码管显示的正确调整。 3.2系统电路原理设计在本次的设计中对6mhz的系统时钟进行定时计数,初值设为0bdch。形成定时时间为0.125s。用片内ram的50h单元对0.125s计数,计8次1秒钟到,然后对秒计数器51h单元加1,秒计数器加到60后就向分进位,则分计数器52h单元加1而秒计数器51h单元清零;分计数器加到60后又向时进位,则时计数器53h单元加1而分计数器52h单元清零;时计数器加到24则时计数器清零。然后把秒、分、时计数器分成十位和个位放到6个数码管的显示缓冲区,通过数码管显示出来。显示格式为小时十位、小时个位、分十位、分个位、秒十位、秒个位。4. 硬件原理图和连接图 4.1总原理图根据电路原理框图设计出电路原理图如图4-1所示,由6mhz的晶振给单片机提供固定的时钟频率,通过k0、k1、k2可以对显示电路时间进行位设定。 图4-1 4.2at89c51 at89c51是一种带4k字节flash存储器的低电压、高性能cmos的8位微处理器,俗称单片机。at89c51是一种带2k字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器。如图4-2所示: 图4-2 由于电路原理中只用到单片机的p0、p1、p2口,所示下面对这三个端口进行详细介绍。 1)、p0口:p00p07统称为p0口,在不接片外存储器与不扩展i/o接口时,作为准双向输入/输出接口。在接有片外存储器或扩展i/o接口时,p0口分时复用为低8位地址总线和双向数据总线。p0口是一个三态双向口,由一个输出锁存器、两个三态缓冲器、输出驱动电路和输出控制电路组成。在输入数据时,应人为地先向p0口写“1”,定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。 2)、p1口:p10p17统称为p1口,可作为准双向i/o接口使用。p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4lsttl门电流。p1口管脚写入“1”后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 3)、p2口:p20 p27口统称为p2口,一般可以作为准双向i/o接口使用,在接有片外存储器或扩展i/o接口且寻址范围超过256字节时,p2口用作高8位地址总线。p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 4.3复位电路计算机在启动运行时都需要复位,复位时使中央处理器cpu和内部其他部件处于一个确定的初始状态,从这个状态开始工作。 at89c51单片机有一个复位引脚rst,高电平有效。在时钟电路工作以后,当外部电路使得rst端出现两个机器周期(24个时钟周期)以上的高电平,系统内部复位。复位有两种方式:上电复位和按钮复位。在此次的设计中,我采用按键复位,如图4-3所示: 图4-3只要rst保持高电平,at89c51单片机将循环复位。复位期间,ale、psen输出高电平。rst从高电平变为低电平后,pc指针变为0000h,使单片机从程序存储器地址为0000h的单元开始执行程序。当单片机执行程序出错或进入死循环时,可按复位按钮重新启动。 4.4按键电路独立式键盘是各按键相互独立,每个按键各接一根i/o接口线,每根i/o接口线的按键是不会影响其他的i/o接口线。在本次设计中,按键为k0、k1、k2,他们分别与单片机p1.0、p1.1、p1.2接口线相接。通过按键控制显示器的显示。图4-4所示: 图4-4 4.5 led显示电路在本次的设计中,采用的8位的数码管显示器。数码管如果按照段数分可为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多了一个小数点的显示;如果按能够显示多少个“8”分类的话,也可以可分为1位、2位、4位等数码管。 如果按照发光二极管单元的连接方式又可以分为共阳极数码管和共阴极数码管。共阳极的数码管是将所有发光二极管的阳极接到一起后就形成公共阳极(com)的数码管,共阳极数码管在应用时要将公共极(com)接到+5v,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴极数码管是将所有发光二极管的阴极接到一起形成公共阴极(com)的数码管,共阴极数码管在应用时应将公共极(com)接到地线gnd上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。如图4-5所示: 图4-55.程序流程图 5.1主程序 先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有按键按下时,则转入相应的功能程序。 5.2数码管显示 本设计有8个数码管,从右到左为妙、分、时。在本系统中数码管显示采用软件译码动态显示。在存储器中首先建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段表中查出所显示的信息的断码,从p0端口输出,同时在p2端口进行数码管显示。 5.3定时器/计数器t0中断服务程序 t0用于计时,选中方式一,重复定时,定时时间设为0.125s,定时时间到则中断,在中断服务程序中用一个计数器对0.125s计数,计8次则对秒单元加一。秒单元加到60则对分单元加一,同时秒单元清0;分单元加到60则对时单元加一,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。在对各单元计数的同时,把他们的值放到存储器单元的指定位置。流程图如下: 设置初始值,启动下一个0.125s是开始t0为方式1设中断次数为8,清计时单元允许t0中断调用显示子程序进入功能程序按下键否开始中断返回0.125s计数器加一秒单元加1,125ms计数器清0分单元加1,秒单元清0时单元加1,分单元清0时单元清0125ms计数器=8?秒单元=60?分单元=60?时单元=24?主程序流程图t0中断服务程序nononono 5.4按键处理程序按键设置为:如果没有按键,则时钟正常走时。当按下k0键时,时钟复位,从零开始计数;按k1键时,秒清零;按k1键时,分清零,再按时实现加一功能;按k2键时,时清零,再按时实现加一功能。6. 程序清单 org 0000h ljmp tim org 000bh ;中断服务程序入口 t0 ljmp loop2 org 0030h ;主程序入口tim: mov sp, #2fh mov tmod, #01h ;设置t0定时为方1 mov ie, #0 setb et0 setb ea ;打开t0中断 mov th0, #0bh ;定时0.125s mov tl0, #0dch setb tr0 ;启动t0 mov 50h, #0 ;各时间存储单元清零 mov 51h, #0 mov 52h, #0 mov 53h, #0 clr psw.5 ;清除键盘调整标志位loop1: call disp2 ;调用显示子程序 jbc tf0, loop2 jmp loop1 ;主程序循环;-loop2: mov tl0, #0dch mov th0, #0bh inc 50h mov a, 50h cjne a, #02h, eq04 sjmp jianeq04: cjne a, #04h, eq06 sjmp jianeq06: cjne a, #06h, eq08 sjmp jianeq08: cjne a, #08h, _end_t0 mov 50h, #0 mov a, 51h ;秒计数 add a, #1 da a mov 51h, a cjne a, #60h, jian mov 51h, #0addf: ;分计数 mov a, 52h add a, #1 da a mov 52h, a cjne a, #60h, jian mov 52h, #0 jb psw.5, _end_t0 ;psw.5为1,是按键调整,时不变addh: ;时计数 mov a, 53h add a, #1 da a mov 53h, a cjne a, #24h, jian mov 53h, #0 jb psw.5, _end_t0jian: jb psw.5, _end_t0 mov p1, #0ffh mov a, p1 ;读取键盘状态 cpl a anl a, #00000111b jz _end_t0 ;为0则无键按下 setb psw.5 jb acc.0, clrs ;为1则是p3.0有键按下 jb acc.1, addf jb acc.2, addhclrs: mov 50h, #0 mov 51h, #0_end_t0: clr psw.5 ;清除按键调整标志位 reti;-disp2: ;显示子程序,把51h 52h 53h的内容送到led显示器 call fen_jie2 call display ret;-fen_jie2: mov a, 51h anl a, #0fh mov 7dh, a mov a, 51h swap a anl a, #0fh mov 7ch, a mov a, 52h anl a, #0fh mov 7bh, a mov a, 52h swap a anl a, #0fh mov 7ah, a mov a, 53h anl a, #0fh mov 79h, a mov a, 53h swap a anl a, #0fh mov 78h, a ret;-display: mov r0, #7dh mov 7eh, #0feh mov 7fh, #6_dp_l: mov a, r0 mov dptr, #_ma_biao movc a, a+dptr mov p0, a ;p0段选 p2位选 mov p2, 7eh xrl p2, #255 ;取反否则加三极管 mov a, 7eh rl a mov 7eh, a dec r0 lcall dl1ms mov p2, #0 ;关闭显示 djnz 7fh, _dp_l ;循环显示六个位 ret_ma_biao: db 0c0h, 0f9h, 0a4h, 0b0h, 99h db 92h, 82h, 0f8h, 80h, 90h db 88h, 83h, 0c6h, 0a1h, 86h db 8ehdl1ms:del1: mov r7, #0 djnz r7, $ retend7. 实验总结在本课题中,采用at89c51单片机作为主控制器,6mhz晶振作为振荡源,p0口作为输出字段码,p2口作为输出位选码,采用共阳的led
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 延边大学《城市设计Ⅰ》2023-2024学年第二学期期末试卷
- 四川省成都经开区实验高级中学2025届高考模拟调研卷数学试题(一)含解析
- 江苏省盐城市东台实验中学2025年中考抽测语文试题样题(A卷)试卷含解析
- 武夷学院《细胞生物学实验》2023-2024学年第一学期期末试卷
- 辽宁省抚顺市清原县2025年数学三下期末统考试题含解析
- 上海市金山区金山中学2025届高三期末试题含解析
- 江苏省丹阳市2025年校初三4月考语文试题含解析
- 重庆第二师范学院《多媒体制作》2023-2024学年第一学期期末试卷
- 泰州学院《外科学各论》2023-2024学年第二学期期末试卷
- 闽南理工学院《隧道工程(B)》2023-2024学年第二学期期末试卷
- 《木兰诗》历年中考古诗欣赏试题汇编(截至2024年)
- 2024年音乐节行业发展前景预测及投资策略研究报告
- 2024西部县域经济百强研究
- 2025-2030年中国IPTV产业行业发展趋势及前景调研分析报告
- 国企改革三年行动培训
- 医美诊所院感知识培训课件
- 河北省气象部门招聘笔试冲刺题2025
- 上海市家庭居室装饰装修施工合同书
- 物联网技术及应用基础(第2版) -电子教案
- 新能源汽车租赁市场发展方案
- 货架回收合同范例
评论
0/150
提交评论