单片机课程设计基于单片机的定时器设计

合集下载

单片机定时闹钟课程设计

单片机定时闹钟课程设计

单片机定时闹钟课程设计一、课程目标知识目标:1. 理解单片机定时器的工作原理,掌握定时器的编程方法;2. 学会使用单片机实现闹钟功能,了解时间计算与时间显示的基本方法;3. 掌握相关电子元器件的原理和功能,如晶振、电容、数码管等。

技能目标:1. 能够运用C语言编写单片机程序,实现闹钟的定时与显示功能;2. 学会使用调试工具对单片机程序进行调试,解决常见问题;3. 提高动手能力,能够独立完成单片机定时闹钟的硬件电路搭建与程序编写。

情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发创新意识;2. 培养学生团队协作精神,学会共同解决问题;3. 增强学生实践操作能力,树立实践出真知的观念。

课程性质:本课程为实践性课程,结合理论教学,注重培养学生的动手能力与实际应用能力。

学生特点:学生具备一定的单片机基础知识,对编程有一定了解,但对实际应用尚缺乏经验。

教学要求:结合学生特点,注重理论与实践相结合,以学生为主体,引导学生主动参与,提高学生的实践操作能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 理论知识:- 单片机定时器/计数器的工作原理与编程方法;- 时间计算与时间显示技术;- 硬件电路设计原理,包括晶振、电容、数码管等元器件的应用。

2. 实践操作:- 搭建单片机定时闹钟的硬件电路;- 编写单片机程序,实现定时与显示功能;- 使用调试工具对程序进行调试,解决常见问题。

3. 教学大纲:- 第一阶段:回顾单片机基础知识,介绍定时器/计数器原理,分析闹钟功能需求;- 第二阶段:学习时间计算与显示技术,讲解硬件电路设计方法;- 第三阶段:动手实践,分组进行硬件电路搭建与程序编写;- 第四阶段:程序调试与优化,展示成果,总结经验。

4. 教材关联:- 教材第3章:单片机定时器/计数器的原理与应用;- 教材第4章:C语言编程基础,涉及闹钟程序编写;- 教材第5章:电子元器件及其应用,用于硬件电路设计。

基于单片机的定时闹钟设计

基于单片机的定时闹钟设计

基于单片机的定时闹钟设计设计定时闹钟是人们日常生活中常见的需求之一,而单片机技术的发展为定时闹钟的实现提供了可行的解决方案。

本文将介绍基于单片机的定时闹钟设计。

一、研究背景及意义在现代社会中,时间是人们日常生活中非常重要的一个因素。

为了更好地规划时间和提高生活效率,人们需要定时提醒自己进行各种活动。

闹钟作为定时提醒的工具,在人们的日常生活中扮演着不可替代的角色。

而基于单片机的定时闹钟实现具有高精度、多功能等优点,因此备受人们青睐。

二、技术方案设计本文设计的基于单片机的定时闹钟主要由三部分组成:时钟电路、单片机控制电路和显示电路。

1. 时钟电路时钟电路采用RTC芯片,可以提供高精度的时间计量。

RTC芯片内部自带晶振,保证了较高的时钟精度。

时钟电路主要功能为提供当前时间,包括小时、分钟和秒。

2. 单片机控制电路单片机控制电路是实现定时闹钟的核心部分。

程序流程如下:①初始化:单片机启动后,需要对RTC芯片和闹钟设定进行初始化,包括设定当前时间和设定闹钟时间。

②计时函数:单片机开启定时器,在每秒钟时钟信号来临时,计时器会进行一次计数。

③闹钟判断:单片机判断当前时间是否等于闹钟设定时间,如果相等,则触发闹钟事件,启动蜂鸣器提示。

④按键设置:单片机可以通过按键进行时间设置和闹钟设置,包括增加或减少小时、分钟和秒数,并将设置信息保存至RTC芯片内存中。

3. 显示电路显示电路采用数码管进行显示,使用单片机控制输出数据。

数码管分为小时显示、分钟显示和秒显示,可以满足不同的显示需求。

三、实验结果分析通过实验结果可以发现,本文设计的基于单片机的定时闹钟可以准确地显示时间和定时提醒。

同时,可以通过按键进行时间和闹钟的设置,并存储至RTC芯片内部,保证了时间和闹钟的持久性。

四、结论及展望基于单片机的定时闹钟设计具有实用性和可行性,可以提高人们生活的效率和品质。

然而,本设计在信号筛选和抗干扰能力方面还有一定的改进空间,需要通过更深入的研究来进一步完善。

单片机定时器毕业设计(论文)

单片机定时器毕业设计(论文)

毕业设计毕业设计题目:学生学号:学生姓名:所在系(部):专业及班级:指导教师:完成日期:《电气自动化》专业毕业设计任务书课题名称:定时系统课题类型:模拟课题设计的目的:(1)定时设定由按键部分控制(2)实现定时时间的显示数码管显示:分(十位)分(个位)∶秒(十位)秒(个位)(3)到点响铃(4)系统运行中可重新设定定时值(5)最大实现99分59秒的定时设计的任务及主要内容::第一章概述1 任务设计(1)定时设定由按键部分控制(2)实现定时时间的显示数码管显示:分(十位)分(个位)∶秒(十位)秒(个位)(3)到点响铃(4)系统运行中可重新设定定时值(5)最大实现99分59秒的定时2 总体方案(1)设计框图系统框图如图1(2)设计思路利用89C51单片机作为本系统的中控模块。

上电后,按下功能键进入调时状态,通过各单元电路将按键部分设定的时间通过定时时间显示部分中的LED数码管显示出来,当时间设定完毕后再次按下按键部分的功能键,闹铃模块的蜂鸣器鸣叫0.5S以示定时器开始工作,到点实现响铃,再由按键部分关闹铃。

中途可重新设置定时数值。

复位部分除上电初实现复位外,其余任何时候可按键实现复位。

注:按键部分一共有4个按键,分别为功能键P3.0,秒设定键P3.1(增),分设定键P3.2(增)分设定键P3.3(减)。

3、方案论证(1)定时部分定时部分是本设计的核心部分。

方案:本方案完全用软件实现定时。

原理为:在单片机内部存储器设两个字节分别存放时钟的分、秒信息。

利用键盘部分对定时时间进行设定,由定时显示部分数码管显示,同时定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒个位减1;若秒个位减到0,则判秒十位值是否为0,若不是,则秒个位赋9,秒十位减1;分同理。

该方案具有硬件电路简单的特点。

(2)闹铃器件的选择方案:采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出高电平,蜂鸣器发生。

采用蜂鸣器闹铃结构简单,控制方便。

单片机定时闹钟课程设计

单片机定时闹钟课程设计

单片机定时闹钟课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解定时器的功能和工作原理。

2. 使学生掌握定时闹钟程序编写的基本方法,了解中断处理的相关知识。

3. 帮助学生了解电子时钟的基本构成,掌握时间计算和显示的相关技巧。

技能目标:1. 培养学生动手实践能力,学会使用编程软件编写、调试程序,实现单片机定时闹钟功能。

2. 提高学生分析问题和解决问题的能力,能够独立完成定时闹钟课程的各项任务。

3. 培养学生团队协作能力,学会在项目过程中进行有效沟通和分工合作。

情感态度价值观目标:1. 培养学生对单片机编程的兴趣,激发他们探索未知、自主学习的精神。

2. 培养学生勇于尝试、不怕失败的品质,提高他们面对困难时的心理素质。

3. 增强学生的创新意识,鼓励他们发挥想象力和创造力,设计出具有个性的定时闹钟作品。

课程性质分析:本课程属于电子技术与应用领域的实践课程,旨在让学生通过动手实践,掌握单片机定时闹钟的设计与制作。

学生特点分析:学生处于中学阶段,具有一定的电子技术基础和编程能力,对新鲜事物充满好奇,喜欢动手实践。

教学要求:1. 结合课本知识,注重理论与实践相结合,提高学生的实际操作能力。

2. 注重培养学生的创新精神和团队协作能力,提高他们的综合素质。

3. 以学生为主体,关注个体差异,因材施教,使每个学生都能在课程中取得进步。

二、教学内容1. 单片机基础原理回顾:包括单片机的结构、工作原理、定时器/计数器功能。

2. 定时器编程技术:重点讲解定时器的初始化、中断处理程序编写,以及定时器应用实例。

- 教材章节:第三章《单片机定时器/计数器》3. 中断系统原理:介绍中断的概念、中断优先级、中断向量表,以及中断处理流程。

- 教材章节:第四章《中断系统》4. 显示技术:讲解数码管、LCD等显示器件的工作原理和编程方法。

- 教材章节:第五章《显示技术》5. 定时闹钟设计与实现:包括闹钟功能的整体设计、程序编写、调试与优化。

单片机定时器的设计

单片机定时器的设计

单片机定时器的设计一、单片机定时器的基本原理单片机定时器是通过内部或外部时钟源产生固定时间间隔触发中断来实现的。

在单片机中,通常采用计数器的方式来实现定时器功能。

计数器在一次计数结束之后会自动从初始化值重新开始计数,并且触发中断。

因此,我们可以通过设置计数器的计数值和时钟源的频率来实现所需的定时功能。

二、单片机定时器的设计步骤要设计一个有效的单片机定时器,我们需要按照以下步骤进行操作。

1.确定所需的定时时长首先需要确定所需的定时时长,以便后续的计数器设置。

可以根据具体应用场景来确定定时时长,比如几毫秒、几十毫秒、几百毫秒等。

2.选择合适的计数器位宽计数器位宽决定了定时器能够计数的最大值。

通常,单片机提供的计数器位宽有8位、16位、32位等多种选择。

要根据所需的定时时长来选择合适的计数器位宽,确保可以覆盖所需的最大计数值。

3.设置计数器初始值计数器的初始值决定了定时器的倒计时开始值。

根据所需的定时时长和计数器的位宽,可以通过简单的计算得出计数器初始值。

同时,还需要考虑时钟源的频率是否与计数器的位宽匹配,以避免定时器溢出或计数不准确的问题。

4.配置定时器中断定时器中断是实现定时功能的核心部分。

在单片机中,定时器溢出时会产生中断,通过中断服务函数来处理定时器事件。

可以根据具体需求选择在时间到达时产生中断,还是定时一段时间后再产生中断。

三、单片机定时器的实现方法根据单片机的不同型号和架构,实现定时器的方法有所不同。

下面以常见的基于8051单片机的定时器实现为例进行说明。

1.选择定时器模式8051单片机中,定时器可以工作在16位定时器(Timer0和Timer1)和8位定时器(Timer2)两种模式下。

根据实际需求选择合适的定时器模式。

2.配置定时器控制寄存器定时器控制寄存器用于设置定时器的工作模式和时钟源。

根据实际需求,设置定时器模式、计数器位宽、时钟源等参数。

3.设置计数器初始值设置计数器初始值,使定时器开始倒计时。

基于80C52单片机的多路数字定时抢答器设计

基于80C52单片机的多路数字定时抢答器设计

课程设计任务书学生姓名: XXX 专业班级:电子科学与技术1302班指导教师: XX 工作单位:信息工程学院题目: 多路数字定时抢答器设计初始条件:本课程设计既可以选用集成电路:74LSl48,74LS279,74LS48,74LSl92,NE555,74LS00,74LSl21和其它器件等,实现八路定时抢答功能。

又可以使用单片机系统构建多路数字定时抢答器。

要求用蜂鸣器和光电二极管作声光报警器件,工作电源Vcc为+5V。

要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。

2、技术要求:①可同时供8名选手(或代表队)参赛,其编号分别是0到7,各用一个抢答按钮,按钮的编号与选手的编号相对应。

②给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。

③抢答器具有数据锁存和显示的功能。

抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时扬声器给出音响提示。

此外,要封锁输入电路,禁止其它选手抢答。

优先抢答选手的编号一直保持到主持人将系统清零为止。

④抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如30秒)。

当节目主持人启动“开始”键后,要求定时器立即进行减计时,并用显示器进行显示,同时扬声器发出短暂的声响,声响持续时间0.5秒左右。

⑤参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。

⑥如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统进行短暂的报警,并封锁输入电路,禁止选手超时后抢答,定时显示器上显示00。

⑦画出总体电路原理图。

3、查阅至少5篇参考文献。

按《武汉理工大学课程设计工作规范》要求撰写设计报告书。

全文用A4纸打印,图纸应符合绘图规范。

时间安排:1、2015 年6 月29 日集中,作课设具体实施计划与课程设计报告格式的要求说明。

基于单片机设计定时器CH451

基于单片机设计定时器CH451

LOAD BIT P1.2DIN BIT P1.0DCLK BIT P1.1DOUT BIT P3.3ST EQU 21H ;存状态号KEY EQU 22H ; 存放按键键码KD EQU 23H ;存放按键号KEY_F BIT 00H ;有键标志位SEC EQU 25H ;秒单元MIN EQU 26H ;分单元HOUR EQU 27H ;小时单元ORG 0000HAJMP MAINORG 0013H ;键盘中断入口LJMP KEY_INTORG 000BH ;定时器中断入口LJMP CLOCKORG 100HMAIN:MOV SP, #60H ;初始化MOV ST, #0CLR KEY_FMOV KEY,#0MOV KD,#0MOV HOUR,#0MOV SEC,#0MOV MIN,#0MOV TMOD,#01H ;定时器初始化MOV TH0,#3CHMOV TL0,#0B0HMOV IE,#82HMOV R0 ,#14HCH451_INIT: ;CH451初始化子程序MOV P1,#60HCLR DIN ;先低后高SETB DCLK ;置为默认的高电平SETB DIN ;输出上升沿CH451选择4线串行接口SETB LOADSETB DOUT ;置为输入NOPMOV B,#04H ;设置CH451MOV A,#03H ;关看门狗开显示键盘LCALL WRITENOPMOV B,#05H ;设置显示模式为译码方式MOV A,#80HLCALL WRITENOPCLR IT1 ;置外部中断信号为低电平触发CLR IE1 ;清中断标志SETB EX1 ;允许键盘中断SETB EA ;开总中断START1: LCALL DISP ;当前计时显示START2:JNB KEY_F,START1 ;无按键等待CLR KEY_F ;有按键,清按键标志GET_ADD: ;获得状态行地址MOV DPTR,#STABMOV A,STMOV B,#6MUL ABADD A,DPL ; DPTR=#STAB + ST*6 MOV DPL,AMOV A,BADDC A,DPHMOV DPH,ANEXT_ST: ;获得次状态MOV A, KDRL A ;KD*2MOV R0,AMOVC A,@A+DPTR ;查表取出次状态号MOV ST,A ;更新STMOV A,R0INC A ;偏移量加1GET_TASK:MOVC A,@A+DPTR ; 得到任务号MOV B,#3MUL AB ;每个LJMP占3个字节MOV DPTR,#TASKJMP @A+DPTR ;散转到子任务程序入口TASK:LJMP P_0LJMP P_1LJMP P_2LJMP P_3LJMP P_4LJMP P_5LJMP P_6LJMP P_7LJMP P_8LJMP P_9LJMP P_10P_0:NOPSETB TR0LCALL DISPMOV ST ,#0LJMP START2P_1:CLR TR0MOV B,#06HMOV A,#03HLCALL WRITELJMP START2P_2:CLR TR0CLR CMOV A,#9AHSUBB A,#01HADD A,HOURDA ACJNE A,#99H,LOOP1MOV A,#23H LOOP1:MOV HOUR ,AMOV ST ,# 1CLR CLJMP START2P_3: CLR TR0MOV A,HOURINC ADA ACJNE A,#24H,LOOP2MOV A,#00HLOOP2: MOV HOUR ,A MOV ST ,#1LJMP START2P_4:CLR TR0MOV B,#06HMOV A,#18HLCALL WRITELJMP START2P_5:CLR TR0CLR CMOV A,#9AHSUBB A,#01HADD A,MINDA ACJNE A,#99H,LOOP3MOV A,#59H LOOP3:MOV MIN ,ACLR CMOV ST ,#2LJMP START2P_6:CLR TR0MOV A,MININC ADA ACJNE A,#60H,LOOP4MOV A,#00H LOOP4:MOV MIN ,AMOV ST ,#2LJMP START2P_7:CLR TR0MOV B,#06HMOV A,#0C0HLCALL WRITELJMP START2 P_8:SETB TR0MOV B,#06HMOV A,#00HLCALL WRITELCALL DISPMOV ST ,#0LJMP START2P_9:CLR TR0CLR CMOV A,#9AHSUBB A,#01HADD A,SECDA ACJNE A,#99H,LOOP5MOV A,#59HLOOP5:MOV SEC ,ACLR CMOV ST ,#3LJMP START2P_10:CLR TR0MOV A,SECINC ADA ACJNE A,#60H,LOOP6MOV A,#00HLOOP6:MOV SEC ,AMOV ST ,#3LJMP START2STAB: DB 0,0, 1,1, 0,0 ; stat0DB 1,2, 2,4, 1,3 ; stat1DB 2,5, 3,7, 2,6 ; stat2DB 3,9, 0,8, 3,10 ; stat3KEY_INT:PUSH DPLPUSH DPH ; 保护主程序现场PUSH ACCPUSH PSWLCALL READ ; 读键码MOV R3, A ; 将健码放到R3中K0: CJNE R3,#40H,K1 ; 以下比较健码得出键值, MOV A,#0H ; 放到A中SJMP KEY_L1 ; 转换成键号K1: CJNE R3,#41H,K2MOV A,#1HSJMP KEY_L1K2: CJNE R3,#42H, KEY_OUTMOV A,#2HKEY_L1: MOV KD,A ; 保存键值SETB KEY_F ; 置有键标记KEY_OUT:POP PSWPOP ACC ; 恢复主程序现场POP DPHPOP DPLRETICLOCK: PUSH PSWPUSH ACCDJNZ R0,NEXTMOV R0 ,#14HLCALL JINWEINEXT: MOV TH0,#3CH ;MOV TL0,#0B0HPOP ACCPOP PSWRETIJINWEI:MOV A,SECCLR CMOV A,#9AHSUBB A,#01HADD A,SECDA AMOV SEC,ACJNE A,#99H,END1MOV SEC,#59HMOV A,MINMOV A,#9AHSUBB A,#01HADD A,MINDA AMOV MIN,ACJNE A,#99H,END1MOV MIN,#59HMOV A,HOURMOV A,#9AHSUBB A,#01HADD A,HOURDA AMOV HOUR,ACJNE A,#99H,END1MOV HOUR,#23HEND1:RETDISP: ;显示子程序PUSH PSWPUSH ACCMOV B,#0FH ;加载字数据7MOV A,SECANL A,#0FHACALL WRITEMOV A,SECSWAP AANL A,#0FHDEC B ;加载字数据6ACALL WRITEMOV A,#10HDEC B ;加载字数据5ACALL WRITEMOV A,MINANL A,#0FHDEC B ;加载字数据4ACALL WRITEMOV A,MINSWAP AANL A,#0FHDEC B ;加载字数据3ACALL WRITEMOV A,#10HDEC B ;加载字数据2ACALL WRITEMOV A,HOURANL A,#0FHDEC B ;加载字数据1ACALL WRITEMOV A,HOURSWAP AANL A,#0FHDEC B ;加载字数据0ACALL WRITEPOP ACCPOP PSWRETWRITE:PUSH PSWPUSH ACCCLR EX1CLR LOADMOV R7,#08HWRITE_8:RRC ACLR DCLKMOV DIN,CSETB DCLKDJNZ R7,WRITE_8MOV A,BMOV R7,#04HWRITE_4:RRC ACLR DCLKMOV DIN,CSETB DCLKDJNZ R7,WRITE_4SETB LOADSETB EX1POP ACCPOP PSWRETREAD: CLR EX1 ;禁止键盘中断CLR LOAD ;命令开始MOV A, #07H ;读取键值命令的高4位0111BMOV R7, #04H ;忽略12位命令的低8位RE_4: RRC A ;低位在前,高位在后CLR DCLK ;MOV DIN,C ;送出一位数据SETB DCLK ;产生上升沿通知CH451输入位数据DJNZ R7, RE_4 ;位数据未完继续SETB LOAD ;产生加载上升沿通知CH451处理命令数据CLR A ; 先清键值单元以便移位MOV R7,#07H ;读入7位键值RE_7: MOV C, DOUT ;读入一位数据CLR DCLK ;产生时钟下降沿通知CH451输出下一位数据RLC A ;数据移入ACC,高位在前,低位在后SETB DCLK ;DJNZ R7,RE_7 ;数据未完继续CLR IE1 ;清中断标志,读操作过程中有低电平脉冲SETB EX1 ;准许键盘中断RETEND。

定时闹钟单片机课程设计

定时闹钟单片机课程设计

定时闹钟单片机课程设计一、课程设计概述本次课程设计的主要目的是通过学习单片机的基本原理和应用,掌握单片机的编程技术和应用能力,完成一个定时闹钟的设计。

二、课程设计内容1. 硬件设计(1)电源模块:使用稳压电源芯片LM7805实现5V直流电源输出。

(2)时钟模块:使用DS1302实时时钟芯片,实现时间显示和闹钟功能。

(3)数码管模块:使用共阳数码管,通过74HC595芯片驱动。

(4)按键模块:使用矩阵按键模块,实现对时间设置和闹钟设置等操作。

2. 软件设计(1)初始化程序:对各个模块进行初始化设置。

(2)显示程序:将当前时间和闹钟时间显示在数码管上。

(3)设置程序:通过按键输入,实现对时间和闹钟时间的设置。

(4)闹铃程序:在设定的闹钟时间到达时,触发蜂鸣器响铃。

三、课程设计步骤1. 硬件设计首先进行硬件电路图的绘制,并进行元器件选型。

根据电路图进行焊接和调试。

其中需要注意以下几点:(1)稳压电源芯片的输入电压需要在7V以上。

(2)DS1302时钟芯片的接线需要按照电路图进行,同时需要设置时钟芯片的时间和闹钟时间。

(3)数码管模块需要进行74HC595芯片的驱动设置,同时需要设置数码管显示的位数和显示内容。

(4)矩阵按键模块需要进行按键扫描程序设计,并设置对应的操作功能。

2. 软件设计根据硬件设计完成后,进行软件程序设计。

主要包括以下几个部分:(1)初始化程序:对各个模块进行初始化设置,如时钟芯片、数码管、矩阵按键等。

(2)显示程序:将当前时间和闹钟时间显示在数码管上。

可以通过时钟芯片获取当前时间,并将其转换为数码管可以显示的格式。

(3)设置程序:通过矩阵按键输入,实现对时间和闹钟时间的设置。

可以通过编写按键扫描函数来实现对按键输入的检测,并根据不同的按键操作来实现对应的功能。

(4)闹铃程序:在设定的闹钟时间到达时,触发蜂鸣器响铃。

可以通过判断当前时间是否等于设定闹钟时间来触发蜂鸣器响铃,并在屏幕上显示提示信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、设计要求 (2)1.1 设计内容及要求 (2)1.2 设计方案及思路 (2)二、系统硬件设计 (2)2.1 硬件电路的总体设计方案及框图 (2)2.2 各单元硬件设计 (3)2.2..1 复位电路设计 (3)2.2.2 时钟电路设计 (3)2.2.3 显示电路设计 (4)2.2.4 主要硬件元器件介绍 (4)2.3 EDA辅助设计 (6)2.3.1 定时器的原理图 (6)2.3.2 定时器的PCB图 (6)三、系统软件设计 (9)3.1 主程序流程图 (9)3.2定时子程序流程图 (9)3.3 定时器完整程序 (12)四、系统软件仿真 (15)五、总结 (17)六、参考文献 (17)附录一:七段数码管字型码 (18)附录二:元器件清单 (18)摘要:本次课程设计是基于8051单片机控制的电子定时器设计。

设计中应用了单片中断及LED显示等技术,经历了方案设计、电路硬件设计、软件设计、软件仿真等过程,经过此次课程设计掌握了单片机应用系统的设计过程,单片机应用系统的设计流程如图所示:一、设计要求1.1 设计内容及要求以89C51单片机为核心,设计一个定时器,4位LED显示,分别显示10分,分,10秒,秒。

定时范围从1秒到59分59秒,有按键设置定时时间,按开始键后开始计时,每过一秒刷新一次定时时间,若计时时间到,停止计时,并在LED上显示定时的时间。

仪器工作过程:1、通电或复位状态显示0000;2、由按键设置定时时间;3、定时开始键按下,开始定时,每一秒刷新一次计时时间;4、定时时间到,停止计时,4位LED显示设定时间;5、复位后恢复初始状态,准备进行下一次定时。

1.2 设计方案及思路根据设计要求,本系统初步设定由单片机系统、键0——3、LED显示组成。

1、按键的输入:键0——3四个键作为时间设定的控制键,由P1口输入2、定时的显示电路:8051显示电路由4位共阴极数码管显示,由8051的串行口输出,并通过74LS164八位移位寄存器输入给数码管二、系统硬件设计2.1 硬件电路的总体设计方案及框图设计一个控制系统总体设计方案很重要,关系设计接下来的操作程序,一下就是本设计的总体框架。

按照设计要求,确定硬件电路的总体设计方案,以8051单片机为核心的控制电路,设计总框图如图1所示,此定时电路包含:复位电路、时钟电路、按键输入、显示电路,这些控制电路将在硬件电路主要模块设计中详细介绍。

图1 设计总框图2.2 各单元硬件设计2.2..1 复位电路设计单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。

8051系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。

当系统处于正常工作状态时,且振荡器稳定后,如果RST 引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。

单片机系统的复位方式有:手动按钮复位(如图2所示)和上电自动复位(如图3所示)等。

在本系统中采用手动按钮复位。

图2 手动按钮复位图3 上电自动复位2.2.2 时钟电路设计时钟电路时计算机的心脏,它控制着计算机的工作节奏,CPU就是通过复杂的时序电路完成不同的指令功能的。

MCS-51的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号;另一种为外部方式,时钟信号由外部引入。

MCS-51单片机有HMOS型和CHMOS型,他们的时钟电路有一定的区别。

(1)、内部时钟方式内部方式的时钟电路如图4所示。

利用MCS-51内部的高增益反相放大器,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路便产生自激振荡。

定时元件一般采用石英晶体和电容组成的并联谐振回路。

(2)、外部时钟方式外部时钟方式常用于多机系统,以便各个单片机能够同步工作。

对外部振荡信号无特殊要求,但需保证脉冲宽度不小于20ns,且频率应低于单片机所支持的最高频率。

电路如图5所示。

C1C230pf 30pf图4 内部时钟方式 图5 外部时钟方式 2.2.3 显示电路设计8051显示电路由4位共阴极数码管显示,由8051的串行口输出,并通过 74LS164八位移位寄存器输入给数码管。

如图6所示:图6 显示电路2.2.4 主要硬件元器件介绍 (1)单片机STC89C51芯片8051单片机引脚图如图7所示图7 8051单片机引脚图1、主电源引脚VCC和VSSVCC——(40脚)接+5V电压;VSS——(20脚)接地。

2、外接晶体引脚XTAL1和XTAL2XTAL1(19脚)接外部晶体的一个引脚。

在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。

XTAL2(18脚)接外晶体的另一端。

在单片机内部,接至上述振荡器的反相放大器的输出端。

3、控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP①RST/VPD(9脚)复位/备用电源输入端②ALE/PROG(30脚):低8位地址锁存使能输出端③PSEN(29脚):外部程序存储器的读选通信号。

④EA/VPP(引脚):外部程序存储器地址允许使能端4、输入/输出(I/O)引脚P0、P1、P2、P3(共32根)①P0口(39脚至32脚):漏极开路的8位准双向复用I/O口②P1口(1脚至8脚):内部带上拉电阻的8位准双向I/O口③P2口(21脚至28脚):内部带上拉电阻的8位准双向复用I/O口④P3口(10脚至17脚):内部带上拉电阻的8位多功能双向I/O口(2)七段数码管①七段数码管引脚图如图8所示:图8 其段数码管引脚图②七段数码管字型码(见附录一)(3)移位寄存器74LS164①74LS164引脚图,如图9所示图9 74LS164引脚图图10 74LS164功能表②74LS164功能表,如图10所示2.3 EDA辅助设计EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

在此次课程设计中,将主要使用PROTEL99SE来进行电路的设计。

PROTEL为设计者提供了一个集成的电路设计环境,包括原理图设计和PCB布线工具、电路仿真和集成的设计文档管理。

2.3.1 定时器的原理图(1)原理图绘制的流程图如图11所示(2)定时器原理图如图12所示2.3.2 定时器的PCB图(1)PCB绘制流程图如图13所示(2)PCB板如图14所示图11 电路图绘制流程图图13 PCB制作流程图图12 定时器电路原理图图14 定时器的PCB板三、系统软件设计3.1 主程序流程图主程序流程图如图15所示3.2定时子程序流程图定时子程序流程图如图16所示图15 主程序流程图图16 定时子程序流程图3.3 定时器完整程序ORG 0000HLJMP 0030H/*****************************************************************主程序****************************************************************/ORG 0030HSTART: MOV 30H,#0 ;30H~33H清零MOV 31H,#0MOV 32H,#0MOV 33H,#0LCALL DIR0 ;调用显示子程序AA: JNB P1.0,AA0 ;检测按键,若有按键按下则跳转至相应的程序JNB P1.1,AA1JNB P1.2,AA2JNB P1.3,AA3JNB P1.4,AA4LJMP AA ;循环检测按键AA0: INC 30H ;按键0按下时,30H自动加一MOV A,30HCJNE A,#10,AA00;若秒小于10,调用显示程序MOV 30H,#0 ;若秒大于等于10,则30H清零AA00: LCALL DIR0 ;调用显示子程序LCALL DLYR ;调用延时程序LJMP AA ;循环检测按键AA1: INC 31H ;按键1按下,31H自动加1并执行相应显示程序MOV A,31HCJNE A,#6,AA11 ;若秒小于6,调用显示程序MOV 31H,#0 ;若秒大于等于6,则3H清零AA11: LCALL DIR0LCALL DLYRLJMP AAAA2: INC 32H ;按键2按下32H自动加1并执行相应显示程序MOV A,32HCJNE A,#10,AA22;若秒小于10,调用显示程序MOV 32H,#0AA22: LCALL DIR0LCALL DLYRLJMP AAAA3: INC 33H ;按键3按下33H自动加1并执行相应显示程序MOV A,33HCJNE A,#6,AA33 ;若秒小于6,调用显示程序MOV 33H,#0 ;若秒大于等于6,则3H清零AA33: LCALL DIR0LCALL DLYRLJMP AAAA4: LCALL DS00 ;调用定时子程序LJMP AA ;检测按键/******************************************** *********************定时子程序**********************************************************/ DS00: MOV 40H,30HMOV 41H,31HMOV 42H,32HMOV 43H,33HMOV 30H,#0 ;30H~33H清零MOV 31H,#0MOV 32H,#0MOV 33H,#0DS11: LCALL DIR0 ;调用显示程序LCALL DLYR ;调用延时程序LCALL DLYRINC 30HMOV A,30HCJNE A,#10,GRMOV 30H,#0INC 31HMOV A,31HCJNE A,#6,GRMOV 31H,#0INC 32HMOV A,32HCJNE A,#10,GRMOV 32H,#0INC 33HGR: MOV A,33H ;判断是否到定时时间CJNE A,43H,DS11MOV A,32HCJNE A,42H,DS11MOV A,31HCJNE A,41H,DS11MOV A,30HCJNE A,40H,DS11LCALL DIR0RET/***************************************************************显示子程序***********************************************************/DIR0: MOV SCON,#0 ;使用串行方式输出显示数码MOV R0,#30HMOV R7,#4L1: MOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV SBUF,AJNB TI,$ ;等待发送数据完成CLR TI ;发送请求标志清零INC R0DJNZ R7,L1RETTAB: DB 3FH,06H,5BH,4FH,66H;0~9这十个数字的字型码DB 60H,70H,07H,7FH,6FHRET/****************************************************************延时0.5s子程序******************************************************/ DLYR: MOV R5,#125DELY: MOV R7,#100DLY0: MOV R6,#50DLY1: DJNZ R6,DLY1DJNZ R7,DLY0DJNZ R5,DELYRETEND四、系统软件仿真Proteus是多功能的EDA软件,真正实现了虚拟物理原型功能,在目标板还没有制作之前,就可以对所设计的硬件系统的功能、合理性和性能指标进行充分调整,并可以在没有硬件电路的情况下,进行相应的程序设计与调试,可由仿真原理图直接导出绘制成印制电路板(PCB)。

相关文档
最新文档