单片机课设电子时钟文档格式.docx
《单片机课设电子时钟文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课设电子时钟文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
1.2课题的主要内容课题的主要内容课题的主要内容本次课程设计基于单片机内部资源设计出的一款性价比高的电子时钟系统,主要涉及到以下几个研究方向:
(1)熟悉MCS-51单片机内部定时器的工作方式;
(2)掌握单片机内部中断系统的工作模式;
(3)了解MCS-51单片机外部电路的一般设计方法;
(4)熟悉汇编语言的编写规则;
河南机电高等专科学校毕业论文(5)掌握单片机内部ram地址分配方法;
(6)掌握特殊功能寄存器的用法;
(7)熟悉ProteusISIS软件的使用;
(8)掌握汇编语言的编译方法。
第2章电子时钟实现原理
2.1设计方案:
1、通过单片机内部的计数/定时器,采用软件编程来实现时钟计数,一般称为软时钟,这种方法的硬件线路简单,系统的功能一般与软件设计相关,通常用在对时间精度要求不高的场合。
2、采用时钟芯片,它的功能强大,功能部件集成在芯片内部,具有自动产生时钟等相关功能,硬件成本相对较高;
软件编程简单,通常用在对时钟精度要求较高的场合。
2.2设计内容:
我们采用应用广泛的AT89C51作为时钟控制芯片,利用单片机内部的定时/计数器T0实现软时钟的目的。
首先将T0设定工作于定时方式,对机器周期计数形成基准时间(50ms),然后用另一个定时/计数器T1对基准时间计数形成秒,妙计60次形成分,分计60形成小时,小时计到12。
最后通过数码管把它们的内容在相应的位置显示出来,达到时、分、秒计时的功能。
此外还要实现对时间的调整功能,89C51的P1.0、P1.1、P1.2外接三个独立按键,当按下P1.0按键时,系统进入调时间的状态或启动时间显示的功能;
当按下P1.1按键时,对显
示的数码管进行加一的功能;
当按下P1.2按键时,对显
示的数码管进行减一的功能,达到调整时间的目的。
2.3系统框图设计根据电子时钟能够实现的功能,采用单片机内部资源,设计出了系统原理框图,如图2-1所示。
在单片机内部构建三个模块:
控制模块、译码模块、定时模块,用以实现自动计数、译码显示功能。
单片机外部构建四个电路:
时钟电路、复位电路、外部按钮电路、显示电路,用以实现对单片机内部计数控制以及译码输出的正确显示。
该电子时钟是将秒、分、时显示在人的视觉器官面前的一种计时装置。
故将计时周期设置为24小时,当显示满刻度是23时59分59秒时,数码管显示为0。
为了确保时间正常校对,在系统中设有校对按钮,用以实现对数码管显示的正确调整。
2.4系统电路原理设计在本次的设计中对12MHZ的系统时钟进行定时计数,初值设为B03CH。
形成定时时间为50ms。
用片内RAM的7BH单元对50ms计数,计20次1秒钟到,然后对秒计数器78H单元加1,秒计数器加到60后就向分进位,则分计数器79H单元加1而秒计数器78H单元清零;
分计数器加到60后又向时进位,则时计数器7AH单元加1而分计数器79H单元清零;
时计数器加到24则时计数器清零。
然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。
显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。
根据电路原理框图设计出电路原理图如图2-1所示,由12MHz的晶振给单片机提供固定的时钟频率,通过k1、k2、k0可以对显示电路时间进行位设定。
在图2-2中,复位电路、时钟电路、控制电路加上单片机组成单片机最小应用系统,能够实现很多复杂的功能。
系统由AT89C51、LED数码管、按键、电容、电阻等部分构成,能实现时间的调整、输出、调时间等功能。
系统中按钮k能对时间进行调整功能的按钮,采用单键控制调时功能,运用软件去抖判断按键的时间从而选择完成相对应的功能。
当按下k0第一次时,对hour来调节小时的时间;
当第二次按下k0时,对minute来调节分针的时间;
第三次按下是对scoend来调节秒时间。
在设置秒位时间时,k1按下,秒就加1;
如果k2按下,秒就减1。
时、分调节与秒设定相同。
系统中的按键采用中断技术来检测,它在单片系统中有着十分重要的作用,它不仅可以提高单片机CPU的效率,也可以对突发事件处理。
所谓中断就是当CPU正在执行程序A时,发生了另一个急需处理的事件B,这是CPU暂停当前执行的程序A,立即转去执行处理事件B的程序,处理完事件B后,再返回到程序A继续执行,这个过程被叫做中断。
计数器采用软件编程来实现时钟,数码管显示采用动态显示。
第3章系统各单元电路分析3.1AT89C51AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS的8位微处理器,俗称单片机。
AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的
由于电路原理中只用到单片机的p0、p1、p2口,所示下面对这三个端口进行详细介绍。
1)、P0口:
P00~P07统称为P0口,在不接片外存储器与不扩展I/O接口时,作为准双向输入/输出接口。
在接有片外存储器或扩展I/O接口时,P0口分时复用为低8位地址总线和双向数据总线。
P0口是一个三态双向口,由一个输出锁存器、两个三态缓冲器、输出驱动电路和输出控制电路组成。
在输入数据时,应人为地先向P0口写“1”,定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
2)、P1口:
P10~P17统称为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编程和校验时接收高八位地址信号和控制信号。
3.2复位电路计算机在启动运行时都需要复位,复位时使中央处理器CPU和内部其他部件处于一个确定的初始状态,从这个状态开始工作。
AT89C51单片机有一个复位引脚RST,高电平有效。
在时钟电路工作以后,当外部电路使得RST端出现两个机器周期(24个时钟周期)以上的高电平,系统内部复位。
复位有两种方式:
上电复位和按钮复位。
在此次的设计中,我采用按键复位,
只要RST保持高电平,AT89C51单片机将循环复位。
复位期间,ALE、PSEN输出高电平。
RST从高电平变为低电平后,PC指针变为0000H,使单片机从程序存储器地址为0000H的单元开始执行程序。
复位后,内容各寄存器的初始内容如表4-1所示,当单片机执行程序出错或进入死循环时,可按复位按钮重新启动。
3.3时钟电路在本次设计中,时钟电路设计就是采用内部方式,即利用芯片内部的振荡电路。
AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2是高增益反相放大器的输入端和输出端。
这个高增益反相放大器将与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体振荡器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中,对外接电容的值虽然没有严格的要求,但是电容的大小会影响起振的快速和温度的稳定性、振荡器的稳定性、振荡器频率的高低。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22uF。
在焊接刷电路板时,我们应注意晶体振荡器和电容尽可能安装的与单片机芯片靠近些,用以减少寄生电容,为了更好地保证振荡器可靠地工作和稳定行,其电路图如图3-3所示。
3.4按键电路独立式键盘是各按键相互独立,每个按键各接一根I/O接口线,每根I/O接口线的按键是不会影响其他的I/O接口线。
在本次设计中,按键为K0、K1、K2,他们分别与单片机P10、P11、P12接口线相接。
通过按键控制显示器的显示。
其电路图
3.5LED显示电路在本次的设计中,采用的8位的数码管显示器。
数码管如果按照段数分可为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多了一个小数点的显示;
如果按能够显示多少个“8”分类的话,也可以可分为1位、2位、4位等数码管。
如果按照发光二极管单元的连接方式又可以分为共阳极数码管和共阴极数码管。
共阳极的数码管是将所有发光二极管的阳极接到一起后就形成公共阳极(COM)的数码管,共阳极数码管在应用时要将公共极(COM)接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。
共阴极数码管是将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴极数码管在应用时应将公共极(COM)接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。
第四章系统软件程序设计
4.1主程序
先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有按键按下时,则转入相应的功能程序。
4.2数码管显示模块
本设计有8个数码管,从右到左为妙、横线、分、横线、时。
在本系统中数码管显示采用软件译码动态显示。
在存储器中首先建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段表中查出所显示的信息的断码,从P0端口输出,同时在P2端口进行数码管显示。
4.3定时器/计数器T0中断服务程序
T0用于计时,选中方式一,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加一。
秒单元加到60则对分单元加一,同时秒单元清0;
分单元加到60则对时