单片机工程实践报告

合集下载

单片机走马灯实训报告

单片机走马灯实训报告

一、实训背景随着科技的发展,单片机技术已成为电子技术领域的重要组成部分。

为了提高学生的实践能力,本实训课程以单片机为核心,通过实现走马灯功能,使学生深入了解单片机的编程、调试和硬件接口等方面的知识。

二、实训目的1. 掌握单片机的编程方法,熟悉汇编语言和C语言在单片机编程中的应用。

2. 了解单片机的硬件结构,掌握常用接口电路的设计与调试。

3. 学会使用调试工具,对程序进行调试和优化。

4. 培养学生的团队合作精神,提高解决实际问题的能力。

三、实训内容1. 走马灯原理走马灯是一种常见的电子玩具,通过单片机控制LED灯的闪烁,实现动态效果。

本实训以LED灯为显示元件,通过单片机控制LED灯的顺序点亮,实现走马灯效果。

2. 实训步骤(1)硬件准备1)单片机:选用51系列单片机,如AT89C51。

2)LED灯:选用8个LED灯,用于显示走马灯效果。

3)电阻:选用8个电阻,用于限流保护LED灯。

4)面包板:用于搭建电路。

(2)软件设计1)程序编写:使用汇编语言或C语言编写单片机程序,实现走马灯功能。

2)程序调试:使用仿真软件对程序进行调试,确保程序正常运行。

(3)电路搭建1)根据程序需求,设计电路图,确定元件参数。

2)使用面包板搭建电路,连接单片机、LED灯和电阻等元件。

3)检查电路连接是否正确,确保电路正常工作。

(4)程序烧录1)使用编程器将程序烧录到单片机中。

2)检查程序是否烧录成功,确保单片机正常运行。

3. 走马灯程序设计以下为使用C语言编写的走马灯程序示例:```c#include <reg51.h>#define LED P1void delay(unsigned int ms){unsigned int i, j;for(i = 0; i < ms; i++)for(j = 0; j < 123; j++);}void main(){while(1){LED = 0x01; // 点亮第一个LED灯delay(500); // 延时500msLED = 0x02; // 点亮第二个LED灯delay(500); // 延时500ms// ...LED = 0x80; // 点亮最后一个LED灯delay(500); // 延时500msLED = 0x00; // 关闭所有LED灯delay(500); // 延时500ms}}```四、实训总结通过本次实训,我们掌握了单片机的编程、调试和硬件接口等方面的知识,实现了走马灯功能。

单片机实验报告蜂鸣器

单片机实验报告蜂鸣器

一、实验目的1. 熟悉51单片机的基本结构和工作原理。

2. 掌握51单片机的I/O口编程方法。

3. 学习蜂鸣器的驱动原理和应用。

4. 通过实验,提高动手实践能力和问题解决能力。

二、实验原理蜂鸣器是一种将电信号转换为声音信号的器件,常用于产生按键音、报警音等提示信号。

根据驱动方式,蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。

1. 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。

2. 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才能发声,调整提供振荡脉冲的频率,可发出不同频率的声音。

在本次实验中,我们使用的是无源蜂鸣器。

51单片机通过控制P1.5端口的电平,产生周期性的方波信号,驱动蜂鸣器发声。

三、实验器材1. 51单片机实验板2. 蜂鸣器3. 连接线4. 电路焊接工具5. 编程软件(如Keil)四、实验步骤1. 电路连接:- 将蜂鸣器的正极连接到51单片机的P1.5端口。

- 将蜂鸣器的负极接地。

2. 程序编写:- 使用Keil软件编写程序,实现以下功能:1. 初始化P1.5端口为输出模式。

2. 通过循环,不断改变P1.5端口的电平,产生方波信号。

3. 调整方波信号的频率,控制蜂鸣器的音调。

3. 程序下载:- 将程序下载到51单片机中。

4. 实验观察:- 启动程序后,观察蜂鸣器是否发声,以及音调是否与程序设置一致。

五、实验结果与分析1. 实验结果:- 成功驱动蜂鸣器发声,音调与程序设置一致。

2. 结果分析:- 通过实验,我们掌握了51单片机的I/O口编程方法,以及蜂鸣器的驱动原理。

- 在程序编写过程中,我们学习了方波信号的生成方法,以及如何调整方波信号的频率。

六、实验总结本次实验成功地实现了51单片机控制蜂鸣器发声的功能,达到了预期的实验目的。

通过本次实验,我们提高了以下能力:1. 对51单片机的基本结构和工作原理有了更深入的了解。

2. 掌握了51单片机的I/O口编程方法。

3. 学习了蜂鸣器的驱动原理和应用。

单片机点亮彩灯实训报告

单片机点亮彩灯实训报告

一、实训背景随着科技的不断发展,单片机技术在各个领域得到了广泛应用。

为了提高自己的实践能力,我参加了单片机点亮彩灯的实训项目。

通过本次实训,我深入了解了单片机的原理、编程方法以及在实际应用中的操作技巧。

二、实训目的1. 熟悉单片机的基本原理和组成;2. 掌握51单片机的编程方法;3. 熟悉LED彩灯的工作原理;4. 学会使用单片机控制LED彩灯的点亮和熄灭。

三、实训内容1. 单片机简介单片机是一种将计算机的基本功能部件全部集成在一块芯片上的微型计算机。

它具有体积小、功耗低、成本低、可靠性高等优点。

单片机主要由中央处理器(CPU)、存储器、输入输出接口等组成。

2. LED彩灯简介LED彩灯是一种发光二极管(LED)制成的彩色装饰灯。

它具有发光亮度高、寿命长、节能等优点。

LED彩灯可以通过改变电流的方向和大小来控制其颜色和亮度。

3. 实训步骤(1)搭建电路首先,我们需要搭建一个基于51单片机的LED彩灯电路。

电路主要包括单片机、LED彩灯、电阻、晶振、复位电路等。

(2)编写程序编写单片机程序,实现LED彩灯的点亮和熄灭。

程序主要包括以下部分:① 初始化:设置单片机的IO口、晶振频率等参数;② 主循环:通过改变IO口的状态来控制LED彩灯的点亮和熄灭;③ 延时函数:实现LED彩灯的闪烁效果。

(3)调试程序将编写好的程序烧录到单片机中,通过仿真软件进行调试。

观察LED彩灯的点亮和熄灭效果,确保程序正常运行。

4. 实训成果通过本次实训,我成功实现了基于51单片机的LED彩灯控制。

LED彩灯能够按照设定的程序进行点亮和熄灭,实现了预期的效果。

四、实训总结1. 学到了单片机的基本原理和组成,了解了51单片机的编程方法;2. 掌握了LED彩灯的工作原理,学会了如何使用单片机控制LED彩灯;3. 提高了动手实践能力,培养了团队协作精神;4. 了解了单片机在实际应用中的操作技巧,为今后的学习和工作打下了基础。

五、实训心得1. 要做好实训,首先要明确实训目的,掌握实训内容;2. 在实训过程中,要注重理论与实践相结合,多动手、多思考;3. 遇到问题要勇于请教,与同学、老师共同探讨,共同进步;4. 保持良好的学习态度,不断提高自己的综合素质。

单片机实习心得体会范文 (2)

单片机实习心得体会范文 (2)

单片机实习心得体会范文
在本次单片机实习中,我深刻体会到了单片机的强大功能和广泛应用。

通过实际操作和学习,我对单片机的工作原理、编程语言和常见的应用场景有了更深入的了解。

首先,在实习的过程中,我学习了单片机的基本原理和工作方式。

单片机是一种集成电路,内部包含了处理器、存储器和各种输入输出接口。

通过编程,我们可以控制这些接口,实现各种功能。

我学习了单片机的内部结构和寄存器的使用方法,掌握了如何编写简单的程序来控制单片机的各个功能模块。

其次,我深入学习了单片机的编程语言。

在实习中,我主要使用C语言来编写单片机的程序。

C语言作为一种通用的高级编程语言,非常适合用来编写单片机程序。

通过实际的编程练习,我学会了如何使用C语言来控制单片机的各个模块,如LED灯、数码管和按键等。

我了解了C语言在单片机编程中的特点和注意事项,掌握了如何使用C语言来实现各种单片机的功能。

最后,我还了解了单片机的广泛应用场景。

在实习中,我实际操控了一些常见的单片机应用,如传感器控制、电机控制和通信控制等。

这些实践让我更加深入地了解到了单片机在各个领域的应用,如智能家居、工业自动化和智能交通等。

单片机具有体积小、功耗低、成本低等优点,使其在嵌入式系统中得到了广泛应用。

通过本次单片机实习,我不仅学到了丰富的专业知识,还掌握了实际操作的技能。

我深刻体会到了单片机的强大功能和广泛应用,并且对单片机的工作原理、编程语言和常见的应用场景有了更深入的认识。

我相信这些知识和技能对我的未来学习和工作都有很大的帮助。

单片机实训报告交通灯

单片机实训报告交通灯

一、实训背景与目的随着城市化进程的加快,交通流量日益增大,传统的交通灯控制系统已经无法满足日益复杂的交通需求。

为了提高交通效率,减少交通拥堵,本实训项目旨在设计并实现一套基于单片机的智能交通灯控制系统。

通过本实训,学生可以深入了解单片机原理,掌握单片机编程与调试技巧,同时锻炼动手实践能力和团队协作精神。

二、系统设计1. 系统组成本系统主要由以下模块组成:单片机模块:采用AT89C52单片机作为核心控制单元,负责接收传感器信号、处理数据、控制交通灯状态等。

传感器模块:包括红外传感器、地磁传感器等,用于检测车辆和行人,实时获取交通信息。

执行模块:包括LED灯、继电器等,用于驱动交通灯和信号灯。

显示模块:采用LCD显示屏,用于显示交通灯状态、倒计时等信息。

电源模块:为系统提供稳定电源。

2. 工作原理系统工作原理如下:(1)单片机初始化,设置各模块参数。

(2)单片机通过传感器模块检测交通情况,如车辆和行人数量。

(3)单片机根据检测到的交通情况,控制交通灯和信号灯的亮灯状态。

(4)LCD显示屏显示交通灯状态和倒计时信息。

(5)当系统检测到紧急情况时,如行人过马路,系统自动切换到紧急模式,确保行人安全。

三、硬件设计1. 单片机模块选用AT89C52单片机作为核心控制单元,具有以下特点:内置8K字节闪存,可存储程序和数据。

内置8位定时器/计数器,可进行定时或计数操作。

内置串行通信接口,可进行数据通信。

2. 传感器模块红外传感器:用于检测车辆和行人,实现自动控制。

地磁传感器:用于检测车辆行驶方向,实现左转和直行控制。

3. 执行模块LED灯:用于显示交通灯状态。

继电器:用于驱动信号灯。

4. 显示模块采用LCD显示屏,用于显示交通灯状态、倒计时等信息。

5. 电源模块采用DC 12V电源,为系统提供稳定电源。

四、软件设计1. 编程语言采用C语言进行编程,具有以下优点:语法简单,易于理解。

可移植性好,可在不同平台上运行。

单片机实训报告总结

单片机实训报告总结

单片机实训报告总结篇一:51单片机实训报告“51单片机”精简开发板的组装及调试实训报告为期一周的单片机实习已经结束了。

通过此次实训,让我们掌握了单片机基本原理的基础、单片机的编程知识以及初步掌握单片机应用系统开发实用技术,了解“51”单片机精简开发板的焊接方法。

同时培养我们理论与实践相结合的能力,提高分析问题和解决问题的能力,增强学生独立工作能力;培养了我们团结合作、共同探讨、共同前进的精神与严谨的科学作风。

此次实训主要有以下几个方面:一、实训目的1.了解“51”精简开发板的工作原理及其结构。

2.了解复杂电子产品生产制造的全过程。

3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践概念。

4.能运用51单片机进行简单的单片机应用系统的硬件设计。

5.掌握单片机应用系统的硬件、软件调试方法二、实验原理流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。

它的电气性能指标:输入电压:~6V,典型值为5V。

可用干电池组供电,也可用直流稳压电源供电。

如图所示:本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。

三、硬件组成1、晶振电路部分单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。

他是由一个晶振和两个瓷片电容组成的,x1和x2分别接单片机的x1和x2,晶振的瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。

2、复位端、复位电路给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,时如果手按着一直不放,系统将一直复位,不能正常。

单片机实习报告9篇

单片机实习报告9篇

《单片机实习报告》单片机实习报告(一):一、生产实习的目的和意义:生产实习是培养本科学生理论联系实际,提高实际动手操作潜力的重要教学环节。

本专业的生产实习旨在使学生广泛了解实际电子产品生产的全过程,熟悉电子产品的主要技术管理模式,并在实习的操作过程中学习掌握电子产品的焊接安装调试的实际操作技能。

巩固和加深理解所学的理论,开阔眼界,提高潜力,为培养高素质大学本科人才打下必要的基础。

透过学习,是理论与实际相结合,能够使学生加深对所学知识的理解,并为后续专业课的学习带给必要的感性知识,同时使学生直接了解本业的生产过程和生产资料,为将来走上工作岗位带给必要的实际生产知识。

二、实习的基本资料:集中授课,进行相关知识的学习。

学习掌握电子产品的独立性设计与安装调试的潜力;进一步掌握电子测量仪器的正确使用方法,电元器件的测量与筛选技术。

初步了解电子整机产品的工艺过程。

为能使学生得到充分的锻炼,较大的提高学生的实际动手潜力,本次生产实习安排每一位学生独立完成全部系统的设计与安装工作。

本实习环节,学生要独立使用电焊铁及各种电子测试设备电路安装与调试,要学生严格遵守电器设备的使用安全,遵守实验室的各项规章制度。

三、基本要求:在教师的指导下练习在测试电路德核心板上焊接元件,掌握焊接要领。

熟悉元器件的性能及管脚分配。

在给定的PCB板上焊接跳线,IC插座,电阻,电容,LED器件等。

检查焊接是否正确。

插上元器件,运行系统,并观测系统工作是否正常。

四、总体设计电路思想和原理:本次生产实习用到的开发板和模块共7块,分别为:单片机核心板,电子钟模块,MP3模块,RFID模块,无线传输模块,脉搏传感模块,GPS模块。

各模块相互组合,其所能实现的基本功能如下:单片机核心板+电子钟模块:实现时光的显示,温度的测量,且可透过遥控器调时定闹等。

单片机核心板+无线传输模块:实现数据的近距离无线传输。

单片机核心板+MP3模块(含SD卡):实现MP3播放功能。

单片机实训总结报告万年历

单片机实训总结报告万年历

一、引言随着科技的不断发展,单片机技术在各个领域得到了广泛的应用。

为了提高我们的实践能力和专业技能,我们选择了单片机实训作为课程的一部分。

在实训过程中,我们以万年历为例,通过学习单片机原理、编程和应用,实现了万年历的设计与制作。

本文将详细总结万年历实训的整个过程。

二、实训目标1. 掌握单片机的基本原理和编程方法;2. 熟悉万年历的设计与制作流程;3. 提高动手实践能力和团队合作精神;4. 培养创新思维和解决问题的能力。

三、实训内容1. 单片机原理及编程实训初期,我们学习了单片机的基本原理,包括CPU、存储器、输入输出接口等。

通过学习,我们了解了51单片机的结构、工作原理和指令系统。

在此基础上,我们学习了C语言编程,掌握了Keil软件的使用方法。

2. 万年历设计与制作万年历的设计与制作分为以下几个步骤:(1)需求分析:确定万年历的功能,包括显示年、月、日、星期、时分秒、农历、公历、节假日等。

(2)硬件设计:选择合适的单片机、显示屏、按键等硬件设备。

本实训选用AT89C51单片机、LCD1602显示屏和按键。

(3)软件设计:编写万年历的程序,实现功能需求。

程序主要包括以下几个模块:1)时钟模块:实现时分秒的计时功能;2)日期模块:实现年、月、日的显示和计算;3)星期模块:根据日期计算星期;4)农历模块:根据公历日期计算农历日期;5)节假日模块:显示节假日信息;6)按键模块:实现用户交互功能。

(4)调试与优化:对万年历程序进行调试,确保功能正常运行。

同时,对程序进行优化,提高运行效率。

3. 实训成果展示经过一段时间的努力,我们成功完成了万年历的设计与制作。

以下为万年历的部分功能展示:(1)显示当前日期、时间、星期和温度;(2)显示农历日期和节假日信息;(3)通过按键调整时间、日期和温度;(4)具有闹钟功能,可设置闹钟时间。

四、实训总结1. 提高了单片机编程能力:通过万年历的设计与制作,我们掌握了C语言编程方法,熟悉了Keil软件的使用。

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

(第六组)题目:AD7109性能检测 (任务四)组长:吴增杰(自10-3班)学号: 201021205059组员:黄逸洲(自10-3班)学号: 201021205057高怀正(自10-3班)学号: 201021205062指导教师:刘伟、裴岩、斯日古楞、吕少中韩海波、高鹏、王华超(研)、李金莹(研)设计时间:2013年7月1日~2013年7月12日一、设计目的:1、熟悉了解并掌握单片机的工作原理2、学习ICL7109芯片的工作原理,了解其工作特性。

3、掌握通过设计框图完成对应程序,学习应用系统软件的模块化设计方法二、设计任务:要求明确设计任务内容及任务分工等;1、掌握并完成蜂鸣器、键盘、LED显示器的自检程序的设计2、通过拨盘、ICL7109芯片、LED显示器程序的有机组合完成ICL7109芯片的检测3、先列出框图后,根据框图设计程序4、完成小组成员个人体会(不少于300字)5、任务分工:组长吴增杰:负责主程序和框图的构思和结合组员思想以及工作分配组员黄逸洲:负责程序思想的优化和编辑及配合组长工作组员高怀正:负责程序检查和提出问题及记录实验数据、结果和实训报告及配合组长工作三、框图:喇叭自检硬件框图:硬件环境:蜂鸣器、P2.3P2.3说明:执行指令CLR P2.3后,P2.3为“0”,晶体管导通,蜂鸣器BEP得电发声。

据此可以判断蜂鸣器电路是正确的。

注意:如果蜂鸣器未带振荡器,要想让蜂鸣器产生声音必须要让晶体管按照一定的频率不断地导通、截止交互变化,即P2.3不断地输出“0”、“1”,输出的频率不同时,声音也不同。

如果蜂鸣器带振荡器,则只需控制其通、断即可通过P2.3电平的高低控制蜂鸣器是否响。

当P2.3=0,喇叭响,当P2.3=1,喇叭不响。

BEEP: SETB P2.3 不响ACALL DELAY1 延时CLR P2.3 响ACALL DELAY1 延时SJMP BEEP七段LED 显示器自检硬件框图:硬件环境:单片机、74HC245L 、LED 、BEEP说明: LED 显示器由若干个发光二极管组成,它有共阴极和共阳极两种结构。

该图结构为共阳极,且是动态扫描显示(动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。

),COM 端为高电平时,显示器工作,反相驱动器的功能是使LED 稳定的亮。

P0口控制LED 显示什么字形的即字形口,P2.5、 P2.6 、P2.7、是选择字位的即哪位LED 亮,R 的作用是泄流。

P 0.7P 0.0 P0P2.7 P2.6 P2.5P0说明:P0口负责字型口,P2口负责字位口,实验中的数码管都是共阳极的。

键盘自检硬件框图:硬件环境:74HC245L 、LED、BEEPP1P2.7说明:从P1口读键盘的状态,通过P1口的高低电位判断按键,通过P2.5 P2.6P2.7选择字位,通过LED 显示状态。

K1,K2,K3,K4的开关值对应P1口的低4位,自检开关由高4位控制。

然而,此程序要求保护自检开关,检验K1,K2,K3,K4的正确性。

调用SEL8可以打开74HC245L的三态门。

然后将最终表现结果巧妙的利用LED或喇叭表现出来。

7109性能检测的硬件框图硬件环境:单片机、AD7109、74HC245L 、LED、BEEPP1说明:P2.0、P2.1、P2.2口是控制7109进行16位数据采集的,INT0是控制中断的以便完成AD的转换。

7109功能简介:ICL7109是一种高精度,低噪声,低漂移双斜率积分型12位A/D转换器。

另有一位符号位,一位溢出标志位,实际上具有14位A/D的精度。

ICL7109转换速度较低,但内藏基准电压源,且价格便宜,适用于低速度,高精度的测量场合。

1、主程序框图、子程序框图及相关说明主程序框图:主程序的一级框图子程序BEEPZJ:子程序LEDZJ:子程序KEYZJ:四、程序清单:1.蜂鸣器自检程序:MAIN: MOV DPTR,#TABMOV A,#00HMOV R7,#06HRUN: MOVC A,@A+DPTRMOV R1,#0FFHY1: CLR P2.3 ;蜂鸣器响ACALL DELAY1SETB P2.3 ;蜂鸣器停ACALL DELAY1DJNZ R1,Y1CLR AINC DPTRDJNZ R7,RUNSJMP MAINRETDELAY1: MOV R5,#09HD1: MOV R6,AD2: DJNZ R6,D2DJNZ R5,D1RETTAB: DB 89H,70H,54H,4EH,32H,1FH2.LED自检程序:START:MOV R1,#03H ;LOVE子程序循环次数LCALL BEEP;开始自检,蜂鸣器响 LCALL SEL1LCALL LEDLCALL SEL2LCALL LED1LCALL BEEPLCALL SEL3LCALL LED1LCALL BEEPLCALL SEL4LCALL LED1LCALL BEEPLCALL SEL5LCALL LED1 LCALL BEEPLCALL ALLLCALL BEEPLCALL LOVELCALL DATESEL1: CLR P2.7 ;位选1CLR P2.6CLR P2.5RETSEL2: SETB P2.7 ;位选2CLR P2.6CLR P2.5RETSEL3: CLR P2.7 ;位选3SETB P2.6CLR P2.5RETSEL4: SETB P2.7 ;位选4SETB P2.6CLR P2.5RETSEL5: CLR P2.7 ;位选5CLR P2.6SETB P2.5RETLED: MOV P0,#01H ;自检h段CALL DELAYMOV P0,#04H ;自检b段CALL DELAYMOV P0,#08H ;自检c段CALL DELAYMOV P0,#80H ;自检g段CALL DELAYMOV P0,#0CH ;显示1CALL DELAY MOV P0,#8CH ;显示-1 CALL BEEP CALL DELAY RET LED1: MOV DPTR,#ZIDUAN ;自检每个字段,并显示0-9 MOV R0,#12H LP: MOV A,#0 MOVC A,@A+DPTR MOV P0,A LCALL DELAY INC DPTR DJNZ R0,LP RET ZIDUAN:DB 01H,02H,04H,08H, 10H,20H,40H,80H,7EH,0CH, 0B6H,9EH,0CCH,0DAH,0FAH,0EH, 0FEH,0DEH BEEP: CLR P2.3 ;蜂鸣器响子程序 CALL DELAY SETB P2.3 RET DELAY: MOV R5,#02H ;延迟子程序 延迟时间:198.4ms LOP1: MOV R6,#0C8H LOP2: MOV R7,#0F8H LOP3: DJNZ R7,LOP3 DJNZ R6,LOP2 DJNZ R5,LOP1 RET W: MOV R6,#0FFH ;八段全亮码值子程序 MOV A,R6 MOV P0,A RET ALL: MOV R4,#0EEH ;所有LED 八段全亮子程序 R: MOV R3,#0FFH Q: LCALL SEL1 LCALL W LCALL SEL2 LCALL W LCALL SEL3 LCALL W LCALL SEL4 LCALL WLCALL SEL5LCALL W DJNZ R3,Q DJNZ R4,R RET LOVE: MOV DPTR,#TAB;查表显示LOVE 子程序 MOV A,#0 MOVC A,@A+DPTR MOV P0,A LCALL SEL2 LCALL DELAY INC DPTR CLR A MOVC A,@A+DPTR MOV P0,A LCALL SEL3 LCALL DELAY INC DPTRCLR A MOVC A,@A+DPTR MOV P0,A LCALL SEL4 LCALL DELAY INC DPTR CLR A MOVC A,@A+DPTR MOV P0,ALCALL SEL5LCALL DELAY LCALL BEEP DJNZ R1,LOVE RET TAB: DB 70H,7EH,7CH,0F2HDATE: LCALL SEL2 ;显示日期子程序 MOV P0,#7EHACALL T1SE3: LCALL SEL3MOV P0,#0FHACALL T1SE4: LCALL SEL4MOV P0,#7EHACALL T1SE5: LCALL SEL5MOV P0,#9EHACALL T1JMP DATET1: MOV R6,#10L1: MOV R7,#0D8HL2: DJNZ R7,L2DJNZ R6,L1RET3.键盘自检程序:MAIN: MOV P0,#0 ;灭显示LCALL SEL8 ;打开三态门MOV P1,#0FFH ;P1作为输入 MOV A,P1 ;采集键盘值LCALL DEL ;调用延时MOV P1,#0FFHMOV A,P1LCALL SEL7 ;关闭三态门 ANL A,#0FH; 屏蔽拨盘CJNE A,#0FH,K1 ;是否有键按下 AJMP MAINSEL8: SETB P2.7 ;打开三态门 SETB P2.6SETB P2.5RETSEL7: CLR P2.7 ;关闭三态门 SETB P2.6SETB P2.5RETK1: CJNE A,#0EH,K2;是否K1按下 LCALL LED1;调用显示日期第一位AJMP MAINK2: CJNE A,#0DH,K3;是否K2按下 LCALL LED2;调用显示数字2AJMP MAINK3: CJNE A,#0BH,K4;是否K3按下LCALL LED3;调用显示数字3AJMP MAINK4: CJNE A,#7H,MAIN;是否K4按下LCALL LED4;调用显示数字4LJMP MAINRETLED1 :MOV P0,#7EH;显示日期第一位0 LCALL SEL2 ;位选2LCALL DELLCALL BEEPRETLED2 :MOV P0,#0FH ;显示数字3LCALL SEL3 ;位选3LCALL DELLCALL BEEPRETLED3: MOV P0,#7EH ;显示数字2LCALL SEL4 ;位选4LCALL DELLCALL BEEPRETLED4:MOV P0,#0CCH ;显示数字1LCALL SEL5 ;位选5LCALL DELLCALL BEEPRETSEL5:CLR P2.7 ;位选5CLR P2.6SETB P2.5RETSEL4:SETB P2.7 ;位选4SETB P2.6CLR P2.5RETSEL3:CLR P2.7 ;位选3SETB P2.6CLR P2.5RETSEL2:SETB P2.7 ;位选2CLR P2.6CLR P2.5RETBEEP: CLR P2.3 ;蜂鸣器响 LCALL DELSETB P2.3LCALL DEL RETDEL: MOV R0,#0FFH ;延时子程序 D1: MOV R1,#0FFHD2: DJNZ R1,D2DJNZ R0,D1RET4.大程序7109性能测试的程序:ORG 00HAJMP MAINORG 03HAJMP INT0MAIN: LCALL SEL8 ;打开三态门MOV P1,#0FFH ;P1作为输入 MOV A,P1 ;采集键盘值LCALL SEL7 ;关闭三态门ANL A,#0F0H ;屏蔽键盘按下;AJMP MAINSW1: CJNE A,#0E0H,SW2 ;是否SW1按下 LCALL BEEPZJ ;调用蜂鸣器自检SW2: CJNE A,#0D0H,SW3 ;是否SW2按下 LCALL LEDZJ ;调用数码管自检SW3: CJNE A,#0B0H,S7109;是否SW3按下 LCALL KEYZJ ;调用键盘自检;AJMP MAINS7109: MOV SP,#60HMOV R7,0FFHAD_BUF EQU 0AHLED22 EQU 31HLED33 EQU 32HLED44 EQU 33HLED55 EQU 34HSETB EASETB EX0XWQ: LCALL STARTMOV R7,#0FFHMOV R0,#AD_BUFSETB EALCALL DELAY4JMP MAIN INT0: PUSH APUSH PSWCLR RS1SETB RS0CLR EAMOV R0,#AD_BUF AD1: CLR P2.0CLR P2.1MOV A,P1SETB P2.1MOV C,ACC.4JC AD3ANL A,#3FHMOV @R0,AINC R0CLR P2.2MOV A,P1SETB P2.2SETB P2.0MOV @R0,AAD3: MOV R0,#AD_BUF AD2: SETB EAPOP PSWPOP ARETISTART: MOV DPTR,#TAB3 MOV A,0AHANL A,#0FHMOVC A,@A+DPTR MOV LED22,AMOV P0,LED22 LCALL SEL2LCALL D5MSMOV A,0BHANL A,#0FHMOVC A,@A+DPTR MOV LED33,AMOV P0,LED33 LCALL SEL4 LCALL D5MS MOV A,0BH ANL A,#0F0H SWAP A MOVC A,@A+DPTR MOV LED44,A MOV P0,LED44 LCALL SEL3 LCALL D5MS DJNZ R7,START RET TAB3: DB 7EH,0CH,0B6H,9EH, 0CCH,0DAH,0FAH,0EH DB 0FEH,0DEH,0EEH,0F8H, 72H,0BCH,0F2H,0E2H ;调用7109性能测试 LJMP MAIN RET BEEPZJ: MOV DPTR,#TAB1 MOV A,#00H MOV R7,#06H RUN: MOVC A,@A+DPTR MOV R1,#0FFH Y1: CLR P2.3 ACALL DELAY1 SETB P2.3 ACALL DELAY1 DJNZ R1,Y1 CLR A INC DPTR DJNZ R7,RUN RET TAB1: DB 89H,70H,54H,4EH,32H,1FH LEDZJ: MOV R1,#03H ;LOVE 子程序循环次数 LCALL BEEP ;开始自检,蜂鸣器响 LCALL SEL1 LCALL LEDA LCALL SEL2 LCALL LEDB LCALL BEEP LCALL SEL3 LCALL LEDB LCALL BEEP LCALL SEL4 LCALL LEDB LCALL BEEP LCALL SEL5 LCALL LEDB LCALL BEEP LCALL ALL LCALL BEEP RETLEDA: MOV P0,#01H ;自检h 段CALL DELAY2MOV P0,#04H ;自检b 段CALL DELAY2 MOV P0,#08H ;自检c 段 CALL DELAY2 MOV P0,#80H ;自检g 段 CALL DELAY2 MOV P0,#0CH ;显示1 CALL DELAY2 MOV P0,#8CH ;显示-1 CALL BEEP CALL DELAY2 RET LEDB: MOV DPTR,#TAB2 ;自检每个字段,并显示0-9 MOV R0,#12H LP: MOV A,#0 MOVC A,@A+DPTR MOV P0,A LCALL DELAY2 INC DPTR DJNZ R0,LP RET TAB2:DB 01H,02H,04H,08H,10H, 20H,40H,80H,7EH,0CH, 0B6H,9EH,0CCH,0DAH, 0FAH,0EH,0FEH,0DEH W: MOV R6,#0FFH;八段全亮码值子程序 MOV A,R6MOV P0,ARETALL: MOV R4,#0EEH;所有LED八段全亮子程序R: MOV R3,#0FFHQ: LCALL SEL1LCALL WLCALL SEL2LCALL WLCALL SEL3LCALL WLCALL SEL4LCALL WLCALL SEL5LCALL WDJNZ R3,QDJNZ R4,RRETKEYZJ: MOV P0,#0 ;灭显示LCALL SEL8 ;打开三态门MOV P1,#0FFH;P1作为输入MOV A,P1 ;采集键盘值LCALL DELAY3 ;调用延时,去抖 MOV P1,#0FFHMOV A,P1LCALL SEL7 ;关闭三态门ANL A,#0FH ;屏蔽拨盘CJNE A,#0FH,K;是否有键按下 AJMP KEYZJRETK1: CJNE A,#0EH,K2;是否K1按下 LCALL LED1 ;调用显示数字1 K2: CJNE A,#0DH,K3;是否K2按下 LCALL LED2 ;调用显示数字2 K3: CJNE A,#0BH,K4;是否K3按下 LCALL LED3 ;调用显示数字3 K4: CJNE A,#7H,KEY;是否K4按下 LCALL LED4 ;调用显示数字4 LCALL DELAY1RET LED1 : MOV P0,#0CH;显示日期第一位0LCALL SEL2 ;位选2LCALL DELAY3LCALL BEEPRETLED2 : MOV P0,#0B6H ;显示数字3 LCALL SEL3 ;位选3LCALL DELAY3LCALL BEEPRETLED3: MOV P0,#9EH ;显示数字2 LCALL SEL4 ;位选4LCALL DELAY3LCALL BEEPRETLED4: MOV P0,#0CCH ;显示数字1 LCALL SEL5 ;位选5LCALL DELAY3LCALL BEEPRETSEL1: CLR P2.7 ;位选1CLR P2.6CLR P2.5RETSEL2: SETB P2.7 ;位选2CLR P2.6CLR P2.5RETSEL3: CLR P2.7 ;位选3SETB P2.6CLR P2.5RETSEL4: SETB P2.7 ;位选4SETB P2.6CLR P2.5RETSEL5: CLR P2.7 ;位选5CLR P2.6SETB P2.5RETSEL7: CLR P2.7 ;关闭三态门 SETB P2.6SETB P2.5RETSEL8: SETB P2.7 ;打开三态门 SETB P2.6SETB P2.5RETBEEP: CLR P2.3 ;蜂鸣器响LCALL DELAY1SETB P2.3LCALL DELAY1RETDELAY1: MOV R5,#09HD1: MOV R6,AD2: DJNZ R6,D2DJNZ R5,D1RETDELAY2: MOV R5,#02H;延迟子程序延迟时间:198.4ms LOP1: MOV R6,#0C8HLOP2: MOV R7,#0F8HLOP3: DJNZ R7,LOP3DJNZ R6,LOP2DJNZ R5,LOP1RETDELAY3: MOV R0,#0FFH;去抖延时D3: MOV R1,#0FFHD4: DJNZ R1,D4DJNZ R0,D3RET DELAY4: MOV R5,#0BHLOOP3: MOV R6,#0FFHLOOP4: MOV R7,#0FFHLOOP5: DJNZ R7,LOOP5DJNZ R6,LOOP4DJNZ R5,LOOP3RETD5MS: MOV R6,#0FHLOOP1: MOV R7,#0FFHLOOP2: DJNZ R7,LOOP2DJNZ R6,LOOP1RETSETB P2.2SETB P2.0MOV @R0,AAD3: MOV R0,#AD_BUFAD2: SETB EAPOP PSWPOP ARETISTART: MOV DPTR,#TAB3MOV A,0AHANL A,#0FHMOVC A,@A+DPTRMOV LED22,AMOV P0,LED22LCALL SEL2LCALL D5MSMOV A,0BHANL A,#0FHMOVC A,@A+DPTRMOV LED33,AMOV P0,LED33LCALL SEL4 LCALL D5MSMOV A,0BHANL A,#0F0HSWAP AMOVC A,@A+DPTRMOV LED44,AMOV P0,LED44LCALL SEL3LCALL D5MSDJNZ R7,STARTRETTAB3: DB 7EH,0CH,0B6H,9EH,0CCH,0DAH,0FAH,0EHDB 0FEH,0DEH,0EEH,0F8H,72H,0BCH,0F2H,0E2H ;调用7109性能测试LJMP MAINRETBEEPZJ: MOV DPTR,#TAB1 MOV A,#00HMOV R7,#06HRUN: MOVC A,@A+DPTRMOV R1,#0FFHY1: CLR P2.3ACALL DELAY1SETB P2.3ACALL DELAY1DJNZ R1,Y1CLR AINC DPTRDJNZ R7,RUNRETTAB1: DB 89H,70H,54H,4EH,32H,1FHLEDZJ: MOV R1,#03H ;LOVE子程序循环次数LCALL BEEP ;开始自检,蜂鸣器响LCALL SEL1LCALL LEDALCALL SEL2LCALL LEDBLCALL BEEPLCALL SEL3LCALL LEDBLCALL BEEPLCALL SEL4LCALL LEDBLCALL BEEPLCALL SEL5 LCALL LEDBLCALL BEEPLCALL ALLLCALL BEEPRETLEDA: MOV P0,#01H ;自检h段CALL DELAY2MOV P0,#04H ;自检b段CALL DELAY2MOV P0,#08H ;自检c段CALL DELAY2MOV P0,#80H ;自检g段CALL DELAY2MOV P0,#0CH ;显示1CALL DELAY2MOV P0,#8CH ;显示-1CALL BEEPCALL DELAY2RETLEDB: MOV DPTR,#TAB2 ;自检每个字段,并显示0-9MOV R0,#12HLP: MOV A,#0MOVC A,@A+DPTRMOV P0,ALCALL DELAY2INC DPTRDJNZ R0,LP RETTAB2: DB01H,02H,04H,08H,10H,20H,40H,80H,7EH,0CH,0B6H,9EH,0CCH,0DAH,0FAH,0EH,0FEH,0DEHW: MOV R6,#0FFH ;八段全亮码值子程序MOV A,R6MOV P0,ARETALL: MOV R4,#0EEH ;所有LED八段全亮子程序R: MOV R3,#0FFHQ: LCALL SEL1LCALL WLCALL SEL2LCALL WLCALL SEL3LCALL WLCALL SEL4LCALL WLCALL SEL5LCALL WDJNZ R3,QDJNZ R4,RRETKEYZJ:MOV P0,#0 ;灭显示LCALL SEL8 ;打开三态门MOV P1,#0FFH ;P1作为输入MOV A,P1 ;采集键盘值LCALL DELAY3;调用延时,去抖MOV P1,#0FFHMOV A,P1LCALL SEL7 ;关闭三态门ANL A,#0FH ;屏蔽拨盘CJNE A,#0FH,K1;是否有键按下AJMP KEYZJRETK1: CJNE A,#0EH,K2 ;是否K1按下 LCALL LED1 ;调用显示数字1 K2: CJNE A,#0DH,K3 ;是否K2按下LCALL LED2 ;调用显示数字2 K3: CJNE A,#0BH,K4;是否K3按下LCALL LED3 ;调用显示数字3K4: CJNE A,#7H,KEY;是否K4按下LCALL LED4 ;调用显示数字4LCALL DELAY1RETLED1 : MOV P0,#0CH;显示日期第一位0 LCALL SEL2 ;位选2LCALL DELAY3LCALL BEEPRETLED2 : MOV P0,#0B6H ;显示数字3 LCALL SEL3 ;位选3LCALL DELAY3LCALL BEEPRETLED3: MOV P0,#9EH ;显示数字2 LCALL SEL4 ;位选4LCALL DELAY3LCALL BEEPRETLED4: MOV P0,#0CCH ;显示数字1 LCALL SEL5 ;位选5LCALL DELAY3LCALL BEEPRETSEL1: CLR P2.7 ;位选1CLR P2.6CLR P2.5RETSEL2: SETB P2.7 ;位选2CLR P2.6CLR P2.5RETSEL3: CLR P2.7 ;位选3SETB P2.6CLR P2.5RETSEL4: SETB P2.7 ;位选4SETB P2.6CLR P2.5RETSEL5: CLR P2.7 ;位选5CLR P2.6SETB P2.5RETSEL7: CLR P2.7 ;关闭三态门 SETB P2.6SETB P2.5RETSEL8: SETB P2.7 ;打开三态门 SETB P2.6SETB P2.5RETBEEP: CLR P2.3 ;蜂鸣器响LCALL DELAY1SETB P2.3LCALL DELAY1RETDELAY1: MOV R5,#09HD1: MOV R6,AD2: DJNZ R6,D2DJNZ R5,D1RETDELAY2: MOV R5,#02H;延迟子程序延迟时间:198.4ms LOP1: MOV R6,#0C8HLOP2: MOV R7,#0F8HLOP3: DJNZ R7,LOP3DJNZ R6,LOP2 DJNZ R5,LOP1RETDELAY3: MOV R0,#0FFH;去抖延时D3: MOV R1,#0FFHD4: DJNZ R1,D4DJNZ R0,D3RETDELAY4: MOV R5,#0BHLOOP3: MOV R6,#0FFHLOOP4: MOV R7,#0FFHLOOP5: DJNZ R7,LOOP5DJNZ R6,LOOP4DJNZ R5,LOOP3RETD5MS: MOV R6,#0FHLOOP1: MOV R7,#0FFHLOOP2: DJNZ R7,LOOP2DJNZ R6,LOOP1RETAD7109线性度分析:采集数据表:EXCEL数据线新分析:AD7109的性能小组分析:通过使用小组编写AD7109性能检测的程序对AD7109的测试,我们得到了大量的数据,通过上述数据表格可以得到EXCEL所做的线性分析坐标。

相关文档
最新文档