澳洲幸运10开奖结果:(全字版)单片机课程电子闹钟设计_计算机软件与应用_IT /计算机_专业资源

2021-03-10 06:28:24 浏览: 164次 来源:【jake】 作者:-=Jake=-

概述1. 1课程设计的目的和意义本文使用AT89C51单片机与七段显示器相结合,设计了一个简单的定时闹钟,该闹钟可以在计算机教室或实验室中使用,因为使用了七段显示器显示数据,所以它也可以在夜间或黑暗的地方使用。您可以设置当前时间并显示警报设置时间。如果时间到了,闹钟将响一分钟。本课程设计主要采用AT89C51单片机定时器时间处理,按键扫描和七段显示扫描设计方法等。闹钟与我们的日常生活密不可分。通过闹钟的设计,我们可以进一步熟悉和掌握单片机的内部结构和工作原理,并掌握单片机仿真软件Proteus的使用。 1. 2课程设计所需的组件AT89C51×1、8255A×1、7SEG-MPX6-CC×1,AVX0402NPO33P×2,CRYSTAL×1、3WATT10K×3,BUTTON×3、10WATT1K×8、74LS00×1,SOUNDER ×1,MINRES300R×1,SW-SPDT×1。 1. 3设计任务的基础是熟练掌握单片机及其仿真系统的使用,综合运用单片机原理,单片机原理,单片机接口技术等专业知识,并设计时序闹钟由AT89C51单片机控制。二。系统总体方案和硬件设计2. 1总体设计框图数字定时闹钟由AT89C51单片机控制,并使用24小时制时钟。

在基于单片机的数字定时闹钟的设计中,要解决三个主要问题:一个是LED显示模块的驱动和编程,第二是在显示器中使用计时器。单片机,其三是如何利用单片机的外部中断来实现时钟功能和工作模式的转换。数字定时闹钟系统的框图如图1所示,包括主电路和显示电路。 2. 2主电路主电路图如图3所示。该电路使用P3端口的P 3. 0端口线实现小时计时功能。还使用P3端口的P 3. 0端口实现报警功能。每小时的时间信号由SOUNDER模拟。在一个小时内,连接到P 3. 0端口的SOUNDER将发出警报一分钟。图2中的开关K4用于警报控制。当K4 = 1(开关处于ON位置)时,打开闹钟使其在预定时间报警;当K4 = 0(开关处于OFF位置)时,关闭警报。此外,当警报响起时,K4还可以用作警报停止开关。如果没有停止警报,它将警报一分钟。警报信号也由SOUNDER模拟。按键K1,K 2、 K3和开关K 5、 K6的定义如表1所示。-1键K5 K6K3K1 K2键名校时间键闹钟时间键转换键+-表一键功能进入时间校准状态,进入闹钟时间校准状态,切换到时间校准,然后在校准后切换到时钟状态切换到时钟后,闹钟将切换到时钟状态,或者在调整时钟时或在调整时间后,当调整时间或调整时间时,将其增加1并增加1。本设计中使用的AT89C51单片机是ATMEL89系列单片机。

ATMEL89系列MCU是ATMEL公司的8位Flash MCU系列。 89系列单片机以8031为核心组成。它与8051系列单芯片计算机兼容。其最大的特点是它在芯片上包含闪存。其功能特点如下:(1)由于具有内部闪存,因此在系统开发过程中很容易修改程序,这大大缩短了系统的开发周期。同时,它可以在系统工作过程中有效。某些数据信息存储在本地,即使外部电源损坏也不会影响信息的存储。[2) 89系列单片机的端子是与8051系列相同。因此,当89系列单片机2替换8051系列单片机时,可以直接替换。(3) 89系列单片机使用静态时钟模式,可以节省时间)。 (这对于减少便携式产品的功耗非常有用。(4)通用OTP产品一旦编程不正确,就会变成废品。)89系列单片机使用闪存。因此,在错误的编程之后,仍然可以对其进行重新编程,直到正确为止,因此不会浪费。 (5)用89系列单片机设计的系统可以重复测试。每个测试可以编程为不同的程序,这可以确保用户的系统设计是最优的。并且随着用户的需求和发展,它也可以进行修改,以便系统可以继续遵循用户的最新要求。

AT89C51微控制器的结构基本上与8051系列的结构相似。芯片上有128B RAM,6个中断源和一个片上振荡器,但芯片上有4KB闪存。输出端子和命令系统与8051的输出端子和命令系统相同。兼容系列。引脚功能如上图所示。 AT89C51采用静态逻辑设计,可将工作频率降至0Hz,并提供两种可以通过软件选择的省电模式,即空闲模式和掉电模式。在空闲模式下,CPU停止工作,而RAM,计时器,串行端口和中断系统继续工作。在掉电模式下,片内振荡器停止工作。由于时钟是“冻结”的,因此所有功能都被暂停。因此,只有下一个硬微控制器选择AT89C51时,才保存片内RAM的内容。将XTAL2分别连接到1u电容器,并并联连接一个晶体振荡器和两个电容器,最后接地。复位电路通过引脚RST连接。本系统采用开机加按钮电平复位模式。 RST:复位输入。当振荡器使器件复位时,将RST引脚保持高电平两个机器周期。 ALE / PROG:访问外部存储器时,地址锁存器允许的输出电平用于锁存地址的状态字节。在FLASH编程期间,此引脚用于输入编程脉冲。在正常情况下,ALE端子会以恒定的频率周期输出正脉冲信号,该频率周期是振荡器频率的1/6。

因此,它可用作外部输出的脉冲或用于计时目的。但是,应注意,每次将其用作外部数据存储器时,都会跳过ALE脉冲。如果要禁用ALE的输出,可以在SFR8EH地址上设置0。此时,ALE仅在执行MOVX时起作用,并且MOVC指令为ALE。此外,该引脚会被轻微拉起。如果微处理器处于外部执行状态ALE被禁止,则该设置无效,并且EA作为掉电保护被连接到高电平,并且P 0、 P 1、 P 2、 P3被连接到微处理器。外围设备。 VCC:电源电压。 GND:接地。端口P0:端口P0是一个8位漏极开路双向I / O端口乐鱼直播 ,每个引脚可以吸收8TTL栅极电流。第一次将P1的引脚写为1时,它被定义为高阻抗输入。 P0可用于外部程序数据存储器电子闹钟的结构,可以定义为数据/地址的第八位。在FIASH编程期间,P0端口用作原始代码输入端口。选中FIASH时,P0输出原始代码。此时,必须从外部将P0拉高。端口P1:端口P1是具有内部上拉电阻的8位双向I / O端口。端口P1的缓冲器可以接收和输出4TTL栅极电流。将1写入P1端口引脚后,内部将其上拉至高电平并可用作输入。当端口P1从外部下拉至低电平时,它将输出电流。这是由于内部上拉引起的。

在FLASH编程和验证期间,P1端口用作接收的第八个地址。端口P2:端口P2是具有内部上拉电阻的8位双向I / O端口。端口P2可以接收缓冲区并输出4个TTL栅极电流。当端口P2被写为“ 1”时,其引脚在内部被上拉。上拉电阻被拉高并用作输入。因此,当用作输入时,端口P2的引脚在外部被拉低以输出电流。这是由于内部上拉引起的。当端口P2用于外部程序存储器或16位地址外部数据存储器用于访问时皇冠2登录 ,端口P2输出地址的高8位。给定地址“ 1”时,它将利用内部上拉功能。读取和写入外部8位地址数据存储器时凤凰体育 ,P2端口输出其特殊功能寄存器的内容。在Flash编程和验证期间,端口P2接收地址信号和控制信号的高8位。 P3端口:P3端口引脚是带有内部上拉电阻的8个双向I / O端口,可以接收和输出4个TTL栅极电流。当将“ 1”写入端口P3时爱游戏网页版 ,它们在内部上拉至高电平并用作输入。作为输入,由于外部下拉电阻较低,因此P3端口将由于上拉而输出电流(ILL)。 -3-3软件系统设计3. 1软件设计说明数字定时闹钟的第二个信号是由单片机定时器T0产生的。由于开发机的晶体振荡器频率为6MHz,因此T0的最大计时时间大大少于1秒。因此,在设计中结合了硬件计数和软件计数。

通过T0产生一定的计时时间,然后使用该软件进行计数,从而产生1秒的时间信号。在设计中,定时器T0使用中断模式。时间到时,单片机会产生一个中断,并在T0的中断服务程序中实现小时,分钟和秒的累加。另外,该中断的优先级高于其他中断,因此可以确保定时闹钟准确运行。在设计中,外部中断0和外部中断1分别用作时间调整和警报时间调整按钮的触发输入。需要校准时间时,拨动K5或K6开关以产生外部中断,然后输入相应的中断服务程序。在外部中断0和外部中断1的中断服务程序中,只有一条指令的标志位置为“指示按钮”,然后在主程序中通过查询标志来检查是否按下了按钮少量。如果发现标志位为1,它将进入时间校准子例程以进行时间校准;否则,将进入时间校准子例程以进行时间校准。如果为0,则时间将照常显示。拨动K5开关时,它将进入时间校准状态,用户可以轻松地校准时间。拨动K6开关时,它将进入闹钟校准状态。此时,您可以根据需要设置闹钟时间。在闹钟时间期间,时钟继续计数,即,时钟不影响时钟时间。 3. 2定时闹钟程序流程图合理的软件结构是设计高性能单片机应用系统的基础。根据系统的定义,可以将整个工作分解为几个相对独立的操作,并采用模块化的设计方法。 ,它具有易于设计和调试,易于完成以及共享多个程序的优点。

在程序设计中,重设初始值时,一开始将其设置为#0ACH,后来发现数字定时闹钟有点慢,因此将其更改为#0ACH。设计程序编写显示数据段代码时,最初将发送到28H的值设置为#1,并且发现LED闪烁,因此后来将其设置为#2。 8255A的控制字为80H。数字定时闹钟的主程序流程图如图6所示,时间校正子例程如图7所示。-4-编写程序如下:ORG 0000H LJMP MAIN ORG 0003H SETB PSW.5 NOP RETI ORG 000BH LJMP时钟ORG 0013H SETB 7FH RETI ORG 0030HMAIN:MOV SP,#60H MOV TMOD,#01H MOV IE,#87H SETB PT0 MOV TL0,#0B7H MOV TH0,#3CH MOV 20H,#00H MOV 21H,#00H MOV 22H ,#00H MOV 23H,#00H MOV 50H,#06H MOV 51H,#28H MOV 52H,#00H MOV DPTR,#0300H MOV A,#80H MOVX @ DPTR,A CLR PSW.5 CLR 7FH SETB TR0 SETB IT0 SETB IT1 CLR P 3. 0SS:LCALL CUTIN0 LCALL SSCAN JNB PSW.5,LK LCALL KEY0LK:JNB 7FH,SS LCALL KEY1 SJPU SSCUTIN0 PSW PUSH Acc MOV 25H,R0 MOV R0,#79H MOV A,22H ACALL BCD MOV A,21H ACALL BCD MOV A,20小时;外部中断INT0,时间校准;定时器T0,定时0. 1秒中断;外部中断INT1,闹钟校正;将T0设置为定时器,方式1工作; T0优先级中断; T0设定初始值;清除存储单元; 8255控制字;清除标志位;警报关闭;显示单元解码;第二单元子单位;小时单位5-ACALL BCD MOV R0,25H POP Acc POP PSW RET CUTIN1:PUSH PSW PUSH Acc MOV 25H,R0 MOV R0,#79H MOV A,42H ACALL BCD MOV A,41H ACALL BCD MOV A, 40H ACALL BCD MOV R0,25H POP Acc POP PSW RET BCD:MOV B,#0AH DIV AB MOV @ R0,B INC R0 MOV @ R0,A INC R0 RET CLOCK:JNB PSW.5,ZC LJMP FH ZC:MOV TL0 ,#0B7H MOV TH0,#0A CH PUSH PSW PUSH Acc INC 23H MOV A,23H CJNE A,#10,RET0 MOV 23H,#00H INC 22H MOV A,22H CJNE A,#60,RET0 MOV 22H,#00H CLR P 3. 0 INC 21H MOV A,21H CJNE A,#60,RET0 MOV 21H,#00H INC 20H MOV A,20H CJNE A,#24,RET0 MOV 20H,#00H RET0:MOV A,21H CJNE A, 51H,B0;时间调整或报警小时显示单元解码;第二单元分钟单位;小时单位;十进制调整,转换为BCD码;定时器T0中断;重置初始值;一秒钟到了;一分钟到了;一小时到了; 24小时你在吗?警报时间是否相等?-6-MOV A,20H CJNE A,50H,B0 SETB P 3. 0 B0:POP Acc POP PSW FH:RETI SSCAN:MOV R1,#79H MOV R3,#06H MOV 26H,# 0FEH DISP:MOV A,#0FFH MOV DPTR,#0100H MOVX @ DPTR,A MOV DPTR,#0000H MOV A,@ R1 LCALL TABLE MOVX @ DPTR,A MOV DPTR,#0100H MOV A,26​​H MOVX @ DPTR,A MOV 28H,#2 D1MS:MOV 27H,#250 DJNZ 27H,$ DJNZ 28H,D1MS RL A MOV 26H,A INC R1 DJNZ R3,DISP MOVX @ DPTR,RET表:添加A,#1 MOVC A,@ A + PC RET DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH键:MOV 42H,#00H A0:ACALL DELAY MOV P1,#0FFH JB P 1. 3,JJ1 INC 41H MOV R2 ,41H CJNE R2,#3CH,A1 MOV 41H,#00H A1:ACALL DELAY JNB P 1. 3,A1 SJMP A0 JJ1:JB P 1. 4,ZHJ DEC 41H MOV R2,41H CJNE R2,#0FFH, A2 MOV 41H,#3BH A2:ACALL DELAY;时间相等吗?警报开启;显示子程序,显示存储器的起始地址;六位数LED数字显示;编写显示数据段代码;键盘扫描子程序-7-JNB P 1. 4,A2 SJMP A0 ZHJ:JB P 1. 5,A0 ACALL DELAY JNB P 1. 5,ZHJ SSR:ACALL SSCAN JB P 1. 3,JJ2 INC 40H MOV R2,40H CJNE R2,#18H,A4 MOV 40H,#00H A4:ACALL DELAY JNB P 1. 3,A4 SJMP SSR JJ2:JB P 1. 4,ZHH2 DEC 40H MOV R2,40H CJNE R2,# 0FFH,A5 MOV 40H,#17H A5:ACALL延迟JNB P 1. 4,A5 SJMP SSR ZHH2:JB P 1. 5,SSR ZHH3:ACALL延迟JNB P 1. 5,ZHH3 ACALL SSCAN RET KEY0:ACALL SSCAN JB P 3. 2,JZD MOV 41H,21H MOV 40H,20H CLR TR0 ACALL KEY MOV 22H,42H MOV 21H,41H MOV 20H,40H MOV TH0,#0BCH JZD:CLR PSW.5 SETB TR0 RET KEY1:MOV 41H,51H MOV 40H,50H ACALL DELAY JB P 3. 3,JZD2键盘按键MOV 51H,41H MOV 50H,40H JZD2:CLR 7FH RET延迟:PUCC Acc LCALL CUTIN1; Уʱ;闹钟校正;延迟子程序8-LCALL SSCAN POP Acc RET END四个Proteus和keil软件仿真4. 1注意事项在Proteus 7. 4 ISIS中,放置组件,设置电路参数,连接组件,多次修改接线错误,绘制数字计时器闹钟的整个电路,并进行ERC检查。

然后加载由keil编译的A.HEX​​进行功能测试和仿真。在仿真中,请注意不具有仿真功能的组件的种类。例如,SOUNDER,您需要使用可以驱动声音的驱动器,但不能随便选择它。应该注意的是,这种设计使用了7段共阴极LED数码管驱动芯片。放置六位数的LED时,请选择7SEG-MPX6-CC(共阳极)而不是7SEG-MPX6-CA(共阴极)。 Keil软件是程序编辑软件。它是当前开发MCS-51系列单片机的最受欢迎的软件。这些部分通过集成开发环境(uVision)进行组合。要运行Keil软件,您需要奔腾或更高的CPU,16MB或更多的RAM,20M的可用硬盘空间,WIN9 8、 NT,WIN200 0、 WINXP和其他操作系统。在此实验中,您需要结合Proteus和keil。在keil上输入程序,编译并正确运行,然后将其下载到Proteus,并使用电路图对其进行仿真。 4. 2仿真步骤(1)首先连接Proteus进行实验所需的电路,如下图所示:-9-(2)在keil上输入程序并正确运行该程序。将其下载到Proteus亚博直播 ,然后准备运行电路。

(3)独立Proteus中的键,电路开始工作,如下图所示:-10-接下来是如何调整时间和闹钟。(4)有三个开关将K 4、 K 5、 K6移至左侧电源,单击开始按钮进行模拟,当闹钟从零开始时,K5移至右侧地面,单击K1加1点,然后单击K2减去1点,单击K3重新开始计时并使K3旋转以校正时间,每个点K1​​计1分加1小时,每次点K2计负1小时-11-点K3返回时钟状态,开始计时将K5置于左侧电源侧,将K6置于右侧地面侧,单击K1将1添加到闹钟校准点,点K2减去1闹钟校准点.-12点K3切换到闹钟,点K1增加闹钟时间,并在闹钟时间点K2减少1K4,击中右地面边缘,停止闹钟-13-5课程设计体验时间fli es,眨眼间,一个学期即将结束,这个学期的综合课程设计终于完成了。俗话说:“好的开始是成功的一半。”在课程设计方面,我认为最重要的是对设计进行良好的预览,仔细研究老师给出的主题,然后选择您感兴趣的主题。其次,老师应该仔细听实验的解释,因为只有理解了实验,您才能付出一半的努力来获得两倍的结果。 ,如果不清楚,只需选择主题并发呆进行设计即可。最后,根本没有收获。

最后,我们必须注意程序的模块化和修改的便利性,以及程序的调试和方法的掌握。尽管此课程的设计在实验室中只需要16个小时,但是由于我们都有自己的计算机,因此在宿舍中进行实验的时间必须超过这16个小时。该软件的编程还要求我们不断进行调试。由于没有方便的电路板,因此只能使用仿真软件进行仿真。当我看到班级的成绩时,我差点跳下床。我很激动,尽管它只是六个不断变化的数字,但是它背后的许多内容无法用几句话清晰地说出来。当然,这有很多问题。 一、由于不熟悉教科书理论而导致的编程错误。其次,是在学习态度上。本课程设计是对我学习态度的考验。关于集成单片机课程的实习,我的第一个经验是电子闹钟的结构,作为工程技术人员,所要求的基本质量绝对应该严格。我们在实习期间遇到的大多数问题是由于我们缺乏严谨性。第三,在生活方面,我意识到,无论你做什么,只要你足够强大,有足够的毅力和决心,有足够的勇气去挑战困难,就什么也做不了。在这个罕见的课程设计过程中,我锻炼了自己的思维和实践技能。通过主题选择和电路设计的过程,我增强了对问题的思考的完整性以及与现实生活联系的可行性。在方案设计和芯片选择的选择上,我们培养了全面应用单片机的能力,并进一步了解了单片机的每个引脚的功能。

我们还行使个人的能力来获取技术信息,动手能力,发现问题和解决问题。并且我们精通相关设备的性能和测试方法。再次感谢您对老师的指导和同学们的帮助。他们让我更好地了解了它是学习还是生活,生活是真实的,我必须稳步行走。尽管课程设计时间很短,但我学到了很多东西,这使我睁开了眼睛,感到很深刻。参考文献[1]冯玉昌。单片机系统设计与案例分析。西安电子科技大学出版社,2007,5 [2]何立民。单片机应用技术的选择8.北京:北京航空航天大学出版社,2000,10 [3]于法山。单片机原理与应用技术。中国矿业大学出版社,2003,21-30 [4]张应新主编。单片机的原理应用与接口技术。北京:国防工业出版社,199 3. 67 -89 [5]杨刚,周群。电子系统设计与实践。电子工业出版社。 2004:18-23 341-347 118-122 [6]屠世良,张有德。单片机控制技术。清华大学出版社。 1994:86-87 146-147- 15-

老王