1602LCD秒表设计:单片机与AT89C51控制

0 下载量 107 浏览量 更新于2024-06-23 收藏 1007KB DOC 举报
"该文档是关于使用1602LCD显示的秒表的单片机课程设计,涵盖了单片机原理、设计任务与要求、设计目的、芯片资料、电路分析、代码分析、设计分析等内容,小组成员包括王玉瑶、吴秋云、吴颖盈和项念念,使用了AT89C51单片机和1602LCD显示器。" 在单片机原理部分,秒表设计依赖于单片机技术、模拟电子技术和数字技术的集成,以8051系列的AT89C51单片机为核心。这种基于单片机的秒表具备低功耗、高安全性和用户友好等特性,适用于实时在线控制。设计中利用单片机的定时器/计数器功能,通过集成电路、LCD显示屏和按键实现计时、暂停、清零等操作。 课程设计的任务是使用AT89C51单片机配合1602LCD显示器构建一个秒表。设计要求包括显示秒表功能的实现,以及整个电路由AT89C51单片机控制。设计的核心在于硬件连接和软件编程,涵盖了器件选择和电路设计。 课程设计的目的在于让学生将所学的MCS-51单片机原理及应用知识综合运用,锻炼单片机程序设计、调试、应用电路设计、分析及调试检测的能力。通过小组合作,学生可以深入理解单片机的工作原理和实际应用。 在芯片资料中,介绍了AT89C51这款常见的8位微控制器,以及1602LCD液晶显示屏。AT89C51是一款具有4K字节可编程Flash存储器的高性能CMOS 8位微处理器,而1602LCD则是常用的字符型液晶显示器,常用于显示简单的文本信息。 电路分析部分可能涉及了单片机与LCD的接口设计,包括数据线、控制线的连接以及电源管理。代码分析则会详细解析实现秒表功能的C语言或汇编语言程序,包括定时器的初始化、中断处理、计数逻辑和LCD的字符显示函数。 设计分析可能涵盖了整体设计方案的优缺点、改进空间以及实际操作中的问题和解决方案。调试成功与否这部分可能涉及到在硬件和软件上的调试过程,确保秒表的准确性和稳定性。 参考文献部分列出了设计过程中参考的技术资料,而附录则提供了1602LCD秒表的源代码和原理图,供学习者参考和研究。 这个课程设计项目是一个全面的实践教学活动,旨在提升学生的单片机应用能力和动手实践技能,同时也展示了单片机在日常生活中广泛应用的可能性。
2023-02-27 上传
摘要 本设计的数字电子秒表系统采用AT89S52单片机为中心器件,利用其定时器/计数器定 时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬 件有机地结合起来,使得系统能够实现LED显示,显示时间为0~99秒,计时精度为1秒, 能正确地进行计时。其中软件系统采用C语言编写程序,包括显示程序,定时中断服务, 外部中断服务程序,延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功 能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。 关键词: 电子秒表;AT89S52单片机;C语言 目录 摘要 I 1 系统原理介绍 1 1.1设计任务及功能要求说明 1 1.2数字式秒表的方案介绍及工作原理说明 1 2数字式秒表硬件系统的设计 3 2.1数字式秒表硬件系统各模块功能简要介绍 3 2.1.1 AT89S52简介 3 2.1.2时钟电路 3 2.1.3键盘电路 4 2.1.4复位电路 4 2.2 数字式秒表的硬件系统设计图 5 3 数字式秒表软件系统的设计 6 3.1 数字式秒表使用单片机资源情况 6 3.2 主程序流程图 6 3.3中断服务程序流程图 7 3.4显示程序流程图 8 3.5软件系统程序清单 8 按照流程图应用软件keil汇编语言编程实现秒表功能。程序见附录3。 8 4 系统调试与仿真 9 4.1 数字式秒表的设计结论及使用说明 9 4.2 调试软件介绍 9 4.3 程序仿真与结果 9 4.4 误差分析及解决方法 10 总结 11 参考文献 12 致 谢 13 附录1:系统原理图 14 附录2:程序清单 15 1 系统原理介绍 1.1设计任务及功能要求说明 由单片机接收小键盘控制递增计时,由LED 显示模块计时时间,显示格式为 XX(分):XX(秒).XX,精确到0.01s的整数倍。绘制系统硬件接线图,并进行系统仿 真和实验。画出程序流程图并编写程序实现系统功能。 使用单片机AT89S52作为主要控制芯片,以四位一体共阳极数码显示管通过三极管驱动作 为显示部分,设计一个具有特定功能的数字式秒表。该数字式秒表上电或按键复位后能 自动显示系统提示符"P.",进入准备工作状态。该数字式秒表通过按键控制可实现开始 计时、暂停计时、连续计时、清零和停止功能。 1.2数字式秒表的方案介绍及工作原理说明 使用AT89S52单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路; 采用S8550作为数码管的驱动部分;用两个四位一体共阳极或共阴极数码显示管作为显示 部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的复位、计 时、连续、清零、停止各项功能。 对于时钟,它有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主 要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统 的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机 内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合; 二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。 LED数码显示器有如下两种连接方法:共阳极接法:把发光二极管的阳极连在一起构成公 共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。共阴极 接法:把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二 极管的阳极通过电阻与输入端相连。 键盘部分方案:键盘控制采用独立式按键,每个按键的一端均接地,另一端直接和P1口 相连,在按键和P1口之间通过10K电阻与+5V电源相连。键盘通过检测输入线的电平状态 就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较 适合按键较少或操作速度较高的场合,这种独立式接口的应用很普遍。 显示部分方案:显示部分采用动态显示。数码管动态显示接口是单片机中应用最为广泛 的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同 名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立 的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那 个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要 显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过 分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。 动态显示是利用人眼视觉暂留特性来实现显示的。事实上,显示器上任何时刻只有一个 数码管有显示。由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来, 因此看到的是连续显示的
2023-02-27 上传
课程设计报告 课程名称:单片机原理与接口技术课程设计 设计题目:秒表的设计 院 系:机电工程学院 班 级: 姓 名: 学 号: 指导教师: 设计时间:2011年12月10日 一 设计方案描述 通过软件计时实现秒表功能。该秒表程序可通过按键实现暂停/开始计时功能,每6 0秒进1,可以复位。 二 选定方案的论证及整体电路的工作原理 提示:画出你的系统原理图,可参考桌面的单片机指导书中内容。 指 运算器 输入 输出 程 令 ALU 数据存储器 数据 设备 序 寄 RAM I O 计 存 数 程序存储器 器 控制器 器 EPROM IR ID 工作原理: 编写秒表程序,使其通过I/O口的输出在数码管上显示秒表的计时情况,通过定义I /O口的输入与中断程序级按键程序实现INT中断功能和控制秒表的"停"与"走"。 三 系统资源分配表(地址分配表) " " " "寄存器 "地址 " "W_TEMP "71H " "STATUS_TEMP "72H " "INTCON "0BH " "STATUS "03H " "PORTD "08H " "PORTB "06H " "TRISD "88H " "TRISB "86H " 四 程序流程框图 五 源程序清单 list p=16f877A ; list directive to define processor #include <p16f877A.inc> ; processor specific variable definitions __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _LVP_OFF & _DEBUG_ON & _CPD_OFF ;***** VARIABLE DEFINITIONS w_temp EQU 0x71 ; variable used for context saving status_temp EQU 0x72 ; variable used for context saving ;********************************************************************** ORG 0x000 ; processor reset vector clrf PCLATH ; ensure page bits are cleared goto MAIN ; go to beginning of program ORG 0x004 ; interrupt vector location movwf w_temp ; save off current W register contents movf STATUS, w ; move status register into W register movwf status_temp ; save off contents of STATUS register BCF INTCON, INTF INCF 53H ; isr code can go here or be located as a call subroutine elsewhere movf status_temp,w ; retrieve copy of STATUS register movwf STATUS ; restore pre-isr STATUS register contents swapf w_temp, f Swapf w_temp, w ; restore pre-isr W register contents retfie ; return from interrupt MAIN ; remaining code goes here ABB EQU 63H ABC EQU 62H COUNTER EQU 66H MOVLW .000 MOVWF 60H MOVLW 00H MOVWF 43H MOVLW B'10010000' MOVWF INTCON CLRF 53H LOOP1 MOVF 60H, W MOVWF ABC MOVLW 0FFH MOVWF 20H LOOP BSF STATUS, RP0 CLRF TRISD CLRF TRISB BCF STATUS, RP0 MOVLW 0DFH MOVWF PORTB MOVF 43H, W CALL CHAIBIAO MOVWF PORTD CALL DELAY MOVLW 0F7H MOVWF PORTB MOVF ABC, W MOVWF 61H MOVLW 00H MOVWF ABB QS MOVLW .100 SUBWF 61H INCF