ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:305.16KB ,
资源ID:21427417      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21427417.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机制作电子时钟实训报告Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机制作电子时钟实训报告Word文档格式.docx

1、它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程既通用8位微处理器于单片机芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域5。AT89S51元件简介 本次使用的元件是单片机系统的一个常用元件:AT89S51。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通

2、用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51引脚功能说明(附引脚图)Vcc:电源电压GND:接地P0口:P0口是一组8位漏极开路型双向I/O口,即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。5图2- 1 AT89S51引脚图P1口

3、:P1口是一个带有内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。Flash编程和程序校验期间,P1接收低8地址5。P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(例如执行MOVX Ri指令)

4、时,P2口线上的内容(即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash编程和程序校验期间,P2亦接收高位地址和其他控制信号5。P3口:P3口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能5。P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。表2- 1 P3口第二功能端口引脚第二功能信号名称P3.0RXD串行数据接收P3

5、.1TXD串行数据发送P3.2/INT0外部中断0请求P3.3/INT1外部中断1请求P3.4T0定时/计数器0的外部输入P3.5T1定时/计数器1的外部输入P3.6/WR外部RAM写选通P3.7/RD外部RAM读选通RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRT0位(地址8EH)可打开或关闭该功能。DIRT0位缺省为RESET输出高电平打开状态5。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时

6、钟振荡频率的1/6输出固定的正脉冲信号,因此可对外输出时钟或用以定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于出入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,单片机执行外部程序时,应设置ALE无效5。/PSEN:程序储存允许(/PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)使,每个机器周期两次/PSEN有效,即输出两个脉冲。当访问外部数据存储器。没有两次有效的/PSEN信号5。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地

7、址为0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程电压VPP5。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。LED数码管显示电路数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳极,一种是共阴极。共阳极就是把多个LED显示段的阳极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极连接在一起,即为公共商。阳极即为二极管的正极,又称为

8、正极,阴极即为二极管的负极,又称为负极。多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。数码管的显示方法可分为静态显示和动态显示,在本设计中采用的是动态显示,其原理:各个数码管的相同端连接在一起,共同占用8位段引管线:每位数码管的阳极连接在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来6。本设计由两个LED四位一体阴极数码管、8个9012(PNP)三极管、8个510欧上拉电阻等组成,由于LED数码管的位电流较大,故采用三极管来驱动。8个电阻一端

9、接到单片机的P1口,另一端分别接到三极管的基极,发射极接地,集电极与所述数码管芯片的位控制端相连。此驱动电路采用主芯片的通用口并配合三极管来实现四位数码管的动态扫描和显示驱动,具有电路结构简单、占用电路板空间小、驱动能力强、成本低等优点,其缺点是共阴极的数码管采用PNP三极管驱动,这样三极管的损耗比较大。位码由P1口输出,段码由P3口输出,P1口线与LED之间5.1K的限流电阻和PNP三极管,显示的方式为动态显示方式。表2-2 字型与字段关系显示字符gfedcba字型码共阴极共阳极13FHC0H06HF9H25BHA4H34FHB0H466H99H56DH92H67DH82H707HF8H87

10、FH80H96FH90HA77H88HB7CH83HC39HC6HD5EHA1HE79H86HF71H8EH数码管驱动的意义:第一:假如不驱动的话,单片机的高低电平仍然可以控制数码管的亮度,形在动态显示,但这时细心的你会发现这时的数码的亮度会比较暗,并且扫描频率很高,仍然有微小的闪动现象,因为单片机的输出的电流本身就很弱;第二:三极管的作用是:1、起到开关的作用,即某一时刻打开或关闭数码管,形成动态显示;2、驱动数码管,静态显示可以不明显,动态显示的时候,效果就出来了。硬件设计及元器件技术说明电子元器件技术说明AT89S51单片机基板电子元件清单:元件型号或规格数量单片机AT89S51LED3

11、电阻51010K排阻A102J单片机芯片插槽瓷片电容30pF数据线插槽电解电容10F晶振12MHz单排座20位万用板7cm*9cm免驱动数据线按钮电源开关LED数码管显示电路模块所需电子元件清单:LED数码管SR*30361(BS)三极管9012单排针15位4.7k10005cm*7cm硬件电路图实验板原理图控制系统的软件设计软件系统主要分为以下几个部分:主程序、显示子程序及中断服务子程序。以动态显示作为主程序,主要是初始化部分和不断调用动态显示子程序。动态显示子程序,它被主程序不断调用,以保证稳定可靠的显示;按键查询采用中断方式;秒定时采用定时器T0中断方式进行,定时时间为50MS,每50M

12、S溢出一次,中断两次达100MS。然后通过显示子程序将单元里面的十六进制数拆开为BCD码,送到显示缓冲区。流程图程序编写ORG 0000H ;程序执行开始地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETI ;外中断1中断返回ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;串行中断程序入口地址串行中断程序返回; 主程序 ; START

13、: MOV R0,#70H ;清70H-7AH共11个内存单元 MOV R7,#0BH ; clr P3.3 CLEARDISP: MOV R0,#00H ; INC R0 ; DJNZ R7,CLEARDISP ; MOV 20H,#00H ;清20H(标志用) MOV 7AH,#0AH ;放入熄灭符数据 MOV TMOD,#11H ;设T0、T1为16位定时器 MOV TL0,#0B0H ;50MS定时初值(T0计时用) MOV TH0,#3CH ;50MS定时初值 MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用) MOV TH1,#3CH ; SETB EA ;总中断开放

14、 SETB ET0 ;允许T0中断 SETB TR0 ;开启T0定时器 MOV R4,#14H ;1秒定时用初值(50MS20) START1: LCALL DISPLAY ;调用显示子程序 JNB P3.3,SETMM1 ;P3.7口为0时转时间调整程序 SJMP START1 ;P3.7口为1时跳回START1 SETMM1: LJMP SETMM ;转到时间调整程序SETMM 1秒计时程序;T0中断服务程序 INTT0: PUSH ACC ;累加器入栈保护 PUSH PSW ;状态字入栈保护 CLR ET0 ;关T0中断允许 CLR TR0 ;关闭定时器T0 MOV A,#0B7H ;中

15、断响应时间同步修正 ADD A,TL0 ;低8位初值修正 MOV TL0,A ;重装初值(低8位修正值) MOV A,#3CH ;高8位初值修正 ADDC A,TH0 ; MOV TH0,A ;重装初值(高8位修正值)开启定时器T0 DJNZ R4, OUTT0 ;20次中断未到中断退出 ADDSS:20次中断到(1秒)重赋初值 MOV R0,#71H ;指向秒计时单元(71H-72H) ACALL ADD1 ;调用加1程序(加1秒操作) MOV A,R3 ;秒数据放入A(R3为2位十进制数组合) CLR C ;清进位标志 CJNE A,#60H,ADDMM ; ADDMM: JC OUTT0

16、 ;小于60秒时中断退出 ACALL CLR0 ;大于或等于60秒时对秒计时单元清0 MOV R0,#77H ;指向分计时单元(76H-77H)分计时单元加1分钟 MOV A,R3 ;分数据放入A CJNE A,#60H,ADDHH ; ADDHH: JC OUTT0 ;小于60分时中断退出大于或等于60分时分计时单元清0 MOV R0,#79H ;指向小时计时单(78H-79H)小时计时单元加1小时时数据放入A CJNE A,#24H,HOUR ; HOUR:小于24小时中断退出大于或等于24小时小时计时单元清0 OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移 MO

17、V 73H,77H ;入对应显示单元MOV 74H,78H ; MOV 75H,79H ;POP PSW ;恢复状态字(出栈) POP ACC ;恢复累加器开放T0中断 RETI ;中断返回 闪动调时程序 ;T1中断服务程序,用作时间调整时调整单元闪烁指示INTT1:中断现场保护 MOV TL1, #0B0H ;装定时器T1定时初值 MOV TH1, #3CH ; DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次) MOV R2,#06H ;重装0.3秒定时用初值 CPL 02H ;0.3秒定时到对闪烁标志取反 JB 02H,FLASH1 ;02H位为1时显示单元熄灭

18、02H位为0时正常显示 MOV 74H,78H ;INTT1OUT: POP PSW ;恢复现场中断退出FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制 MOV 72H,7AH ;01H位为0时,数据放入分 MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据 AJMP INTT1OUT ;转中断退出FLASH2:01H位为1时,数据放入小时显示单元(74H-75H),小时数据将不显示 MOV 74H,7AH ; MOV 75H,7AH ; 加1子程序 ; ADD1: MOV A,R0 ;取当前计时单元数据到A DEC R0 ;指向前一地址 SWAP

19、 A ;A中数据高四位与低四位交换 ORL A,R0 ;前一地址中数据放入A中低四位 ADD A,#01H ;A加1操作 DA A ;十进制调整 MOV R3,A ;移入R3寄存器 ANL A,#0FH ;高四位变0 MOV R0,A ;放回前一地址单元取回R3中暂存数据指向当前地址单元 MOV R0,A ;数据放入当削地址单元中RET ;子程序返回 清零程序 ;对计时单元复零用 CLR0: CLR A ;清累加器清当前地址单元前一地址单元清0 RET ; 时钟调整程序;当调时按键按下时进入此程序 SETMM: cLR ET0 ;关定时器T0中断 CLR TR0 ; LCALL DL1S ;调用1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1