单片机课程设计报告终极版

合集下载

单片机 课程设计报告(完成版)

单片机  课程设计报告(完成版)

单片机课程设计报告
题目:音乐门铃
院系:电气信息工程系专业:通信工程
组长:吴楠学号: 20100606019
组员 1 :刘静静学号: 20100606017
组员 2 :张琳娜学号: 20100606018
组员 3 :李元学号: 20100606020
组员 4 :黄智鑫学号: 20100606049
组员 5 :学号:
组员 6 :学号:
指导教师:李宁
2011年01月06日
电气信息工程系课程设计总结报告
PCB原理图
电气信息工程系
单片机课程设计元器件清单指导教师:李宁课题名称:音乐门铃
参考文献:
[1]徐爱钧.单片机原理实用教程[M].北京:电子工业出版社,2009:267-285.
[2]刘焕平.单片机原理及应用[M].北京:北京邮电大学出版社,2008:246-260.
[3]刘南平.单片机实训与开发教程[M].北京:科学出版社,2008:199-209.
[4]吴金戌.8051单片机实践与应用[M].北京:清华大学出版社,2002:242-253.
[5]刘海成.单片机及应用系统设计原理与实践[M].北京:北京航空航天大学出版社,2009:273-281.
[6]杨振江.单片机应用于实践指导[M].西安:西安电子科技大学出版社,2010:378-380.。

单片机控制课程设计报告

单片机控制课程设计报告

单片机控制课程设计报告一、课程目标知识目标:1. 理解单片机的内部结构、工作原理及其功能特点;2. 掌握单片机编程的基础知识,如指令系统、寄存器、中断等;3. 学会使用单片机进行基本的输入输出控制。

技能目标:1. 能够运用所学知识,设计简单的单片机控制系统;2. 熟练使用编程软件进行单片机程序编写、调试与下载;3. 培养学生动手实践能力,提高解决实际问题的技能。

情感态度价值观目标:1. 培养学生对单片机及电子技术的兴趣,激发学生学习积极性;2. 培养学生团队协作意识,提高沟通与表达能力;3. 培养学生创新精神,鼓励学生勇于尝试、不断探索。

课程性质分析:本课程为单片机控制课程设计,旨在帮助学生将所学理论知识与实际应用相结合,提高学生的动手实践能力和创新能力。

学生特点分析:本课程针对的是高年级学生,他们已经具备一定的电子技术基础和编程能力,对单片机有一定了解,但实践经验不足。

教学要求:1. 结合课本内容,注重理论与实践相结合,强化学生的动手实践能力;2. 注重培养学生的创新意识和团队协作能力,提高学生的综合素质;3. 通过课程设计,让学生体验从理论到实践的完整过程,提高学生解决实际问题的能力。

二、教学内容1. 单片机原理概述:介绍单片机的基本概念、内部结构、工作原理及性能特点,对应教材第一章。

- 单片机的内部组成及其功能- 单片机的工作流程与性能参数2. 单片机编程基础:学习单片机编程语言、指令系统、寄存器及中断处理,对应教材第二章。

- 编程语言(汇编语言、C语言)- 指令系统及常用指令- 寄存器及其应用- 中断处理原理与编程3. 单片机I/O接口技术:学习单片机I/O接口的原理与应用,对应教材第三章。

- I/O接口的分类与特性- I/O接口的编程与控制4. 单片机控制系统设计:结合实际案例,教授单片机控制系统的设计方法,对应教材第四章。

- 系统设计流程与步骤- 硬件设计(电路图绘制、元器件选型等)- 软件设计(程序结构、算法实现等)5. 课程设计与实践:组织学生进行课程设计,巩固所学知识,提高实际操作能力。

单片机课程设计报告

单片机课程设计报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机课程设计报告 (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单片机程序设计和调试;- 掌握仿真软件的操作方法,提高程序调试效率。

单片机课程设计报告模板

单片机课程设计报告模板

单片机技术及应用综合训练(设计报告)题目:姓名:学院:专业:班级:学号:指导教师:2014年5 月一、选题要求临床求助呼叫监护是传送临床信息的重要手段,病房呼叫系统是病人请求值班医生或护士进行诊断和护理的紧急呼叫工具,可将病人的请求快速传送给值班医生或护士,并在值班室的监控中心电脑上留下准确完整的记录,是提高医院和病室护理水平的必备设备之一。

呼叫系统的优劣直接关系到病员的安危,要求及时、准确、可靠、简便可行。

本呼叫系统基于Ateml89C52单片机,振荡电路的晶振采用12MHz,由控制核心AT89C52单片机、电源电路、振荡电路、复位电路、数码管解码芯片、病房选择和七段数码管等部分组成,系统框图如下:二、硬件电路设计工作原理为:电源电路为单片机以及其他模块提供5V电源。

晶振模块为单片机提供时钟标准,使系统各部分能协调工作。

复位电路模块为单片机系统提供复位功能。

单片机作为主控制器,根据输入信号对系统进行相应的控制。

病房一共为四个,从1号病房到4号病房病人的情况由重到轻,即1号病房的优先级最高,4号病房的优先级最低。

所以,当有两个病房一起呼叫时,优先级高的病房号显示;当低优先级的病房呼叫完毕后高优先级的病房呼叫,系统显示的号码改变;当优先级高的病房呼叫完毕后工作人员未复位的情况下,低优先级的病房呼叫无效。

另外,当有病房呼叫时蜂鸣器响直至复位。

此次设计的电路图如下:三、软件设计1、功能介绍:启动系统后,数码管显示0。

当有一个病人呼叫时,数码管显示相应病房号,同时蜂鸣器响起;当有多个病人同时呼叫时,数码管显示优先级高的病房号,同时蜂鸣器响起;当有一个病房呼叫后另一个病房呼叫,若后呼叫的病房优先级低,则数码管显示不变,若后呼叫的病房优先级高,则数码管显示后呼叫的病房号,两种情况下蜂鸣器都会叫,只是在有别的病房呼叫时有一点变音。

2、程序流程图:3、程序源代码:#include <reg51.h>#define uchar unsigned char sbit key4=P3^0;//定义按键位置sbit key3=P3^1;sbit key2=P3^2;sbit key1=P3^3;sbit reset=P3^4;//复位sbit BEEP=P1^7;//定义蜂鸣器端口uchar flag,i;void choice();void clean();void delay();void de();void ring();void main(){while(1){P3=0xff;reset=0;BEEP=0;flag=0;choice();delay();clean();}}void choice()//确定病人{ while(reset!=1&&flag==0) {if(key1==0){de();if(key1==0){P0=0X86;flag=1;}}else if(key2==0){de();if(key2==0&&key1!=0){P0=0Xdb;flag=1;}}else if(key3==0){de();if(key3==0&&key1!=0&&key2!=0){P0=0Xcf; flag=1;}}else if(key4==0){de();if(key4==0&&key1!=0&&key2!=0&&key3!=0){P0=0Xe6; flag=1;}}}}void clean() //RESET 为高的时候复位{if(reset==1){BEEP=0;P0=0x3f;}}void delay() //RESET为低的时候延时{while(!reset){ring();}}void ring(){for(i=0;reset==0;i++)//喇叭发声的时间循环{de();BEEP=!BEEP;if(key1==0||key2==0||key3==0)//第二次呼叫{if( P0==0X86)P0=0X86;else if(P0==0Xdb&&key1==0)P0=0X86;else if(P0==0Xcf&&key1==0)P0=0X86;else if(P0==0Xcf&&key1==1&&key2==0)P0=0Xdb;else if(P0==0Xe6&&key1==0)P0=0X86;else if(P0==0Xe6&&key1==1&&key2==0)P0=0Xdb;else if(P0==0Xe6&&key1==1&&key2==1&&key3==0)P0=0Xcf;}}}void de(){for(i=300;i>0;i--);}四、软硬件调试结果1、未通电:2、通电时:3、低优先级病房先呼叫:(蜂鸣器响)高优先级病房后呼叫:(蜂鸣器响)4、高优先级病房先呼叫:(蜂鸣器响)低优先级病房后呼叫:(蜂鸣器响)呼叫有效呼叫无效5、当有三个病房同时呼叫时:1号2号4号病房同时呼叫显示1五、总结本次实验程序参考网上,但下载时程序有误,经细心验证检查得已改正,这有助于我进一步对C语言的学习和掌握。

单片机课程设计报告最终版

单片机课程设计报告最终版

河南理工大学《单片机应用与仿真训练》设计报告题目:多机温度检测系统姓名:王子洲、张亚辉学号:专业班级:指导老师:王莉所在学院:电气工程与自动化学院2014年01月13日摘要多机温度检测系统是采用STC10F08XE 8位单片机作为控制核心设计了温度测量系统,该系统由温度检测模块、微控制器模块、串口通信模块、数码管显示和报警模块等四部分组成,能对0℃~99℃范围的温度进行测量,同时利用4位八段数码管可以实时显示环境温度。

该系统结构简单,成本低,可同时采集不同位置的温度大小,具有较好的应用价值。

本系统首先由两片下位STC10F08XE单片机通过P0_4口不断循环采集数字化温度传感器DS18B20的温度数据,然后转换成十进制温度值,通过串行口发送至上位STC10F08XE单片机,由上位机通过串行口接收数据,再与上位机设定的温度上下限进行比较,判断是否进行报警,上位机同时驱动四位八段数码管将温度显示出来。

实现本系统的主要难点在于温度的采集和传送。

DS18B20只需要接到单片机的一个I/O口上,由于单总线为开路所以需要外接一个4.7K的上拉电阻。

其功能强大,但需要不断地发送采集命令以及循环读取它传出的数值,然后进行换算成十进制温度。

单片机串口通信是单片机一个非常有用的功能,可以构建多机系统来实现更为强大的功能,而且通过MAX232可以进行远距离的通信,实现远程控制。

我们采用了简单的直接通信而未进行数据发送前的请求应答和数据发送完后的数据检查和校错。

当然,由于我们是首次设计这样完整的应用系统,可能实现的功能不太完善。

关键词:STC10F08XE 温度测量串口通信 DS18B20 Max232目录目录1.概述 (4)1.1.课题背景以及课题研究的意义 (4)1.2.课题的研究的工作以及存在的困难 (4)2.系统总体方案及硬件设计 (5)2.1.系统核心器件简介 (5)2.1.1.单片机STC10F08XE: (5)2.1.2.温度传感器DS18B20介绍: (6)2.2.系统总体设计方案 (8)2.3.系统硬件设计 (8)2.3.1.单片机最小系统设计 (8)2.3.2.DS18B20与STC10F08XE单片机接口电路的设计 (9)2.3.3.下位机与上位机串行通信电路设计 (10)2.3.4.LED显示电路设计 (10)2.3.5.数码管显示电路 (11)2.3.6.键盘电路设计 (11)3.系统软件设计 (12)3.1.上位机软件设计思路 (12)3.2.DS18B20测温系统设计方案 (13)3.3.下位机软件设计方案 (13)4.Proteus软件仿真 (14)5.课程设计体会 (15)参考文献: (15)附1 源程序代码 (16)附2 系统原理图 (29)1.概述1.1.课题背景以及课题研究的意义随着科学技术的发展,人们的生活水平越来越高,人们对计算机的要求也越来越高。

单片机课程设计报告模板

单片机课程设计报告模板

单片机课程设计报告模板单片机课程设计报告一、设计目的本次单片机课程设计旨在培养我们对单片机的基本认知和应用能力,通过对STC89C52单片机的学习和实践,提升我们的编程能力和创新思维,同时让我们深入了解单片机的工作原理和应用场景,为未来工作和学习打下坚实基础。

二、设计内容本次课程设计主要涵盖了单片机的基本原理、C语言编程以及电路设计。

我们以智能家居为例,设计了一个可以通过Wi-Fi连接到手机APP控制家电的智能开关系统。

1.单片机的选择我们选择STC89C52作为单片机的核心控制器,这是一款8位高性能单片机,拥有大容量闪存和SRAM存储器、多种定时器和计数器、16位定时器等重要功能,非常适合用于物联网控制和智能家居领域。

2.开发环境的搭建我们采用KEIL软件和PROTEUS电路仿真软件作为开发工具,为了让我们更加熟练地使用这两款软件,我们在课堂上进行了详细的讲解和实践操作,学习了单片机的汇编、C语言编程、调试和调试工具的使用。

3.电路设计为了实现智能家居的控制,我们需要搭建一个能够与单片机相互协作的电路。

我们选择了常见的继电器来控制家电设备的开和关。

具体的电路设计方案如下:①按键电路:在电路中加入按键触发模块,实现单片机中断、感应等功能。

②Wi-Fi WiFi模块:为了实现远程控制,我们使用了ESP8266模块和手机APP进行通讯。

③继电器模块:该模块内置独立的继电器驱动IC,设计电容保护电路和DIP开关控制当前继电器输出端口,保障免受电磁干扰和防止继电器共振。

4.软件设计本次课程设计的重点是编写单片机程序。

我们通过不断的实践和调试,成功编写了相应的程序,实现了以下功能:①通过Wi-Fi模块连接到手机APP,实现APP和单片机的通讯。

②实现对接ESP8266模块,并正确设置ESP8266模块的IP地址和端口号。

③通过单片机控制继电器模块,实现对家电的远程控制。

5.上位机程序设计上位机程序我们选择了Visual Studio C++作为开发工具,通过Socket编程实现了与单片机的通讯。

单片机课程设计报告

单片机课程设计报告

单片机课程设计报告单片机课程设计报告一、设计目的本次设计旨在通过对单片机的学习和实践,锻炼学生的综合能力和创新思维,提高学生对单片机工作原理的理解和应用能力。

二、设计内容本次设计以控制LED灯的闪烁为主题,在实现基本闪烁功能的基础上,加入了渐变效果和呼吸灯效果等功能。

三、设计过程1. 硬件设计:(1)准备材料:单片机主板、蓝色LED灯、电阻、杜邦线等;(2)连线:按照电路图将单片机与蓝色LED灯连接起来;(3)测试:使用万用表对电路进行测试,确保电路连接正常。

2. 软件设计:(1)编写主程序:在Keil C中编写主程序,设置LED灯闪烁的时间间隔;(2)编写闪烁函数:编写一个函数使LED灯在设定的时间间隔内闪烁;(3)编写渐变函数:利用PWM(脉冲宽度调制)技术,使LED灯的亮度逐渐增加或减小;(4)编写呼吸灯函数:利用PWM技术,使LED灯呼吸般变亮变暗;(5)调试程序:将程序下载到单片机主板上,通过调试工具进行调试,确保LED灯能按照设计要求正常闪烁、渐变和呼吸。

四、设计结果经过反复调试和修改,最终实现了LED灯的闪烁、渐变和呼吸灯等效果。

LED灯的闪烁时间可以通过修改程序中的参数进行调整,渐变和呼吸灯效果可以根据需求进行改动。

五、心得体会通过本次设计,我对单片机的原理和应用有了更深入的了解。

在实践中,我遇到了许多问题,比如电路连接错误、程序调试失败等,但通过钻研、查找资料和与同学、老师讨论,我逐渐解决了这些问题。

这个过程让我学会了不断尝试和学习,培养了我的耐心和解决问题的能力。

六、改进意见在进行本次设计时,由于时间和条件的限制,我只实现了LED灯的基本闪烁、渐变和呼吸灯效果,但这些功能在实际应用中已经比较常见。

如果有更多的时间和资源,我可以进一步完善程序,增加更多创新的功能,或是将LED灯与其他传感器结合,实现更复杂的控制。

总结:通过本次单片机课程设计,我不仅对单片机有了更深入的认识,也锻炼了实践能力和创新思维。

单片机课程设计报告

单片机课程设计报告

单片机课程设计报告本文主要是讨论单片机课程设计。

从实验内容、步骤以及设计思路来详细阐述单片机课程设计的重要性和实践意义。

一、实验内容单片机课程设计是电子信息类专业中不可或缺的一门课程。

它主要涉及到汇编语言、C语言编程和硬件电路设计等知识,通过这门课程的学习,学生们能够深入了解单片机的原理和应用,将软件和硬件的知识结合起来,完成单片机的功能设计。

具体实验内容一般包括单片机的基本原理、编程以及外部设备的应用等。

学生可以通过单片机实验板来实现各种功能,例如:LED灯跑马灯、数码管的显示、温度测量、语音播报等等。

这些实验内容不仅可以帮助学生理解单片机的运行原理,同时也可以提高学生的情境意识和实践能力。

二、实验步骤在进行单片机课程设计实验的时候,需要提前制定实验计划,包括实验步骤、程序设计以及测试等内容。

下面是一个简单的实验步骤示例:步骤一:在电脑上安装单片机开发软件(例如Keil、MPLAB 等),选择适合的芯片型号步骤二:编写程序代码,实现指定的功能,例如闪烁LED灯等步骤三:将程序烧录到单片机中,一般通过USB转串口的方式进行烧录步骤四:将单片机模块接入电路板上,进行实际运行测试步骤五:根据测试结果进行调试和修改,保证程序运行稳定步骤六:根据实验数据撰写课程设计报告,评估实验结果和学习效果三、设计思路在进行单片机课程设计的过程中,需要积极探索新的设计思路,发挥自己的想象力和创造力,充分利用已有的资源和知识。

设计思路主要包括以下几个方面:1、创新思维:在实验设计中,可以采用新的思路、新的方法来解决问题,充分发挥自己的想象力和创造力。

2、开放思维:打破固有的思维模式,与他人交流、思考、合作,获得更广阔的思路和设计方案。

3、整合思维:将已有的知识、技能、经验整合,形成新的设计思路和创意,将多个元素组合成更复杂的设计方案。

4、实践思维:在实验过程中,不断实践、优化和改进,获得更好的设计结果和实践经验。

综上所述,单片机课程设计是电子信息类专业中非常重要的一门课程。

单片机原理及应用课程设计报告

单片机原理及应用课程设计报告
培养实践能力和创新思维
课程设计为学生提供了一个实践平台,学生可以在实践中锻炼动手能力,培养解决实际问题的能力,同时通过创新思 维,设计出具有特色的单片机应用系统。
促进理论与实践相结合
单片机原理及应用课程设计将理论知识与实践操作相结合,使学生能够更好地理解单片机的实际应用场 景,加深对理论知识的理解。
时间安排
共计8周,每周5天, 每天8小时。
04
单片机应用实践
单片机外围电路设计
电源电路
为单片机提供稳定的电源,确 保单片机正常工作。
时钟电路
为单片机提供稳定的时钟信号 ,保证程序正常运行。
复位电路
在单片机出现异常时,能够实 现自动复位或手动复位。
输入输出接口
实现单片机与外部设备的通信 和控制。
单片机程序编写与调试
单片机的编程语言和开发环境
单片机的编程语言主要有汇编语言和C语言。汇编语言是一种低级语言,直接控制硬件操作,但编程 难度较大;C语言是一种高级语言,具有可读性强、易于编程和维护等优点。
单片机的开发环境是指用于编写、编译、调试和烧录程序的软件环境。常用的单片机开发环境有Keil 、IAR、SDCC等。这些开发环境都支持汇编语言和C语言编程,提供了丰富的库函数和调试工具,方 便开发者进行单片机应用开发。
• 解决方案
检查数码管的位选信号和段选信号是否正确连接。
对未来学习和实践的建议与展望
深入学习
进一步研究单片机的内部结构和工作原理,掌握 更多高级功能和应用。
实践应用
将所学知识应用到实际项目中,提高解决实际问 题的能力。
持续学习
关注单片机技术的最新发展动态,保持学习的持 续性。
THANKS
感谢观看

单片机课程设计报告

单片机课程设计报告

摘要单片机课程设计主要是让我们增进对c51单片机的感性认识,加深对理论方面的理解。

了解软硬件之间的有关知识,并掌握软硬件的设计过程、方法及实现,为以后的设计和实现应用系统打下良好基础。

本次课程设计主要完成跑马灯及闪烁灯的实验设计。

首先通过Protel 99 SE 或proteus ISIS 画好原理图,然后将绘制好的原理图在PCB 面板上制线,通过导入Keil C 的设计好的汇编语言程序,完成模拟和仿真,最后将所模拟的程序导入已做好的AT89C51芯片上完成功能演示整个过程。

最终根据要求完成所有步骤,实现了预期演示跑马灯、流水灯、闪烁灯任务。

关键词:单片机、软件、硬件、跑马灯、流水灯、闪烁灯、印制板图、程序、数码管 AbstractSCM curriculum design is mainly let us enhance perceptions of the C51microcontroller, to deepen theoretical understanding. Understanding of relevant knowledge between hardware and software, and master the design process ofhardware and software, and the method of realization, and lay a good foundation for the design and implementation of application system. The experimental design of this course design mainly completes the marquee and flashing lights. Through the first Protel 99 SE or Proteus ISIS drawing principle diagram, and then draw principle of good business line in the PCB panel design, through the introduction of Keil C good assembly language program to complete the simulation, finally Complete the whole process of AT89C51 chip demo program to import the simulation done. Finally according to the requirements to complete all the steps to achieve the desired presentation marquees, lights, flashing lights.Keyword:SCM, software, hardware, marquees, lights, flashing lights, printed circuit board diagram, program, digital tube—————————————————————————装订线————————————————————————————————引言本次课程设计通过对单片机的学习和认识,单片机最小系统是在以MCS-52单片机为基础上扩展,使其能更方便地运用于测试系统中,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被测试的技术指标,从而能够大大提高产品的质量和数量。

单片机课程设计报告

单片机课程设计报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机课程设计报告

单片机课程设计报告

单片机课程设计报告导言随着科技的不断进步和发展,单片机技术在各个领域中的应用日益广泛。

作为电子工程的重要组成部分,单片机课程的设计也具有重要意义。

本报告将分享我在单片机课程设计中的学习和实践经验,并对所设计的项目进行详细分析和讨论,以期对相关领域的学习者提供参考和启发。

一、课程设计背景介绍单片机课程设计是电子工程相关专业学生的必修课程之一。

它旨在培养学生的实际应用能力、创新思维和问题解决能力。

在本次设计中,我选择了一个智能家居控制系统作为课程设计的主题。

通过设计和实现该系统,我将掌握单片机的硬件连接和软件编程,并在实践中进一步理解和应用相关知识。

二、系统设计1. 系统概述智能家居控制系统是一种可以通过手机或者其他设备进行远程控制的家居系统。

该系统可以实现对家中电器、照明、安防等设备的远程控制和自动化管理。

通过单片机控制芯片、无线通信模块和相应的传感器,可以实现对家居环境的监测和控制。

2. 硬件设计系统硬件设计主要包括单片机控制芯片的选择、传感器的选用和连接、通信模块的设置等。

在本设计中,我选择了一款常用的单片机控制芯片,并添加了温湿度传感器、光照传感器和人体红外传感器。

通过这些传感器,系统可以实时监测室内温度、湿度、光强度以及人体动静情况,并根据设置的规则进行相应的控制。

3. 软件设计系统软件设计主要包括单片机的编程、手机APP的开发和服务器的搭建等。

在本设计中,我使用C语言编写了单片机的程序,并通过串口通信与传感器和通信模块进行数据交互。

同时,我还使用Android开发平台进行了手机APP的开发,用户可以通过APP与家居控制系统进行交互和控制。

为了实现远程控制和数据传输,我搭建了一台服务器,并编写了相应的脚本和接口。

三、系统实现和测试1. 硬件连接和调试在硬件设计完成后,我进行了各个部件的连接和调试。

通过仔细查阅硬件连接图和相应的接口说明,我按照规定的步骤进行了连接,并通过测试仪器对各个部件的工作状态进行了检查和调试。

《单片机课程设计》

《单片机课程设计》

《单片机原理及应用课程设计》报告——秒表设计专业:电子信息工程班级:姓名:学号:11201062指导教师:2014年5 月26 日(要求:正文部分一律用小四号字,宋体,1.5倍行距。

一级大标题靠左,加粗。

二级大标题靠左,不加粗。

)课程设计的内容如下:1.课程设计目的1.1巩固和加深对单片机原理和接口技术知识的理解;1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;1.3学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。

2.课程设计要求用AT89C51设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。

3.硬件设计3.1 设计思想该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片8032(芯片的功能类似于芯片AT89C51,其管脚功能也和AT89C51的管脚功能类似)中的P3.2管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能;将P3.0做为数据信号DATA输入的入口地址;将P3.1做为时钟信号CLK输入的入口地址。

定时器T0作为每秒加一的定时器;定时器T1作为“快加”键的定时器。

其中“开始”按键当开关由1拨向0(由上向下拨)时开始计时;“清零”按键当开关由1拨向0(由上向下拨)时数码管清零,此时若再拨“开始”按键则又可重新开始计时。

3.2主要元器件介绍1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

2.累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。

(1) ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。

单片机课程设计报告

单片机课程设计报告

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

2. 学生能掌握单片机编程的基本语法,具备编写简单程序的能力。

3. 学生能了解单片机在各种实际应用中的功能,如智能家居、机器人等。

技能目标:1. 学生能够运用所学知识,独立完成单片机的硬件连接与调试。

2. 学生能够运用编程软件,编写简单的单片机程序并进行烧录。

3. 学生能够通过小组合作,完成一个具有实际应用价值的单片机项目。

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

2. 学生通过课程学习,提高问题解决能力和团队协作能力。

3. 学生能够认识到单片机技术在实际应用中的价值,增强社会责任感和创新意识。

课程性质:本课程为实践性较强的学科,要求学生结合理论知识,动手实践,培养实际操作能力。

学生特点:六年级学生具备一定的逻辑思维能力,对新事物充满好奇,但需加强团队协作和问题解决能力的培养。

教学要求:注重理论与实践相结合,关注学生的个体差异,提高学生的动手能力和创新能力。

通过课程学习,使学生在知识、技能和情感态度价值观方面均取得明显成果。

教学设计和评估将围绕具体学习成果展开,确保课程目标的实现。

二、教学内容1. 单片机基础理论:包括单片机的基本原理、内部结构、工作方式等,对应教材第一章内容。

- 单片机的发展历程与分类- 单片机的内部结构与功能- 单片机的工作原理与指令系统2. 单片机编程语言:学习单片机编程的基本语法和编程技巧,对应教材第二章内容。

- 汇编语言的编写与烧录- C语言的编写与烧录- 常用编程指令的应用3. 单片机硬件连接与调试:学习如何搭建单片机硬件系统并进行调试,对应教材第三章内容。

- 单片机最小系统搭建- 外围电路的设计与连接- 硬件调试方法与技巧4. 单片机应用案例:分析并实践单片机在各种实际应用中的功能,对应教材第四章内容。

- 智能家居系统设计- 机器人控制程序编写- 物联网应用案例分析5. 实践项目:结合所学知识,完成一个具有实际应用价值的单片机项目,为期4周。

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

襄樊学院单片机课程设计课题:单片机时钟设计设计人:郭凯严福发张陈方学号:08118079,08118089,08110038 班级:自动化0812班物理与电子信息工程学院2010-12-25目录第一部分设计任务书 (3)第二部分硬件结构概述 (4)第三部分软件结构概述 (5)1软件程序的组成2各程序的作用原理及处理方法分析---------------------------------- 53各程序程序流程图(1)主程序流程图(2)时钟显示子程序流程图------------------------------------- 6(3)秒钟显示子程序流程图------------------------------------ 7(4)查键程序流程图------------------------------------------ 8(5)时钟计数中断服务程序流程图(6)秒表计时中断服务程序流程图------------------------------- 10(7)延时程序------------------------------------------------- 12第四部分硬件电路 (13)(1)总电路(2)单片机12MHz晶振驱动电路和复位电路(3)矩阵键盘电路-------------------------------------------- 13(4)六位数码管显示电路(5)8255控制电路---------------------------------------------- 14 第五部分调试过程…………………………………………第六部分程序清单…………………………………………第七部分参考文献…………………………………………第一部分设计任务书1.题目基于MCS-51单片机的时钟设计。

2.基本设计要求(1)在ZY15MCU12BD型综合单片机实验箱的硬件结构上编写软件完成设计。

也可以在其它MCS—51单片机硬件板上完成,或自行设计硬件并制做完成。

(2)程序的首地址应使目标机可以直接运行,即从0000H开始。

在主程序的开始部分必须设置一个合适的栈底。

程序放置的地址须连续且靠前,不要在中间留下大量的空闲地址,以使目标机可以使用较少的硬件资源。

(3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。

开始计时时为000000,到235959后又变成000000。

(4)在键盘上选定3个键分别作为小时、分、秒的调校键。

每按一次键,对应的显示值便加1。

分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。

在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。

(5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法。

第二章硬件概述(1)硬件电路拓扑1.单片机12MHz晶振驱动电路2.单片机复位电路3.独立键盘电路4.六位数码管显示电路5.8255控制电路。

(2)各电路结构分析1. 单片机12MHz晶振驱动电路:晶振并联谐振电容,由晶振产生12MHz方波电平为单片机提供工作脉冲。

2.单片机复位电路:电阻与电容串联型微分复位电路,用于控制单片机与8255的复位3.独立键盘电路:7个按键一端共地,另一端分别接于P1口的P1.0-P1.6脚上,第7键用于时钟与秒表的切换,当总电路切换至时钟显示时,1,4键;2,5键;3,6键;分别用于时钟的秒,分,时的加减调校。

当电路切换至秒表计数时,1,2,3键分别控制秒表的启动,暂停与清零等功能。

4.六位数码管显示电路:6位数码管均产用共阳接法,各位分别通过与门与8255的A控连接,各段分别通过非门与8255的B口相连。

用于控制数码的段选,位选与显示相应数据等功能。

5.8255控制电路:本电路由一片锁存器74LS373与一片译码器74LS138组成。

74LS373的输入端接单片机P0口,输出低2位分别与8255的A1,A2引脚连接,用于分配8255的PA口,PB口,PC口以及方式控制口的低八位地址;74LS138的输入端A,B,C分别与单片机的P2.5,P2.6和P2.7连接,输出端Y2与8255的片选端连接,用于选中8255工作,即分配8255的PA口,PB口,PC口以及方式控制口的高八位地址。

第三章软件概述(1)软件程序的组成:主程序,时钟显示子程序,秒表显示子程序,查键子程序,时钟计数中断服务程序,秒表计时中断服务程序,各种延时子程序等。

(2)各程序的作用原理及处理方法分析:1.主程序:采用顺序程序与循环程序结构。

用于8255,定时器T0、T1的初始化;堆栈指针的设置;中断的设置;计数以及显示单元的清零等。

2.时钟显示子程序:采用循环程序结构,循环给8255的PA、PB口分别传送位选,段选用的数据,从而达到六位显示数据的效果。

3.秒表显示子程序:类同于时钟显示子程序,差别在于所用显示单元的地址不同。

4.查键子程序:采用分支程序结构,顺次查询8255C口第一、二、三前三位的状态,然后判断是否进入相应处理程序段。

本程序结合矩阵键盘共同控制时钟与秒表的切换,时钟的调校和秒表的启动,暂停与清零等功能。

5.时钟计数中断服务程序:采用分支程序结构,顺序查询秒,分,时是否满足跳转条件,从而判断是否进入相应处理程序。

用于秒,分,时的递进,显示数据的处理变换和显示数据向显示单元的传送。

本程序结合时钟显示子程序共同实现的时钟的显示效果。

6.秒表计时中断服务程序:采用分支程序结构,顺序查询十毫秒,百毫秒,秒和分等位是否满足跳转条件,从而判断是否进入相应处理程序。

用于十毫秒,百毫秒,秒和分等的递进,显示数据的处理变换和显示数据向显示单元的传送。

本程序结合秒钟显示子程序共同实现的秒钟的显示效果。

7.各种延时子程序:均采用多重循环结构。

分别用于等待8255复位,调节显示,以及8255的A口开关。

(3)各程序程序流程图:1.主程序流程图:2.时钟显示TIMER0子程序流程图:3.秒钟显示TIMER1子程序流程图4. 查键程序5. 时钟计数中断服务程序6.秒表计时中断服务程序7.延时程序第四章硬件电路图(1)总电路(2)单片机12MHz晶振驱动电路和复位电路(3).独立键盘电路4.六位数码管显示电路5.8255控制电路。

第五章调试过程(1)时钟显示程序的调试a)首先将T0中断服务程序,延时程序,时钟显示子程序和主程序单独建立于一个工程中,进行专门的调试。

期间所遇到的问题是:1、由于久未看书,对相关的知识点不熟悉,以为寄存器R1—R7皆是一样,因而在显示子程序中,由于先前模块已用完R0、R1,所以在显示模块中用R5作为间址寻址寄存器,结果显示出错,为全亮。

解决方案:将先前的R0用其他单元存储,以留于此处用2、程序编译后,单步调试时,当程序执行到000BH单元处时。

程序无条件跳转至T0中断服务程序。

经过检查发现是T0中断服务的起始地址的选择过小。

通过对程序的反复修改发现有两种方法可以解决这个问题:1)、通过改变主程序的起始地址,让主程序的起始地址跳过000BH单元,从而避开LJMP INTER-T0程序使得程序不再无条件跳转至T0中断服务程序。

2)、通过改变T0中断服务程序的起始地址。

不让其与主程序所用地址单元发生冲突,从而也可以避开上述程序代码。

(2) 查键程序的调试将T0中断服务程序,延时程序,时钟显示子程序和主程序单独建立于一个工程中,进行专门的调试。

软件程序与硬件电路相结合,通过主程序的死循环来等待按键按下。

将程序导入到硬件电路后,按下按键,给PC口的对应列位送低电平。

程序通过查询的方式的判断相应行哪位按键被按下,判断结果后就可以跳入相应的程序进行相应的处理。

调试过程中遇到以下问题:1.秒表显示与时钟显示不能自由切换。

2.按键后加到秒至59,分至59,时至23时,再按相应的按键时,不是让对应变到零而直接变为1。

对于第一个问题,我是通过很小组成员讨论之后,以及向其他同学请教后,通过设置标志位,以标志位的判断来调用不同的显示已达到不同的显示页面的切换。

对于第二个问题,经过仔细思考和小组讨论之后得到解决方法。

在中断服务子程序TIMER0中,尽管进行了清零,但是因为我是经时钟、分钟、秒钟计数单元先增后比较,将各计数单元值BCD转换后,偏移量放置相应单元,然后通过比较相应单元与23、59、59的比较后进行跳转以改变其他相应的量,相等则进行相应单元清零处理。

其实这样处理是错误的。

经商量,我们决定编写一个BCDZH函数进行相应小时、分钟、秒钟的转换,比较时,不等及跳转调用这个函数即可。

(3)总程序的调试。

将所有程序建立在一个工程中,进行调试。

调试过程中,可以成功显示时钟程序并顺利走时,也可以实现时钟向秒表的切换、以及秒表的启动,暂停,清零和秒表向时钟的切换等功能。

但是调试过程中也遇见相关问题,即先按下一个键后,如小时加1键,则小时不止加1,而是加了好几下。

很偶然,其实在前面调试过程中就应该出现这种问题的。

我知道这是因为没有进行消抖和弹起检测的原因。

通过改进后,时钟秒钟按键就可以顺利切换,而且按键也能比较顺利的实现相应的功能了。

第六章软件程序清单FLAG EQU 20H.0;显示切换标志设置SZ_SEC EQU 38H;时钟秒位SZ_MIN EQU 39H;时钟分位SZ_HOUR EQU 3AHMB_MS EQU 28H;秒表10ms位MB_SEC EQU 29H;秒表秒位MB_MIN EQU 2AH;秒表小时位/******************************/ORG 0000HSJMP STARTORG 000BHLJMP TIMER0ORG 001BHLJMP TIMER1/************主程序*********/ START: MOV 21H,#00HMOV 22H,#00H;秒位秒表偏移量单元初始化MOV 23H,#00HMOV 24H,#00H;秒位秒表偏移量单元初始化MOV 25H,#00HMOV 26H,#00H;10ms位秒表偏移量单元初始MOV MB_MS,#00H;秒表10ms计数单元位清零MOV MB_SEC,#00H;秒表秒位计数单元清零MOV MB_MIN,#00H;秒表分位计数单元清零MOV31H,#00H ;小时位偏移量清零MOV 32H,#00HMOV33H,#00H ;分钟位偏移量清零MOV 34H,#00HMOV35H,#00H ;秒钟位清零MOV 36H,#00HMOV SZ_SEC,#00H;时钟秒位计数单元清零MOV SZ_MIN,#00H;时钟分位计数单元清零MOV SZ_HOUR,#00H;时钟小时计数单元清零MOV TMOD,#11H;定义为定时器模式,切均处于工作方式1 16位SETB EA;开总中断SETB ET1;开定时器中断1SETB ET0;开定时器中断0MOV TH1,#0ECH;定时器1装初值,5msMOV TL1,#78HMOV TH0,#3CH;定时器0装初值,16位,50msMOV TL0,#0B0HSETB TR0;启动定时器0计时CLR TR1;清零TR1位MOV DPTR,#4003H;8255初始化MOV A,#81H;AB口方式0,C口低四位输入,高四位输出MOVX @DPTR,AMOV SP ,#50H;设置堆栈栈顶地址MOV R3,#00HMOV R7,#00HAAA: LCALL DISPLAYLCALL JZKEYSJMP AAA/******JZKEY扫描子程序*****/ JZKEY: MOV DPTR,#4002H;检测是否有键按下MOV A,#0FH;C口高位送1低位送0,以判断是否有键按下MOVX @DPTR,AMOVX A,@DPTR;取回C口值以判断是否有键按下ANL A,#0FH;屏蔽高四位CJNE A,#0FH,KEYSCAN;有键按下则进行键盘扫描LJMP DONEKEYSCAN: INC R7;R7作消抖LCALL DISPLAYCJNE R7,#10,KEYSCANMOV R7,#0;R7重送初值MOV A,#0FH;再检测是否有键按下MOV DPTR,#4002HMOVX @DPTR,AMOVX A,@DPTRANL A,#0FHCJNE A,#0FH,KEYS0;依然有键按下,则判断是那个键LJMP DONEKEYS0: MOV A,#0EFH;给C口送初值以判断按键是否在第一列MOVX @DPTR,AMOVX A,@DPTR;取回C口的值DYL1W: JB ACC.0,DYL2W;判断按键是否在第一列第一位(显示页面切换键)CPL FLAG;取反FLAGDYL2W: JB ACC.1,DYL3W;判断按键是否在第一列第二位(定义为停止计数键)CPL TR1LJMP NEXT1DYL3W: JB ACC.2,DRL1W;判断按键是否在第一列第三位(定义位复位清零键)MOV 21H,#00H;秒表偏移量单元清零MOV 22H,#00HMOV 23H,#00HMOV 24H,#00HMOV 25H,#00HMOV 26H,#00HMOV MB_MS,#00H;秒表相应计数单元清零MOV MB_SEC,#00HMOV MB_MIN,#00HSJMP NEXT1DRL1W: MOV A,#0DFH;给C口送0DFH判断是否在第二列MOVX @DPTR,AMOVX A,@DPTRJB ACC.0,DRL2W;判断按键是否在第二列第一位(定义为秒加1键)INC SZ_SECMOV A,SZ_SECCJNE A,#60,NEXT1MOV SZ_SEC,#0;秒值到六十则进行清零LJMP NEXT1DRL2W: JB ACC.1,DRL3W;判断按键是否在第二列第二位(定义为分加1键)INC SZ_MINMOV A,SZ_MINCJNE A,#60,NEXT1MOV SZ_MIN,#0;分值到六十则进行清零LJMP NEXT1DRL3W: JB ACC.2,DSL1W;判断按键是否在第二列第三位(定义为小时加1键)INC SZ_HOURMOV A,SZ_HOURCJNE A,#24,NEXT1MOV SZ_HOUR,#0;小时值到24则进行清零LJMP NEXT1DSL1W: MOV A,#0BFH;判断按键是否在第三列MOVX @DPTR,AMOVX A,@DPTRJB ACC.0,DSL2W;判断按键是否在第三列第一位(定义为秒减1键)DEC SZ_SECMOV A,SZ_SECCJNE A,#0FFH,NEXT1MOV SZ_SEC,#59LJMP NEXT1DSL2W: JB ACC.1,DSL3W;判断按键是否在第三列第二位(定义为分钟减1键)DEC SZ_MINMOV A,SZ_MINCJNE A,#0FFH,NEXT1MOV SZ_MIN,#59LJMP NEXT1DSL3W: JB ACC.2,DONE;判断按键是否在第三列第三位(定义为小时减1键)DEC SZ_HOURMOV A,SZ_HOURCJNE A,#0FFH,NEXT1MOV SZ_HOUR,#23NEXT1: CALL DISPLAYMOV DPTR,#4002H;弹起检测MOVX A,@DPTRANL A,#0FHCJNE A,#0FH,NEXT1 DONE: RET/******显示调用子程序**********/DISPLAY: JNB FLAG,XSSZ;标志位为0则显示切换时钟显示,为1则秒表显示MOV R0,#26HMOV R2,#0FEHDISP0: MOV DPTR,#ZXTABMOV A, @R0MOVC A,@A+DPTRMOV DPTR,#4001HMOVX @DPTR,AMOV A,R2MOV DPTR,#4000HMOVX @DPTR,ACALL DELAYRL AMOV R2,AMOV A,#0FFHMOVX @DPTR,ADEC R0CJNE R0,#20H,DISP0SJMP DONE1XSSZ: MOV R0,#36HMOV R2,#0FEH DISP1: MOV DPTR,#ZXTAB;取字型码表首地址MOV A, @R0MOVC A,@A+DPTR;A装入指向要显示字型码的偏移量MOV DPTR,#4001HMOVX @DPTR,AMOV A,R2MOV DPTR,#4000HMOVX @DPTR,ALCALL DELAYRL A;移位显示下一位MOV R2,AMOV A,#0FFH;关闭位选,全灭MOVX @DPTR,ADEC R0 ;修改指针CJNE R0,#30H,DISP1 DONE1: RET/********TIMER0中断子程序*****/ TIMER0: PUSH ACC ;保护现场PUSH PSW ;MOV TH0,#3CH ;装初值MOV TL0,#0B0HINC R5;50ms计时单元加1CJNE R5,#20,BCDZHMOV R5,#0;加到20,即清零INC SZ_SECMOV A,SZ_SECCJNE A,#60,BCDZHMOV SZ_SEC,#0;加到60,即清零INC SZ_MINMOV A,SZ_MINCJNE A,#60,BCDZHMOV SZ_MIN,#0;加到60,即清零INC SZ_HOUR;小时+1MOV A,SZ_HOURCJNE A,#24,BCDZHMOV SZ_HOUR,#0;加到24,即清零BCDZH: MOV A,SZ_SEC;时钟BCD转换MOV B,#10DIV ABMOV 31H,BMOV 32H,AMOV A,SZ_MINMOV B,#10DIV ABMOV 33H,BMOV 34H,AMOV A,SZ_HOURMOV B,#10DIV ABMOV 35H,BMOV 36H,ANEXT4: POP PSW;恢复现场POP ACCRETI/********** TIMER1中断子程序****/ TIMER1: PUSH ACC;保护现场PUSH PSWMOV TH1,#0ECH;T1装初值MOV TL1,#78HINC R4;5ms计时单元加1CJNE R4,#2,NEXT2MOV R4,#00H;5ms计时单元清零INC MB_MS;10ms计数单元加1MOV A,MB_MSCJNE A,#100,MB_BCDZH ;是否到1S,没到即进行BCD转换MOV MB_MS,#00H;10ms计时单元即清零INC MB_SECMOV A,MB_SECCJNE A,#60,MB_BCDZHMOV MB_SEC,#00H;秒位计时单元清零INC MB_MINMOV A,MB_MINCJNE A,#60,MB_BCDZHMOV MB_MIN,#00H;秒表到60分后,分位清零MB_BCDZH: MOV A,MB_MS;秒表显示各位的BCD转换MOV B,#10DIV ABMOV 21H,BMOV 22H,AMOV A,MB_SECMOV B,#10DIV ABMOV 23H,BMOV 24H,AMOV A,MB_MINMOV B,#10DIV ABMOV 25H,BMOV 26H,ANEXT2: POP PSWPOP ACCRETIDELAY: MOV 27H,#0FFH;显示调用255次DJNZ 27H,$RETZXTAB: DB 0C0H,0F9H, 0A4H,0B0H,99H, 92H, 82H, 0F8HDB 80H, 90H, 88H, 83H, 0C6H,0A1H,86H, 8EHEND第七章参考文献(1)胡汉才单片机原理及其接口技术(第二版). 北京:清华大学出版社,2004.2 (2)徐安等单片机原理及应用. 北京:北京希望电子出版社,2003.2(3)丁元杰单片微机原理及应用(第二版). 北京:机械工业出版社,1999.10(4)李建忠单片机原理及应用. 西安:西安电子科技大学出版社,2002.2(5)徐惠民单片微型计算机原理、接口及应用(第二版). 北京:北京邮电大学出版社,2000.10(6)闫玉德 MCS-51单片机原理及应用(C语言版). 北京:机械工业出版社(7)何桥等单片机原理及应用. 北京:中国铁道出版社,2004.3(8)李群芳单片机原理、接口及应用—嵌入式系统技术基础. 北京:清华大学出版社,2005.3第八章总结1.时间安排本次课程设计历时一个多星期,周一至周四,主要是程序的编写工作,经过小组成员的集体讨论与交流。

相关文档
最新文档