课程设计:基于单片机AT89C52电子时钟课程设计说明书.doc
《课程设计:基于单片机AT89C52电子时钟课程设计说明书.doc》由会员分享,可在线阅读,更多相关《课程设计:基于单片机AT89C52电子时钟课程设计说明书.doc(20页珍藏版)》请在三一办公上搜索。
1、单片机课程设计报告一、课程设计内容 1)显示时间功能,能正确显示“时”、“分”。2)显示日期功能,能显示“月”、“日”。3)闹钟功能,可按设定的时间闹时。4)具有校准月、日、时、分的功能。二、元器件介绍本次课程设计我使用的单片机是至强51蓝精灵版,而实验中使用到的关键元器件主要有:STC85C52RC,4*4按键,蜂鸣器,数码管等。下面是STC85C52RC的简单介绍: AT89C52是本设计最核心的部件,它是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8K bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATM
2、EL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。AT89C52单片机适用于许多较为复杂的控制应用场合。下图是AT89C52最常见的一种封装。 如上图所示,AT89C52共有40个管脚,其各个功能如下:VCC 运行时加5VVSS 接地XTAL1 振荡器反相放大器及内部时钟发生器的输入端XTAL2 振荡器反相放大器的输出端RST 复位输入,高电平有效,在晶振工作时,在RST引脚上作用2个机器周期以上的高电平,将使单片机复位。/VPP 片外程序存储器访问允许信号。欲使CPU仅访问外部程序存储器
3、(地址为0000H-FFFFH),端必须保持低电平(接地),如果端为高电平(接Vcc端),CPU则执行内部程序中的指令。LAE/ 当访问外部程序存储器或数据存储器时,ALE(地址允许锁存)输出脉冲用于锁存地址的低8位位数字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(第二功能)。:程序储存允许()输出是外部程序存储器的读选通信号,当AT89C52由外部存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲。在此期间,当访
4、问外部数据存储器,将跳过两次信号。P0口 是一组8位漏极开路双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。P1口 是一个内部带上拉电阻的8位准双向I/O口。在对EPROM型单片机编程和验证程序时,它接收低8位地址。P1能驱动(吸收或输出电流)4个LSTTL电路。P1.0还被用作定时器/计数器2的外部计数输入端,即专用功能T2。P1.1被用作专用功能端T2EX,即定时器T2的外部控制端。参见下表。 P1.1和P1.1的第二功能引脚号功能特性P1.0T2(定时/计数器2外部计数脉冲输入),时钟输出P
5、1.1T2XE(定时/计数器2捕获/重装载触发和方向控制)P2口 是一个带有内部上拉电阻的8位准双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻,某个引脚外部信号拉低是会输出一个电流。P3口 是一组带有内部上拉电阻的8位准双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示: P3口各位的第二功能 端口引脚 第二功能 P3.0RXD
6、 (串行输入口)P3.1TXD (串行输出口)P3.2 (外部中断0) P3.3 (外部中断1)P3.4T0 (定时/计数器0) P3.5T1 (定时/计数器1)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)三、设计方案1)实物图2)实验程序流程图主程序开 始T0初始化,中断初始化,启动定时器while(1)死循环调用子程序调用启停子程序keysure( )键盘扫描调用子程序keyhandle( )根据键盘扫描的返回值进行处理调用compare( )函数比较现在显示的时间是否和闹钟时间相同void main()init(); while(1) keysure();keyh
7、andle();compare(); 初始化函数void init()TMOD = 0x01; TH0 = 0xdc; TL0 = 0x00; EA=1; ET0=1; TR0=1; keytemp=8;/这是为了还没有扫描按键时给keyhandle()函数处理用的/ 实验中只是用了T0这一个定时器,也只是使用了T0这个中断。实验中设置TMOD = 0x01使T0工作于方式1。并且由公式t=(65535-M)*6/12MHz,而t为中断溢出时间,为10ms,所以得出初值M=3340=0xdc。键盘扫描函数否是调用keysure()函数用以扫描键盘是否真正被按下键盘是否真的被按下?调用scank
8、ey(),根据按下键位返回值给keyhandle()处理void keysure()static bit flag1; P1 = 0xf0;if(P1 != 0xf0)Delay_1ms(15);if(P1 != 0xf0)keytemp= scankey();flag1=1; 键盘返回值函数scankey()uchar scankey(void) /键盘扫描后返回值/uchar i,j, temp, Buffer4 = 0xef, 0xdf, 0xbf, 0x7f;for(j=0; j4; j+)P1 = Bufferj; _nop_();_nop_();_nop_();temp = 0x0
9、1; for(i=0; i4; i+)if(!(P1 & temp) return (i+j*4);temp 59) hour=0; break; case 2 : nhour+;keytemp=9; if(nhour24) nhour=0; break; case 3 : month+;keytemp=10; if(month12) month=0; break; default: break; if(which=2)/此减数/ switch(who) case 1 : min+;keytemp=8; if(min59) min=0; break; case 2 : nmin+;keytem
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 基于 单片机 AT89C52 电子 时钟 说明书
链接地址:https://www.31ppt.com/p-4150697.html