单片机课程设计报告

合集下载

单片机课设报告

单片机课设报告

单片机课设报告
一、引言
单片机是一种集成电路,它可以完成各种不同的功能。

在本次课设中,我们将使用单片机来实现一个简单的计算器。

二、设计思路
本次设计采用了AT89C51单片机作为控制器,通过按键输入数字和运算符,然后将结果显示在数码管上。

具体实现步骤如下:
1. 按键扫描模块:通过对按键进行扫描,获取用户输入的数字和运算符。

2. 数字存储模块:将输入的数字存储到寄存器中。

3. 运算符判断模块:判断输入的运算符类型,并进行相应的计算。

4. 结果显示模块:将计算结果显示在数码管上。

三、硬件设计
1. AT89C51单片机:作为控制器,负责整个系统的控制和数据处理。

2. 数码管:用于显示计算结果。

3. 按键:用于输入数字和运算符。

4. 电源模块:提供系统所需的电源。

四、软件设计
1. 系统初始化:包括端口初始化、定时器初始化等操作。

2. 按键扫描程序:通过对按键进行扫描,获取用户输入的数字和运算符,并将其存储到寄存器中。

3. 运算程序:根据输入的运算符类型,进行相应的计算。

4. 结果显示程序:将计算结果显示在数码管上。

五、实现效果
经过测试,本次设计可以正确地完成加减乘除四种运算,并将结果显示在数码管上。

六、总结
本次课设通过对单片机的学习和应用,使我们更深入地了解了单片机的工作原理和应用场景。

同时,也锻炼了我们的动手能力和团队合作能力。

单片机课程设计报告

单片机课程设计报告

单片机课程设计报告单片机课程设计报告一、设计目的本次课程设计的目的是通过实践操作,了解和掌握单片机的基本原理、控制方法和应用技术,提高学生的综合素质和实践能力。

二、设计内容本次课程设计的内容是设计一个基于单片机的温度控制系统。

系统通过读取温度传感器的数据,对温度进行监测,并根据设定的温度范围控制加热和制冷设备的开关。

三、设计原理1. 硬件设计:本设计采用STC89C52单片机作为控制核心,并使用LM35温度传感器进行温度检测。

另外,还需要接入一个电阻加热器和一个制冷装置,用于温度控制。

2. 软件设计:单片机程序的设计主要包括以下几个部分:(1) 温度获取:通过ADC接口读取温度传感器的模拟信号,并转换为数字信号。

(2) 温度比较:将获取到的温度值与设定的温度上下限进行比较,判断是否需要开启加热或制冷设备。

(3) 加热控制:若温度低于设定上限,单片机将控制电阻加热器开启,加热提高温度。

(4) 制冷控制:若温度高于设定下限,单片机将控制制冷装置开启,制冷降低温度。

(5) 显示功能:将当前温度值和控制状态通过数码管显示出来,方便观察和调试。

四、设计步骤1. 硬件搭建:将STC89C52连接好电源和调试下载线,将温度传感器和数码管连接到对应的引脚,并连接电阻加热器和制冷装置。

2. 软件开发:使用Keil C51软件进行编程。

根据设计原理,逐步实现温度获取、温度比较、加热控制、制冷控制和显示功能。

3. 调试测试:将程序下载到单片机,进行硬件和软件的调试测试。

通过串口调试助手观察温度变化和控制状态是否正确。

4. 优化改进:根据测试结果,对程序进行优化和改进,提高系统的性能和可靠性。

五、设计总结通过本次单片机课程设计,我对单片机的原理和应用有了更深入的了解。

通过实践操作,我掌握了单片机的编程方法和调试技巧。

在设计过程中,我也遇到了一些问题,如温度传感器的误差和加热控制的精度等,但通过不断学习和改进,最终完成了设计任务。

单片机课程设计计划书(精选五篇)

单片机课程设计计划书(精选五篇)

单片机课程设计计划书(精选五篇)第一篇:单片机课程设计计划书机电科学与工程系电气自动化技术专业(专科)《单片机原理及接口技术课程设计》计划书一、目的及要求1.目的:通过本课程设计,•使学生进一步掌握单片机应用系统的硬、•软件开发方法,输入/输出(I/O)接口的扩展技术,应用程序设计技术并结合专业能设计简单、实用的单片机应用系统。

主要针对课堂重点讲授内容使学生加深对单片机硬件原理的理解及提高汇编语言程序设计的能力,提高学生的开发创新能力。

2.基本要求:重点研究单片机、A/D转换器、运算放大器、传感器、LED显示器、固态继电器、微型直流电机等元器件的特性、功能及使用方法;同时掌握主程序、子程序、中断服务程序框图的设计方法与汇编语言程序设计方法。

要求设计系统具有可靠性高、可维护、维修性好及检测精度高等优点。

设计内容可参考设计题目,也可根据自身情况自己拟定。

3.任务要求:了解控制对象、环境参数检测原理,在充分掌握单片机、A/D转换器、运算放大器、传感器、LED显示器、固态继电器、微型直流电机等元器件的工作原理、特性、功能及使用方法的基础上,创造性的、两人一组分工协作(一人偏软、一人偏硬)独立的设计本课题的内容。

二、设计内容、步骤及材料要求1.设计内容画出硬件原理图一张(A4号);软件框图(包括主程序框图、主要子程序框图、中断服务程序框图等)和系统初始化的汇编语言原程序。

提交不少于4000字的设计报告一份(A4纸)。

从整体方案的规划设计到各功能模块的设计,可实现功能及各元器件的选择,参数计算均需表述清楚。

报告的书写要清除工整,层次清晰,文字流畅。

后附5篇以上的参考文献。

2.设计步骤设计时间为5天,前2天进行硬件原理草图设计,指导教师审查之后用1天的时间再进行绘图;第四天进行软件框图(包括主程序框图、主要子程序框图、中断服务程序框图)的设计及系统初始化的汇编语言原程序的设计;第5天答辩。

3.设计图纸要求(1)硬件原理图的绘制:元件图正确、型号标注要准确、连线清楚.(2)软件框图的绘制:流程清晰。

单片机课程设计报告代码

单片机课程设计报告代码

单片机课程设计报告代码摘要:一、单片机课程设计报告简介1.单片机概述2.课程设计报告的目的与意义3.报告内容概述二、单片机基础知识回顾1.单片机的定义与历史2.单片机的基本结构3.单片机的工作原理三、单片机应用领域1.工业控制2.通信设备3.消费电子4.汽车电子5.其他领域四、单片机课程设计报告实例分析1.实例一:基于单片机的智能家居系统设计2.实例二:单片机控制的智能交通灯系统设计3.实例三:单片机在智能医疗设备中的应用设计五、单片机课程设计报告撰写建议1.明确设计目标与要求2.详细的设计过程与思路3.合理的硬件与软件设计4.系统测试与优化5.结论与展望正文:一、单片机课程设计报告简介单片机课程设计报告是学生在学习单片机知识后,将理论应用于实际的一个综合性实践环节。

通过对单片机的了解与掌握,学生可以设计出各种具有一定功能的智能系统。

本报告将对单片机课程设计报告进行简要介绍,包括报告的目的、意义以及内容概述。

二、单片机基础知识回顾在开始设计报告之前,我们需要先回顾一下单片机的基础知识,以便更好地理解单片机的工作原理和应用领域。

单片机是一种集成电路,集成了CPU、存储器、外设接口等多种功能于一体,可编程实现各种控制功能。

它具有体积小、成本低、功耗低、功能强大等特点,被广泛应用于各个领域。

1.单片机的定义与历史单片机(Microcontroller Unit, MCU)是一种集成了CPU、存储器、外设接口等多种功能于一体的微型计算机。

自1971年Intel公司推出第一款单片机4004以来,单片机得到了迅速发展,其性能、功能和应用领域不断扩展。

2.单片机的基本结构单片机主要由CPU、存储器、外设接口和时钟电路等部分组成。

CPU是单片机的核心部分,负责程序的执行;存储器用于存储程序和数据;外设接口用于与外部设备进行通信;时钟电路为单片机提供工作节拍。

3.单片机的工作原理单片机根据预先编写好的程序,在时钟信号的作用下,对输入信号进行处理,并产生相应的输出信号,从而实现对各种外部设备的控制。

单片机课程设计报告

单片机课程设计报告

单片机课程设计报告一、设计目的本课程设计旨在通过对单片机的学习和实践,培养学生的嵌入式系统设计能力。

通过设计报告的撰写,学生需要整理和总结自己在课程设计中的工作,提高自己的表达和沟通能力。

二、设计背景随着科技的迅猛发展,嵌入式系统在各个领域得到广泛应用。

单片机作为嵌入式系统设计的重要组成部分,具有体积小、功耗低、可靠性高等优势,被广泛应用于家电、智能家居、汽车电子等领域。

因此,掌握单片机的基础原理和应用技巧对于工程师来说至关重要。

三、设计内容本次课程设计的主要内容为设计并实现一个简单的单片机应用系统。

具体要求如下:1. 选取一个合适的单片机型号,并给出详细的理由;2. 设计一个实际应用场景,如温度监测、电子琴等,要求具备一定的实际意义;3. 硬件方面,设计电路及相关外围电路,如传感器、显示器等;4. 软件方面,设计控制程序,实现所选应用场景的功能;5. 进行系统集成和调试,确保系统正常工作;6. 撰写设计报告,对设计过程和结果进行详细说明。

四、设计方案1. 单片机的选择在选择单片机时,需要考虑应用需求和成本因素。

根据本次设计的要求,我们选择了XX单片机,这款单片机具有性能稳定、易于编程和丰富的外围接口等特点,非常适合本次设计的需求。

2. 应用场景的设计本次设计的应用场景为温度监测系统。

随着人们对室内温度的要求越来越高,设计一个简单且准确的温度监测系统对于提高生活质量至关重要。

我们将使用温度传感器和数码显示器来实现温度的监测和显示功能。

3. 硬件设计在硬件设计方面,我们将按照以下步骤进行:a) 选择合适的温度传感器,将传感器与单片机进行连接;b) 设计电源电路和信号采集电路,确保传感器与单片机之间的正常通信;c) 设计数字显示电路,将单片机采集到的温度数值进行显示。

4. 软件设计软件设计主要包括编写单片机控制程序。

我们将按照以下步骤进行:a) 初始化单片机和相关外围设备,确保其正常工作;b) 采集传感器的温度数值,并进行数据处理;c) 控制数码显示器,将温度数值显示在屏幕上。

单片机课程设计报告

单片机课程设计报告

单片机课程设计报告项目简介本文档将详细介绍单片机课程设计项目的背景、目标、实施过程和结果。

本项目旨在通过单片机开发一个特定功能的系统,并实现相应的硬件和软件设计。

背景单片机是一种集成电路,集中了处理器、存储器和其他外围器件的功能。

它的小巧、低功耗和低成本使得它成为嵌入式系统中常用的控制器。

单片机课程设计是大多数电子工程专业的必修课程,通过实际设计和开发单片机系统,提高学生在硬件和软件方面的实践能力。

目标本项目的主要目标是设计一个基于单片机的系统,能够完成特定任务。

我们选择了一个温度监控系统作为设计任务,主要包括以下功能: - 采集温度数据 - 实时显示温度 - 根据设定温度报警设计过程硬件设计在硬件设计方面,我们选用了ATmega328P单片机作为主控芯片,通过使用温度传感器LM35来采集温度数据。

单片机与温度传感器之间通过模拟输入引脚连接。

为了实现实时显示温度,我们选择了一个七段LED显示器,将数字信号发送至显示器实现温度的显示。

此外,我们还使用按钮来设置报警温度,并通过蜂鸣器进行报警。

软件设计在软件设计方面,我们使用C语言进行单片机程序的编写。

通过编写相应的代码,实现以下功能: 1. 初始化单片机及相关外设 2. 采集温度数据并进行处理 3. 将温度数据转换为七段LED显示所需的数字信号 4. 设置报警温度,并进行判断 5. 当温度超过报警温度时,触发蜂鸣器进行报警实施结果经过设计和实施,我们成功实现了温度监控系统的目标功能。

在系统测试中,我们能够准确采集温度数据,并通过七段LED显示器实时显示。

当温度超过设定的报警温度时,系统能够准确触发蜂鸣器进行报警。

整个系统工作稳定,达到了预期效果。

总结单片机课程设计是电子工程专业中重要的实践环节,通过实际设计和开发单片机系统,可以提高学生的动手能力和解决问题的能力。

本项目以温度监控系统为例,详细介绍了硬件和软件的设计过程,并展示了最终的实施结果。

在未来的学习和工作中,我们将继续积极运用单片机技术,深入研究和探索更多的应用领域。

单片机课程设计报告 (2)

单片机课程设计报告 (2)

单片机课程设计报告1. 引言本文为单片机课程设计报告,主要介绍了课程设计的背景、目的、设计方案、实施过程以及结果分析和总结。

2. 背景单片机是嵌入式系统的核心部件,广泛应用于各个领域。

作为计算机科学与技术专业的学生,掌握单片机的基本原理和应用是必不可少的。

因此,本次课程设计旨在通过实践,加深对单片机的理解和应用能力。

3. 目的本次课程设计的目的是设计一个基于单片机的智能温度监控系统。

该系统能够实时监测环境温度,并通过显示屏展示当前温度值,并在温度超过设定阈值时发出警报。

4. 设计方案4.1 硬件设计本设计使用STC89C52单片机作为控制核心,配合温度传感器和液晶显示屏,实现温度监测和显示的功能。

温度传感器负责采集环境温度,将采集到的数据发送给单片机进行处理;液晶显示屏用于显示当前温度值和警报信息。

4.2 软件设计软件设计分为两个模块:温度采集和温度监控。

温度采集模块通过单片机的ADC接口获取温度传感器的模拟信号,将其转化为数字信号,并保存在单片机的内存中。

温度监控模块不断读取内存中的温度值,并与设定的阈值进行比较,如果温度超过阈值,则发出警报信号,同时在液晶显示屏上显示警报信息。

5. 实施过程5.1 硬件实施首先,根据设计方案的要求,将STC89C52单片机、温度传感器和液晶显示屏组装在一起,搭建出硬件平台。

接下来,使用面包板和杜邦线等连接元件,将各个模块按照设计方案进行连线。

最后,使用电源适配器给整个系统供电。

5.2 软件实施软件实施主要分为两个步骤:编写硬件控制程序和编写温度监控程序。

硬件控制程序主要负责初始化硬件设备和处理硬件输入输出;温度监控程序则负责实现温度采集和温度监控逻辑。

在编写硬件控制程序时,需要使用STC89C52的GPIO接口对传感器和显示屏进行控制。

在编写温度监控程序时,需要使用STC89C52的ADC接口进行温度采集,以及使用GPIO接口对警报信号和显示屏进行控制。

6. 结果分析和总结经过实施过程的努力,我们成功地完成了基于单片机的智能温度监控系统。

51单片机课程设计报告

51单片机课程设计报告

51单片机课程设计报告一、课程目标知识目标:1. 理解51单片机的硬件结构、工作原理及其功能特点;2. 学会使用51单片机的指令系统进行程序设计;3. 掌握51单片机与外围电路的接口技术,能实现简单的硬件控制功能;4. 了解51单片机在嵌入式系统中的应用及发展趋势。

技能目标:1. 能够运用C语言编写51单片机的程序,实现基础控制功能;2. 能够运用仿真软件对51单片机程序进行调试,分析并解决简单问题;3. 能够设计简单的51单片机硬件系统,进行电路连接和功能测试;4. 培养学生的动手能力、创新能力和团队协作能力。

情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发学习热情;2. 培养学生严谨、务实的科学态度,提高自主学习能力;3. 培养学生关注社会发展,了解科技在生活中的应用,增强社会责任感;4. 培养学生团队合作精神,尊重他人意见,善于沟通交流。

课程性质:本课程为实践性较强的电子技术课程,以51单片机为核心,结合硬件和软件,培养学生的实际操作能力和创新能力。

学生特点:学生具备一定的电子技术基础知识,对单片机有一定了解,但实践经验不足。

教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,提高学生的实际操作能力和解决问题的能力。

通过课程学习,使学生能够独立完成简单的51单片机控制系统设计。

二、教学内容根据课程目标,教学内容分为以下几个部分:1. 51单片机硬件结构及原理- 熟悉51单片机的内部结构、引脚功能;- 掌握51单片机的工作原理及性能特点。

2. 51单片机指令系统与编程- 学习51单片机的指令集,理解各指令的功能和使用方法;- 掌握C语言在51单片机编程中的应用。

3. 51单片机外围接口技术- 学习51单片机与常见外围电路(如LED、LCD、键盘等)的接口技术;- 掌握外围设备的控制原理及编程方法。

4. 仿真软件的使用- 学习使用Keil、Proteus等仿真软件进行51单片机程序设计和调试;- 掌握仿真软件的操作方法,提高程序调试效率。

单片机课程设计实验报告+基于单片机的数字时钟+含完整实验代码

单片机课程设计实验报告+基于单片机的数字时钟+含完整实验代码

单片机课程设计报告基于单片机的数字时钟姓名:班级:学号:一、前言利用实验板上的4个LED数码管,设计带有闹铃、秒表功能的数字时钟。

功能要求:a)计时并显示(LED)。

由于实验板上只有4位数码管,可设计成显示“时分”和显示“分秒”并可切换。

b)时间调整功能。

利用4个独立按钮,实现时钟调整功能。

这4个按钮的功能为工作模式切换按钮(MODE),数字加(INC),数字减(DEC)和数字移位(SHITF)。

c)定闹功能。

利用4个独立按钮设定闹钟时间,时间到以蜂鸣器响、继电器动作作为闹铃。

d)秒表功能。

最小时间单位0.01秒。

二、硬件原理分析1.电源部分电源部份采用两种输入接口(如上图)。

a)外电源供电,采用2.1电源座,可接入电源DC5V,经单向保护D1接入开关S1。

b)USB供电,USB供电口输入电源也经D1单向保护,送到开关S1。

注:两路电源输入是并连的,因此只选择一路就可以了,以免出问题。

S1为板子工作电源开关,按下后接通电源,提供VCC给板子各功能电路。

电路采用两个滤波电容,给板子一个更加稳定的工作电源。

LED为电源的指示灯,通电后LED灯亮。

2.蜂鸣器蜂鸣器分为有源和无源两种,有源即两引脚有一个直流电源就可以长鸣,无源则需要一个1K左右的脉冲才可以蜂鸣,因此对于按键的提示音及报警蜂鸣使用有源来得方便。

有源也可以当无源使用,而无源则不能当有源使用,当然用有源蜂鸣器作音乐发声会失真厉害。

如上图:单片机P15输出高低电平经R21连接三极管B极,控制三极管的导通与截止,从而控制蜂鸣器的工作。

低电平时三极管导通,蜂鸣器得电蜂鸣,高电平时三极管截止,蜂鸣器失电关闭蜂鸣。

电路使用一个四位共阳型数码管,四个公共阳级由三极管放大电流来驱动,三极管由P10-P13控制开与关。

数码管的阴级由P0口经过电阻限流连接。

例如,要十位的数码管工作,P12输出0,使三极管Q12导通,8脚得电,当P0口相应位有输出0时,点亮相应的LED灯组合各种字符数字。

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告一、设计目的。

本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。

通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。

二、设计原理。

本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。

利用数码管来显示小时和分钟,通过按键来调整时间。

同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。

三、设计方案。

1. 硬件设计。

(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。

(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。

(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。

(4)按键输入,设计按键来调整时间,包括调整小时和分钟。

(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。

2. 软件设计。

(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。

(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。

(3)按键处理,设计按键扫描程序,实现对时间的调整。

(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。

四、设计实现。

1. 硬件实现。

根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。

2. 软件实现。

编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。

五、实验结果。

经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。

六、总结与展望。

通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。

在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。

同时,也为学生今后的科研和创新工作奠定了良好的基础。

单片机课设报告

单片机课设报告

单片机课设报告在单片机实验课程中,我们的课设是实现一个电子计算器。

该计算器具有简单的四则运算功能,可以对两个数进行加法、减法、乘法和除法运算,并且能够显示结果。

首先,我们选择了一颗适合课设需求的单片机,我们选择了STC89C52单片机。

该单片机有足够的I/O口和定时器、中断等功能,能够满足我们实现计算器的要求。

接下来,我们设计了计算器的界面,使用了4×4的矩阵键盘作为输入设备,使用一个LCD液晶显示屏作为输出设备。

我们将4×4的矩阵键盘与单片机的I/O口相连,通过矩阵键盘的扫描原理实现对键盘的输入检测。

LCD液晶显示屏与单片机的I/O口相连,通过单片机的程序控制来显示结果。

然后,我们编写了控制程序。

首先,我们在程序中定义了各个键的扫描码,通过程序扫描键盘,接收用户的输入。

然后,根据输入的运算符号,我们根据用户的选择调用相应的函数进行加法、减法、乘法或除法运算,并将结果显示在LCD液晶屏上。

为了能够处理大整数运算,我们使用了字符串来存储计算结果。

最后,我们进行了实验验证。

我们使用示波器来检测单片机的工作情况,通过观察波形来确认程序的正确性。

同时,我们还使用了示波器来检测LCD液晶显示屏的工作情况,确认其能够正确显示结果。

通过本次实验,我们学会了如何使用单片机来实现简单的计算器功能。

我们掌握了矩阵键盘的扫描原理,学会了使用LCD液晶显示屏来输出结果。

我们还通过实验验证了程序的正确性,并且能够通过示波器来检测单片机的工作情况。

这次实验不仅巩固了我们的理论知识,还提高了我们的动手实验能力,为我们今后的学习和工作打下了坚实的基础。

单片机课程设计-武汉理工大学单片机实训报告

单片机课程设计-武汉理工大学单片机实训报告

单⽚机课程设计-武汉理⼯⼤学单⽚机实训报告第⼀章绪论 (2)1.1概述 (2)1.2课程设计任务 (2)第⼆章硬件系统设计 (3)2.1单⽚机最⼩系统 (3)2.1.1 STC89C52的介绍 (3)2.1.2 stc89c52系列单⽚机最⼩系统的介绍 (4)2.2矩阵键盘模块 (5)2.3数码管显⽰单元 (5)2.4 LCD1602液晶显⽰电路 (6)2.5蜂鸣器单元 (7)第三章软件设计 (8)3.1数码管实验 (8)3.1.1循环数码管显⽰0—F程序设计结构图: (8)3.1.2 59秒倒计数流程图 (9)3.2 矩阵键盘流程图 (10)3.3 LCD1602滚动显⽰年⽉⽇时分秒 (11)3.4 AD转换, (12)3.5家电遥控器 (13)第四章调试结果分析 (14)4.1数码管调试及分析 (14)4.1.1循环数码管显⽰0—F (14)4.1.2数码管59秒倒计数 (15)4.2矩阵键盘 (15)4.3 LCD1602滚动显⽰年⽉⽇时分秒 (16)4.4 AD转换 (16)4.5家电遥控器 (17)第五章⼩结 (17)参考⽂献: (18)第⼀章绪论1.1概述随着我国⼯业技术和电⼦技术的发展和进步,⾃动控制技术也已经得到了极⼤的普及和应⽤,⽽这些⾃动控制技术的核⼼技术就是单⽚微型计算机,简称单⽚机。

它以其⾼可靠性、⾼性价⽐、低电压、低功耗等⼀系列优点,被⼴泛应⽤于控制系统、数据采集等领域。

⽽51单⽚机系列以其超⾼的性价⽐深受⼴⼤电⼦爱好者和开发者以及⼤学⽣群体的欢迎。

故⽽本次课程设计采⽤STC89C52单⽚机。

1.2课程设计任务必做项⽬(这是每个学⽣必做的任务):1.基本系统:在51单⽚机开发系统PCB电路板上完成电⼦元器件的焊接、调试、程序下载,并实现数码管显⽰、矩阵键盘扫描、中断程序、定时器程序、串⼝通讯等基本功能;2.显⽰功能:焊接电路并实现对1602液晶屏的显⽰功能,要求能滚动显⽰字符;3.输出控制:焊接电路并实现对继电器的控制功能;4.数据采集:焊接电路并实现对AD0832的数据采集功能;选做项⽬(以下任选⼀):1.家电遥控器:实现对红外接收管和发射管的控制功能,要求能够学习遥控器的红外码,并能发射相应的编码,实现红外遥控器的功能。

单片机课程设计实验报告

单片机课程设计实验报告

单片机课程设计实验报告单片机课程设计实验报告引言单片机是嵌入式系统中常见的一种计算机芯片,具有体积小、功耗低、成本低等优势。

本次实验旨在通过单片机的应用设计,加深对单片机原理和应用的理解,并提升解决问题的能力。

实验目的本次实验的目的是设计一个简单的温度监测系统,通过单片机采集温度传感器的数据,并将数据显示在液晶显示屏上。

通过这个实验,我们可以掌握单片机的基本编程和电路连接方法,同时加深对温度传感器的原理和应用的理解。

实验原理1. 单片机基本原理单片机是一种集成电路,内部包含了CPU、内存、输入输出端口等功能模块。

通过编程,可以控制这些功能模块的工作,实现各种应用。

2. 温度传感器原理温度传感器是一种能够感知环境温度变化的器件,常见的有热敏电阻、热电偶等。

本次实验使用的是热敏电阻,其电阻值随温度的变化而变化。

实验材料1. 单片机开发板2. 温度传感器3. 液晶显示屏4. 连接线等实验步骤1. 连接电路将单片机开发板与温度传感器、液晶显示屏连接起来,确保电路连接正确无误。

2. 编写程序使用C语言编写单片机的程序,实现温度传感器数据的采集和液晶显示屏的显示。

程序的基本思路是通过单片机的模拟输入端口读取温度传感器的电阻值,然后将电阻值转换为温度值,并将温度值显示在液晶显示屏上。

3. 烧录程序将编写好的程序烧录到单片机开发板上,确保程序能够正常运行。

4. 实验测试将温度传感器放置在不同的环境中,观察液晶显示屏上的温度数值是否能够准确显示,并记录实验结果。

实验结果与分析经过实验测试,我们发现温度传感器能够准确地采集环境温度,并将温度数值显示在液晶显示屏上。

通过对比实际温度和显示温度的差异,我们可以评估温度传感器的准确性和精度。

实验总结通过本次实验,我们深入了解了单片机的基本原理和应用,掌握了单片机的编程方法和电路连接方法。

同时,我们也加深了对温度传感器的原理和应用的理解。

这些知识和技能对于今后的学习和工作都具有重要意义。

单片机课程设计报告(五人表决器)

单片机课程设计报告(五人表决器)

目录一、方案设计 (2)二、硬件电路设计 (2)三、软件设计说明 (6)四、程序清单 (7)五、制作调试说明 (12)六、操作使用说明 (13)七、总结 (13)单片机课程设计一、方案设计1、设计题目:5人表决器2、设计要求:1)、可供5—7个人进行表决,每个人有一个“同意”和一个“反对”按键,故一个人需要两个按键,表决时两个键先按下的一个有效,同时按下则表示无效,每次表决每个按键只能是第一次按下的有效,多按无效,用单片机设计表决器是硬件电路与软件设计相结合的一种设计,因此在硬件电路只能实现按键的按下与释放,不能智能的实现检测按键被按下几次,则可用软件设计来实现其功能。

2)会议主持人可利用按键控制表决的开始与结束,点亮黄灯用于显示表决开始,熄灭黄灯表示结束,并将表决结果用红灯与绿灯显示。

当不相等时,“同意”多于“反对”点亮绿灯,“同意”少于“反对”点亮红灯。

3)在实现上述功能的基础上增加“同意”数和“反对”数的显示。

二、硬件电路设计1、硬件设计思路:此次设计的题目是5人表决器,分析得设计的硬件电路选用P1口与P2口作为同意与反对按键的输入端。

又表决的开始与结束是由主持人来控制的,因此需要两个按键来表示表决的开始与结束,因此可采用外部中断0与外部中断1来控制表决的开始于结束。

故设计总共需要按键12个。

设计要求中需要四盏灯,分变为一个黄灯,一个绿灯和二个红灯,三盏灯用于输出显示,因此也可以征用单片机的I/O口,由于P1口与P2口作为同意与反对按键的输入端且P0口当做输出端口时可以不用接上拉电阻,因此可将三个显示灯接在P0口用于显示表决的结果。

还有一盏红灯用来做电源指示灯。

2、元器件参数确定:设计要求中需要三盏灯(黄灯,绿灯和红灯)用于输出显示,选用P0口的3个端口与显示灯相连接用于输出,由于输出端口输出的高电平一般为5V,而发光二极管允许的最大电流为5mA,因此需要用到限流电阻,发光二极管可降2V的电压,则限流电阻上的压降为3V,那么限流电阻的最小阻值为R=3V/5mA=600欧姆,由于输出的高电平不是5V,故用510欧姆的限流电阻。

单片机课程设计报告

单片机课程设计报告

单片机课程设计 报告一、课程目标知识目标:1. 学生能理解单片机的基本概念,掌握其工作原理及结构组成。

2. 学生能掌握单片机编程的基本语法,如指令系统、寄存器等。

3. 学生能了解并运用单片机在现实生活中的应用,如智能家居、机器人控制等。

技能目标:1. 学生具备使用开发板进行单片机程序编写、调试的能力。

2. 学生能通过小组合作,设计并实现简单的单片机控制系统,培养动手实践能力。

3. 学生能运用所学知识解决实际问题,具备一定的创新能力和问题解决能力。

情感态度价值观目标:1. 学生通过单片机课程学习,培养对电子技术的兴趣和热情,增强学习动力。

2. 学生在学习过程中,养成团队协作、沟通交流的良好习惯,增强集体荣誉感。

3. 学生了解单片机在我国科技发展中的重要性,培养国家使命感和社会责任感。

课程性质分析:本课程为单片机课程设计,旨在让学生通过实践操作,掌握单片机的基本原理和编程技术,提高解决实际问题的能力。

学生特点分析:本年级学生具备一定的电子技术基础知识,对单片机有一定了解,但编程能力和实践操作经验有限。

教学要求:1. 注重理论与实践相结合,强化学生的动手实践能力。

2. 采用项目驱动教学法,引导学生主动探究、解决问题。

3. 培养学生的团队协作能力,提高沟通表达水平。

4. 结合生活实际,激发学生学习兴趣,培养创新思维。

二、教学内容根据课程目标,本章节教学内容分为以下三个部分:1. 单片机基础理论- 理解单片机的概念、发展历程及应用领域。

- 掌握单片机的硬件结构、工作原理及性能指标。

- 学习单片机的指令系统、寄存器、I/O口编程等基本知识。

教学内容对应教材章节:第一章 单片机概述、第二章 单片机硬件结构及工作原理。

2. 单片机编程与调试- 学习单片机编程语言(如C语言、汇编语言)及开发环境。

- 掌握单片机程序编写、调试方法,了解程序下载、运行过程。

- 学习中断、定时器、串行通信等单片机功能模块的使用。

教学内容对应教材章节:第三章 单片机编程语言、第四章 单片机编程与调试。

单片机课程设计报告(简易计算机)

单片机课程设计报告(简易计算机)

专业综合课程设计任务书班级:学号:姓名:成绩:电子与信息工程学院计算机科学系图1.2 图1.3图1.42.3键盘电路这部分有16个button构成4*4矩阵,通过p1口进行行扫描方式实现按键的读取。

硬件电路图如图1.4。

2.4总体硬件图如图1.5图1.53 软件详细设计3.1键盘扫描子程序要进行数据的计算就必须进行数据的输入,也就是确定按键输入的数值是什么,这就需要对键盘进行行扫描,从而确定究竟是那个键按下。

对于键盘的扫描,既可以使用行扫描也可以使用列扫描,这里采用行扫描的方法完成对键盘的扫描行扫描就是逐行扫描键盘,看那一行有键按下,再通过返回的见马来确定究竟是哪个按键按下。

对第一行扫描就置p1.0为底电平,其余p1口为高电平,如果有按键按下,则p1口的值就会变为别的值,再由新值来确定是那个键按下。

程序流程图如图1.6图1.6dd:mov r0,#0f7h mov r1,#0cc:mov a,r0 mov p1,amov a,p1 mov r2,asetb c mov r3,#4bb:rlc a jnc aaee:inc r1 djnz r3,bbmov a,r0 setb crrc a mov r0,ajc cc ljmp ddKAOO:LJMP KAO BBB2:LJMP BB2aa:lcall mm mov a,p1xrl a,r2 nz eeff:mov a,p1 xrl a,r2jz ff MOV A,51HCJNE A,#1,BBB2RET3.4主程序及其他部分程序下图为主程序流程图:主要有:初始化子程序,清屏子程序,固定字符显示,单元定义,端口定义,字模部分。

主程序:RG 0LJMP STARTSTART:MOV SP,#60HLCALL INT ;调用初始化子程序START1:LCALL CLEAR ;调用清屏子程序初始化子程序:INT: MOV COM,#0C0H ;设置显示起始行为第一行LCALL PRM0LCALL PRR0MOV COM,#3FH ;开显示设置LCALL PRM0LCALL PRR0RET清屏子程序:CLEAR:MOV R4,#00H。

单片机课程设计实验报告

单片机课程设计实验报告

单片机课程设计实验报告一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握其内部结构及工作流程。

2. 使学生掌握单片机编程的基本语法和编程技巧,能独立完成简单的程序编写。

3. 帮助学生了解单片机在现实生活中的应用,提高对新技术、新领域的认识。

技能目标:1. 培养学生运用单片机进行实验设计和实践操作的能力。

2. 培养学生分析问题、解决问题的能力,提高创新思维和动手实践能力。

3. 提高学生的团队协作和沟通能力,学会在实验过程中相互交流、共同进步。

情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养主动学习的习惯。

2. 培养学生严谨、细致的实验态度,养成良好的实验操作习惯。

3. 增强学生的自信心和责任感,使他们认识到学习单片机对国家科技发展的意义。

课程性质分析:本课程为单片机课程设计实验,侧重于实践操作和实际应用。

课程要求学生具备一定的电子技术基础和编程能力,通过实验深入了解单片机的工作原理和应用领域。

学生特点分析:本课程面向高年级学生,他们在之前的学习中已掌握了基本的电子技术和编程知识,具备一定的自学能力和动手实践能力。

但学生在单片机应用方面的实践经验不足,需要通过本课程加强实践锻炼。

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

2. 注重启发式教学,引导学生主动思考、探索,培养学生的创新精神和实践能力。

3. 关注学生的个体差异,给予个别辅导,确保每位学生都能达到课程目标。

二、教学内容1. 单片机基础知识:- 单片机原理与结构- 单片机内部资源及功能- 单片机编程语言(汇编语言、C语言)2. 单片机编程与实验:- 基本输入输出编程- 定时器、中断编程- 模数转换、串行通信编程3. 单片机应用案例:- 实例分析:温度控制器、智能小车等- 创新设计:学生自主选题,设计单片机应用项目4. 实验操作与调试:- 实验步骤与方法- 常用工具与仪器的使用- 故障分析与调试技巧教学大纲安排:第一周:单片机基础知识学习,包括原理、结构、编程语言等第二周:基本输入输出编程,实验一:LED灯控制第三周:定时器、中断编程,实验二:简易电子时钟第四周:模数转换、串行通信编程,实验三:温度传感器数据采集第五周:单片机应用案例分析,学生自主选题,设计单片机应用项目第六周:实验操作与调试,完成设计项目,撰写实验报告教材章节关联:教学内容与教材《单片机原理与应用》相关章节紧密关联,具体包括:- 第一章:单片机概述- 第二章:单片机的结构与原理- 第三章:单片机编程语言- 第四章:单片机内部资源及应用- 第五章:单片机实验与调试教学内容确保科学性和系统性,以培养学生的实际操作能力为目标,注重理论与实践相结合,提高学生的创新能力和实践技能。

单片机课程设计实验报告--零件计数器

单片机课程设计实验报告--零件计数器

Ⅰ、课程设计(报告)题目:《单片机课程设计》零件计数器Ⅱ、课程设计(论文)工作内容一、课程设计的目的与意义1、培养综合运用知识和独立开展实践创新的能力。

2、《单片机》是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。

不论理论学习还是实际应用,都离不开实验课教学。

如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节、学习与应用脱节的局面。

《单片机课程设计》的目的就是让同学们在理论学习的基础上,通过完成一个涉及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统设计,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的硬件问题进一步加深认识,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。

二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、通过单片机实验箱进行对单片机的烧写工作和实际调试,实现软件的功能。

三、课程设计预期效果(课程设计任务及要求)1、完成实验环境搭建;2、把接在INT0上的单稳信号当作零件信号,每来一个零件,单片机计数一次,当计满10次时,蜂鸣器发出一声警告音,并使继电器闭合一次,产生零件打包动作。

要求LED上显示当前一共生产了多少零件。

实时通过串口把零件数量发送给PC。

(提高部分)3、主要掌握的知识:关于单片机的外部中断和动态显示的应用。

学生姓名:专业年级:摘要本次单片机课程设计我组选择的题目是零件计数器,零件计数器本身在生产实践中具有很实际的用途,通过对这个项目的研究可以让我们更好的把课堂上学到的课本知识和理论内容与生产实践结合起来,对提高实际问题的动手操作能力以及解决问题的能力有很大的帮助,进一步加深学生对于实际的电子元件电路功能的理解与运用,巩固了编写源程序和烧写单片机的相关知识,对于设计实际的实用程序来解决一系列生产生活遇到的问题的能力有着显著的加强与提高。

单片机课程设计报告书---交通灯控制电路设计

单片机课程设计报告书---交通灯控制电路设计

交通灯控制电路设计一、选题背景交通灯控制系统是城市道路管理中极为重要的一个环节,其在加强道路交通管理,减少交通事故的发生,提高道路使用效率等方面具有不可替代的作用。

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制技术日益更新。

本文将介绍一种用单片机作为系统的主控单元,通过单片机嵌入软件程序来实现交通信号灯的多重控制方式,整个系统以STC89C52RC单片机为核心加以晶振电路、复位电路、电源电路构成系统的控制枢纽,系统状态显示系统采用7段LED数码管进行倒计时的现实,红、黄、绿三色LED灯作为信号指示。

系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口出现的状况。

本系统性能稳定,功能完善,实用性强。

二、方案论证(设计理念)1.主要内容用单片机系统设计十字路口交通灯控制电路,要求东西方向的红、黄、绿灯和南北方向的红、黄、绿灯按照下面的工作时序进行工作,黄灯亮时应为闪烁状态:(1)南北和东西车辆交替进行,各通行时间 24 秒(2)每次绿灯变红灯时,黄灯先闪烁 4 秒,才可以变换运行方向。

(3)十字路口要有数字显示作为时间提示,以倒计时按照时序要求进行显示;具体为:当某方向绿灯亮时,置显示器为某值,然后以每秒减 1 计数方式工作,直至减到数为“0”,十字路口红、绿等交换,一次工作循环结束,而进入下一步某方向的工作循环。

(4)可以手动调整和自动控制,夜间为黄灯闪耀状态2.教学要求选择适当元器件设计单片机外围电路、由单片机系统完成二十四进制倒计时、四进制倒计时、显示及模式切换逻辑控制等;仿真实现各电路功能;搭建、调试电路实现设计要求的功能;掌握复杂数字电路的一般设计方法,具备初步的独立设计能力;掌握对电子线路进行仿真调试的方法和技能;掌握实现电路的实验方法和电路的调试方法。

3.方案设计与选择3.1交通信号控制原理交通信号控制原理是按照一定的控制程序,在交叉路口的每个方向上通过红、黄、绿三色灯循环显示,指挥交通流,在时间上实施隔离。

单片机课程设计报告[5篇]

单片机课程设计报告[5篇]

单片机课程设计报告[5篇]第一篇:单片机课程设计报告《单片机课程设计报告》学校:专业:班级:姓名:学号:指导教师:摘要由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制。

通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用。

关键词单片机,程序,流水灯,数码管,温度计,键盘扫描,定时器等。

实验内容一、课程设计的目的以本学期对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。

在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。

实验一:键盘操作实验实验要求:通过本次实验实现对键盘的控制,操作数码管的显示数字。

实验程序:#include #include #include #include #define WR273 XBYTE[0XC000] #define RD244 XBYTE[0XC000] #define uchar unsigned char #define uint unsigned int sbit DQ =P1^0;uint count=0,x,buf[20],tim,flag;uchar fen,shi;uchar codetable_16_1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80 ,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};uchar codetable_16_2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x0 0,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};voidled_clc(void){ XBYTE[0X8000]=0XFF;XBYTE[0X9000]=0XFF;XBYTE [0XA000]=0XFF;XBYTE[0XB000]=0XFF;}void delay(unsigned int i){ while(i--);} void delay_1ms(uint z){ uint i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);} uchar key_test(){ WR273=0XF0;if((RD244&0X0F)!=0X0F)return 1;else return 0;}void time_init(){ TMOD=0X01;TH0=(65536-46080)/256;TL0=(65536-46080)%256;TR0=1;ET0=1;EA=1;} void time_display(){if(count==10000)count=0;XBYTE[0X8000]=table_16_1[coun t%10];XBYTE[0X9000]=table_16_1[count%100/10];XBYTE[0XA00 0]=table_16_1[count%1000/100];XBYTE[0XB000]=table_16_1[co unt/1000];} void TIME_SET(){ uchar a,b,c,d,key;while(flag==1){ led_clc();while(!key_test());a=keyscan();XBYTE[0XB000]=table_16_1[a];while(!key_test());b=keyscan();XBYTE[0XA000]=table_16_2[b];while(!key_test());c=keyscan();XBYTE[0X9000]=table_16_1[c];while(!key_test());d=keyscan();XBYTE[0X8000]=table_16_1[d] ;while(!key_test());key=keyscan();if(key==11){shi = a*10+b;fen = c*10+d;flag=0;} } } void TIME_DIS(){if(tim==60){ fen++;tim=0;if(fen==60){ shi++;fen=0;if(shi==24)shi=0;} } XBYTE[0X8000]=table_16_1[fen%10];XBYTE[0X9000]=table_16_1 [fen/10];XBYTE[0XA000]=table_16_2[shi%10];XBYTE[0XB000]=ta ble_16_1[shi/10];} void main(){ uint temp;led_clc();// serial_init();time_init();while(1){ temp=keyscan();if(temp==10)fla g=1;TIME_SET();//XBYTE[0X8000]=table_16_1[temp];//time_display();TIME_DIS();} } void time()interrupt 2 { uchar m;TH0=(65536-46080)/256;TL0=(65536-46080)%256;m++;if(m==20){ m=0;count++;tim++;} } void serial()interrupt 4 { if(RI==1){ x=SBUF;RI=0;} put_char(x);delay_1ms(5);}实验心得体会:通过本次实验,让我对单片机实验有了更深的了解,认为这个实验还是比较容易的,没有花太多的时间。

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

文华学院单片机原理及应用课程设计报告姓名:学号:学部(系):专业年级:指导老师:2016年12月5日目录一标题 (1)二设计内容,设计要求 (1)三设计思路 (1)四工作原理 (2)五硬件设计 (3)六软件设计(含流程图) (5)七调试 (9)八改进意见 (10)九收获及体会 (10)十源程序(含注释) (11)一、标题简易计时器——LED 数码管显示接口技术应用二、设计内容,设计要求1、目的a.通过简易计时器的制作,熟悉LED 数码管与单片机的接口方式;b.定时/计数器、中断技术的综合应用;c.学会简易键盘的使用。

2、明确要完成的任务a.利用按键构成键盘实现秒表的启动、停止与复位,b.利用LED 数码管显示时间。

c.进行简单的串行通信。

3、用单片机实现任务a.如何运用单片机实现计时;b.如何显示时间;c.如何利用按键实施对秒表的控制。

d.定时器T0 或Tl 的定时时间作为时钟计时的基准e.启动与停止定时器工作实现计时。

f.先用两个数码管动态显示时间,时间范围为0-60sg.用三个独立式按键实现秒表的启动、停止和复位功能。

h.A机发送,B机接收三、设计思路1、硬件设计思路a.采用P0 口输出并联控制两个数码管的8 个段选控制端b.用P2.0、P2.1分别控制两个LED 数码管的位选控制端c.动态显示电路接法,LED 采用共阳极数码d.三个按键采用独立式键盘接法,e.两个按键连接到外部中断INT0 、INT1 的输人引脚P3.2和P3.3f.S4按键接到T1的外部脉冲输入引脚P3.5,以中断方式实现键盘输入状态的扫描g.其中S2为启动按钮,S3为停止按钮,S4 清零按钮。

h.K1为复位键2、程序设计思路a.根据设计的总体要求划分出各功能程序模块,分别确定主程序、子程序及中断服务程序结构b.对各程序模块占用的单片机资源进行统一调配c.对各模块间的逻辑关系进行细化,优化程序结构d.设计出各模块程序结构流程图e.最后依据流程图编制具体程序f.将整个程序划分为主程序、键盘扫描程序、秒计时程序三大模块g.其中主程序除完成初始化外,主要由动态显示程序构成h.秒计时程序由定时器0中断服务子程序构成i.键盘扫描程序也由各中断服务子程序来实现四、工作原理1、计时表原理图S1:复位按键S2:启动按键S3:暂停按键S4:清零按键T1(P3.5) INT1(P3.3) INT0(P3.2)工作原理图如上图所示,单片机所需的晶振频率由振荡电路提供,复位由复位电路实现。

其中S2为启动按钮,S3为停止按钮,S4为清零按钮,三个按钮分别连接到外部中断INT0 、INT1 的输人引脚P3.2、P3.3和T1的外部脉冲输入引脚P3.5。

设置外部中断为下降沿触发,当按键未被按下时,其相应的引脚为高电平,而当按键被按下后,变为低电平,因此有下降沿,产生中断,从而执行相应的外部中断服务程序,实现启动和停止的功能。

同理,只要设置T1为计数器,因为计数器是对外脉冲的下降沿计数,当按键按下时,产生下降沿,计数值加1,这样,只要选择合适的计数初值,使其只要加1后产生溢出,也会执行T1的中断服务程序,实现清零的功能。

而对1S时间的准确控制可以由定时器T0来控制,这样,就实现了T0、T1、INT0、INT1等4个中断源的运用。

对于数码管,采用P0 口输出并联控制两个数码管的8 个段选控制端,而用P2.0、P2.1分别控制两个LED 数码管的位选控制端,这是动态显示的电路接法,LED采用共阳极接法,0-9的共阳极数码管编码如下所示:共阳极数码管编码五、硬件设计图2 电路布线图(protel)图3 PCB图元器件清单元件名称参数/型号说明封装数量1 单片机89C51 厂家:ATMEL DIP-40 12 IC插座DIP40 双列直插式/40个引脚孔13 晶体振荡器12MHZ石英晶体振荡器(非温度补偿式)直插式 14 数码管HS-5101BS2 65 IC插座单排针插座/16个引脚孔,间距2.54mm说明:串口下载RS23216 RS232通讯MAX232 DIP 17 普通按键DTS65K 38 复位按键6*6*4.3 19 瓷片电容30pF 直插式 210 电解电容104 0.1uF 直插式 6六、软件设计(含流程图)K3(S4):001BH 方式2计数,中断,计数初值:256-1=255,秒计数清0K1(S2):0013H 下降沿中断,启动T0、T1K2(S3):0003H 下降沿中断,关断T0,暂停计时T0:000BH 方式1,50ms定时中断,中断20次为1S。

1. 两个LED 显示的时间由显示缓冲区31H 、30H 单元中的数据决定。

动态显示每位的持续时间为lms ,采用软件延时。

2. 1 秒钟的定时采用定时器T0 的方式1 来实现。

3. T0每50ms中断一次,每中断一次计数单元R0 内容减1 ;若计满20 次,秒计数单元R4 内容加1。

4. R4 单元中的数据采用压缩BCD 码按十进制计数,将该单元中的数据拆成个位和十位两个十进制数据后分别送至显示缓冲区的3OH 、31H 单元。

主程序流程图:1.显示程序2.查询程序查询是否溢YN3.按键子程序七、调试(遇到的问题和解决方法)1、输人源程序。

2、先调试主程序,实现基本的显示功能。

3、当无键按下时,将一直显示初值“00”。

4、再调试查询服务程序。

5、当按键S2按下时,程序将会跳转到启动子程序,启动定时器开始计时。

7、当按键S3按下时,程序将会跳转到停止子程序,定时器停止计时,秒表显示内容保持不变;当按键S3在次按下时定时器开始计时。

8、当按键S4按下时,程序将会跳转到清零停止子程序,停止定时器工作,秒表显示清零。

9、最后将各模块联调实现全部功能。

遇到的问题和解决方法这次课设我用的是汇编对我来说是一个新的挑战,在程序设计过程中也遇到了很大的困难,开始对编程软件不熟悉,就连很小的问题也调试了很久,后来慢慢的解决了这些问题自己也学到了许多东西。

1.在调试时,遇到的最大的问题就是在使用开关查询的时候,对开关进行只按不松也会计时,停止和清零也是这样。

后来加了一个按下开关时不计数,弹起来的程序,也就是等待。

2.在开始做的时候自己没把原理图看清楚,还是采用以前共阴极的方式来做结果数码管不亮。

后来问同学知道这是共阳极的位选要给1、段选给0就可以亮了。

3.设置的暂停键只能暂停,不能恢复,只能重新按启动键才能开始计数。

开始就把问题锁定在暂停程序那里,我发现我最开始编写的是按下暂停,则CLR TR0,关闭了启动,后来我改成了CPL TR0,将TR0取反这样再按下去就可以恢复。

4.按键没有消抖在后来调试中通过老师讲的必须消除抖动的不良后果,所以我加了一个延时10ms的子程序,从而消除抖动的影响。

八、改进意见主要是暂停按键按下暂停在按一下启动是有时候有点不灵敏,我想主要的原因可能是在按键扫描时但我们再次按下时CPU没有及时反应过来花费时间在扫描按键上去了,我后来通过自己去查资料去学习问题的所在。

我用的是查询方式做的后来自己看书把中断方式也写了通过改进把程序在完善,通过自己的学习编写程序多加一些功能。

九、收获及体会通过这次的设计使我认识到我对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,有很多我们需要掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识。

在做本次课程设计的过程中,为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。

其次,在这次课程设计中,我们运用到了以前所学的专业课知识,这是我做这次课程设计的又一收获是要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。

发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。

设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。

在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

我们通过查阅大量有关资料,若遇到实在搞不明白的问题就会及时请教同学,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。

通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。

这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。

通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。

我觉得作为一名自动化专业的学生,单片机的课程设计是很有意义的。

更重要的是如何把自己平时所学的东西应用到实际中。

我认为这个收获应该说是相当大的。

本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。

在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争。

十、源程序(含注释)简易时钟(时分秒)ORG 0000H ;初始化程序入口地址AJMP MAIN ;主程序ORG 0030H ;程序入口地址MAIN:MOV TMOD,#01H ;定时器T0工作于方式1MOV DPTR,#TABLE ;DPTR指向TABLE表首地址MOV R1, #59 ;秒表时间置初值MOV R2, #59 ;分钟时间置初值MOV R3, #23 ;小时时间置初值LP1: MOV R0, #20 ;软件计数器置初值LP2: MOV TH0, #3CH ;置50ms定时初值高位MOV TL0, #0B0H ;置50ms定时初值低位LP3:LCALL DISP ;调用显示程序JNB P3.2, K1 ;判断启动键是否按下JNB P3.3, K2 ;判断停止键是否按下JNB P3.5, K3 ;判断清零键是否按下JNB TF0, LP3 ;判断中断标志位是否溢出CLR TF0 ;定时50到ms,则中断标志位清零DJNZ R0, LP2 ;中断二十次MOV R0,#20 ;重新装软件计数器初值INC R1 ;1秒时间到,秒表数加一CJNE R1,#60,LP1 ;与60比较,小于60就跳转MOV R1, #0 ;若秒表数加到60秒,则清零INC R2 ;60秒时间到,分钟数加一MOV A,R2 ;R2地址里面的数赋给ACJNE A,#60, LP1 ;与60比较,小于60就跳转MOV R2, #0 ;若秒表数加到60分钟,则清零INC R3 ;60分钟时间到,小时数加一MOV A,R3 ;R3地址里面的数赋给ACJNE A,#24, LP1 ;与24比较,小于24就跳转MOV R3, #0 ;若秒表数加到24小时,则清零K1: LCALL DELAY ;按下,调用显示子程序LCALL DISP ;消除抖动JB P3.2, LP3 ;判断启动键是否释放SETB TR0 ;启动T0LJMP LP3 ;跳转到启动键是否按下的指令段,不断判断K2: LCALL DELAY ;按下,调用显示子程序LCALL DISP ;消除抖动JB P3.3, LP3 ;判断暂停键是否释放CPL TR0 ;取反TR0LJMP LP3 ;跳转到暂停键是否按下的指令段,不断判断K3: LCALL DELAY ;按下,调用显示子程序LCALL DISP ;消除抖动JB P3.5, LP3 ;判断清零键是否释放CLR TR0 ;关闭T0MOV R1, #0 ;秒表时间清零MOV R2, #0 ;分钟时间清零MOV R4, #0 ;小时时间清零LJMP LP3 ;跳转到清零键是否按下的指令段,不断判断DISP:MOV A,R1 ;显示程序,先将秒表计时值给累加器作为被除数MOV B,#10 ;除数为10,存放在B累加器DIV AB ;当前值除以10MOV 20H,A ;得出的商送给十位MOV 21H,B ;得出的余数送给个位MOV A,20H ;十位显示MOVC A,@A+DPTR ;查表找个位数段码MOV P0,A ;将个位段码送给P0口SETB P2.4 ;用第一个数码管显示十位数LCALL DELAY ;延时CLR P2.4 ;清零MOV A,21H ;个位显示MOVC A,@A+DPTR ;查表找个位数段码MOV P0,A ;将个位段码送给P0口SETB P2.5 ;用第二个数码管显示十位数LCALL DELAY ;延时CLR P2.5 ;清零MOV A,R2 ;显示程序,先将分钟计时值给累加器作为被除数MOV B,#10 ;同理秒表显示程序DIV ABMOV 30H,AMOV 31H,BMOV A,30HMOVC A,@A+DPTRMOV P0,ASETB P2.2LCALL DELAYCLR P2.2MOV A,31HMOVC A,@A+DPTRMOV P0,ASETB P2.3LCALL DELAYCLR P2.3MOV A,R3 ;显示程序,先将小时计时值给累加器作为被除数MOV B,#10 ;同理秒表显示程序DIV ABMOV 40H,AMOV 41H,BMOV A,40HMOVC A,@A+DPTRMOV P0,ASETB P2.0LCALL DELAYCLR P2.0MOV A,41HMOVC A,@A+DPTRMOV P0,ASETB P2.1LCALL DELAYCLR P2.1RETDELAY: MOV R5,#10 ;延时子程序(1ms)DL0:MOV R4,#50DJNZ R4,$DJNZ R5,DL0RET ;延时子程序返回TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳极0-9显示代码DB 92H,82H,0F8H,80H,90HEND。

相关文档
最新文档