版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
--表一表一按键功能按键键名功能K5校时键进入校时状态K6闹钟校时键进入闹钟校时状态K3转换键校分后切换到校时校时后切换到时钟状态闹钟校分后切换到校时闹钟校时后切换到时钟状态K1+校分或校时的时候使其加1递增K2-校分或校时的时候使其减1递减本设计采用的AT89C51单片机是ATMEL89系列单片机。ATMEL89系列单片机是ATMEL公司的8位Flash单片机系列。89系列单片机是以8031为核心构成的,它和8051系列单片机是兼容的,其最大特点是片内含有Flash存储器。其功能特点为:(1)由于内部含有Flash存储器,因此在系统的开发过程中可以十分容易地进行程序的修改,大大地缩短了系统的开发周期。同时,在系统工作过程中,能有效地保存一些数据信息,即使外界电源损坏也不影响信息的保存。(2)89系列单片机的端子和8051系列是一样的,因此,当89系列单片机取代8051系列单片机时,可以直接进行代换。(3)89系列单片机采用静态时钟方式,可以节省电能。这对于降低便携式产品的功耗十分有用。(4)一般的OTP产品,一旦错误编程就成了废品。而89系列单片机内部采用了Flash存储器。所以,错误编程之后仍可以重新编程,直到正确为止,因此不存在废品。(5)用89系列单片机设计的系统,可以反复进行系统试验。每次试验可以编入不同的程序,这样可以保证用户的系统设计到最优。而且随着用户的需要和发展,还可以进行修改,使系统能不断追随用户的最新要求。AT89C51单片机的结构与8051系列基本相近,片内有128B的RAM,有6个中断源,有片内振荡器,只是片内有一个4KB的Flash存储器,输出端子和指令系统都与8051系列兼容。其引脚功能见上图AT89C51是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择的省电方式,即空闲方式和掉电方式。在空闲方式中,CPU停止工作,而RAM、定时器计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬单片机选择AT89C51,时钟系统通过将XTAL1与XTAL2分别接1u的电容,并将一晶振与两电容分别并联最后引出接地。复位电路通过引脚RST接出,此系统采用上电加按钮电平复位方式。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效将EA接高电平作为掉电保护,P0、P1、P2、P3分别与外围器件相连。VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。编写程序如下:ORG0000HLJMPMAINORG0003HSETBPSW.5NOP;外部中断INT0,校时RETIORG000BH;定时器T0,定时0.1秒中断LJMPCLOCKORG0013H;外部中断INT1,闹钟校时SETB7FHRETIORG0030HMAIN:MOVSP,#60HMOVTMOD,#01H;设置T0为定时器,方式1工作MOVIE,#87HSETBPT0;T0优先中断MOVTL0,#0B7H;T0设置初值MOVTH0,#3CHMOV20H,#00H;清内存单元MOV21H,#00HMOV22H,#00HMOV23H,#00HMOV50H,#06HMOV51H,#28HMOV52H,#00HMOVDPTR,#0300H;8255控制字MOVA,#80HMOVX@DPTR,ACLRPSW.5;清标志位CLR7FHSETBTR0SETBIT0SETBIT1CLRP3.0;闹钟关SS:LCALLCUTIN0LCALLSSCANJNBPSW.5,LKLCALLKEY0LK:JNB7FH,SSLCALLKEY1SJMPSSCUTIN0:PUSHPSW;显示单元译码PUSHAccMOV25H,R0MOVR0,#79HMOVA,22H;秒单元ACALLBCDMOVA,21H;分单元ACALLBCDMOVA,20H;时单元ACALLBCDMOVR0,25HPOPAccPOPPSWRETCUTIN1:PUSHPSW;校时或闹钟小时显示单元译码PUSHAccMOV25H,R0MOVR0,#79HMOVA,42H;秒单元ACALLBCDMOVA,41H;分单元ACALLBCDMOVA,40H;时单元ACALLBCDMOVR0,25HPOPAccPOPPSWRETBCD:MOVB,#0AH;十进制调整,转BCD码DIVABMOV@R0,BINCR0MOV@R0,AINCR0RETCLOCK:JNBPSW.5,ZC;定时器T0中断LJMPFHZC:MOVTL0,#0B7H;重新设置初值MOVTH0,#0ACHPUSHPSWPUSHAccINC23HMOVA,23HCJNEA,#10,RET0;一秒钟到了吗MOV23H,#00HINC22HMOVA,22HCJNEA,#60,RET0;一分钟到了吗MOV22H,#00HCLRP3.0INC21HMOVA,21HCJNEA,#60,RET0;一小时到了吗MOV21H,#00HINC20HMOVA,20HCJNEA,#24,RET0;24小时到吗MOV20H,#00HRET0:MOVA,21HCJNEA,51H,B0;起闹时间,分相等吗MOVA,20HCJNEA,50H,B0;时相等吗SETBP3.0;闹钟开B0:POPAccPOPPSWFH:RETISSCAN:MOVR1,#79H;显示子程序,显存起始地址MOVR3,#06H;六位LED数码显示MOV26H,#0FEHDISP:MOVA,#0FFHMOVDPTR,#0100HMOVX@DPTR,AMOVDPTR,#0000HMOVA,@R1LCALLTABLEMOVX@DPTR,A;写显示数据段码MOVDPTR,#0100HMOVA,26HMOVX@DPTR,AMOV28H,#2D1MS:MOV27H,#250DJNZ27H,$DJNZ28H,D1MSRLAMOV26H,AINCR1DJNZR3,DISPMOVX@DPTR,ARETTABLE:ADDA,#1MOVCA,@A+PCRETDB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHKEY:MOV42H,#00H;键盘扫描子程序A0:ACALLDELAYMOVP1,#0FFHJBP1.3,JJ1INC41HMOVR2,41HCJNER2,#3CH,A1MOV41H,#00HA1:ACALLDELAYJNBP1.3,A1SJMPA0JJ1:JBP1.4,ZHJDEC41HMOVR2,41HCJNER2,#0FFH,A2MOV41H,#3BHA2:ACALLDELAYJNBP1.4,A2SJMPA0ZHJ:JBP1.5,A0ACALLDELAYJNBP1.5,ZHJSSR:ACALLSSCANJBP1.3,JJ2INC40HMOVR2,40HCJNER2,#18H,A4MOV40H,#00HA4:ACALLDELAYJNBP1.3,A4SJMPSSRJJ2:JBP1.4,ZHH2DEC40HMOVR2,40HCJNER2,#0FFH,A5MOV40H,#17HA5:ACALLDELAYJNBP1.4,A5SJMPSSRZHH2:JBP1.5,SSRZHH3:ACALLDELAYJNBP1.5,ZHH3ACALLSSCANRETKEY0:ACALLSSCANJBP3.2,JZDMOV41H,21H;校时MOV40H,20HCLRTR0ACALLKEYMOV22H,42HMOV21H,41HMOV20H,40HMOVTH0,#0BCHJZD:CLRPSW.5SETBTR0RETKEY1:MOV41H,51H;闹钟校时MOV40H,50HACALLDELAYJBP3.3,JZD2LCALLKEYMOV51H,41HMOV50H,40HJZD2:CLR7FHRETDELAY:PUSHAcc;延时子程序LCALLCUTIN1LCALLSSCANLCALLSSCANPOPAccRETEND四Proteus和keil软件仿真4.1注意事项在Proteus7.4ISIS中进行放置元件、设置电路参数、连接各元件,经几次修改布线错误,画出数字定时闹钟总电路,并进行ERC检查。然后加载用keil编译生成的A.HEX进行功能测试,仿真。在仿真时注意不能用那种没有仿真功能的元器件。比如SOUNDER,要用可以驱动发声的那种,而不能随便选用。要注意本设计用的是7段共阴极LED数码管的驱动芯片。在放置六位数码管LED时要选择SEG-MPX6-CC7(共阳极)而不是7SEG-MPX6-CA(共阴极)。Keil软件是一款程序编辑软件,是目前最流行开发MCS-51系列单片机的软件,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,MB16或更多RAM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JNJ-6231-生命科学试剂-MCE
- 2026年反应实验测试题及答案
- 2026年期末素质测试题答案
- 2026年运动生理自我测试题及答案
- 2026年情绪健康人生测试题及答案
- 2026年锅炉岗位测试题及答案
- 2026年扩招高职业入学测试题及答案
- 消防安全管理制度范文
- 制作图形面积题目及答案
- AI在税务中的应用
- 2025江苏苏州市城投集团第一批次招聘16人笔试历年参考题库附带答案详解
- 2026年绍兴市社区工作者(专职网格员)招聘考试试卷1含答案解析
- 2026年纪检监察考试题库(附参考答案)
- 第22课 《太空一日》课件(内嵌视频 ) 2025-2026学年统编版语文七年级下册
- GB/T 21186-2026傅立叶变换红外光谱仪
- 2025年事业单位预防医学岗《公卫知识》真题及答案解析
- 2025年度中国展览数据统计报告
- (完整版)企业商业秘密管理体系及保密措施
- 福建省特安安全技术服务中心有限公司招聘笔试题库2026
- 2026年高考(湖南卷)英语试题及答案
- 【期末】《国家安全概论》(西安交通大学)期末考试慕课答案
评论
0/150
提交评论