单片机课程设计 河北科技大学

合集下载

单片机课程设计877

单片机课程设计877

单片机课程设计877一、课程目标知识目标:1. 理解单片机的基本原理,掌握877型号单片机的结构、功能及编程方法;2. 学会使用相关软件(如Keil、Proteus等)进行单片机程序设计与仿真;3. 了解单片机在现实生活中的应用,能够分析并解决简单的实际问题。

技能目标:1. 能够运用C语言编写简单的单片机程序,实现基本的输入输出控制;2. 学会使用877单片机的内部资源,如定时器、中断系统等;3. 能够对单片机程序进行调试和优化,提高程序执行效率。

情感态度价值观目标:1. 培养学生对单片机技术的兴趣和爱好,激发学生学习主动性和创新能力;2. 培养学生良好的团队协作精神,提高沟通与表达能力;3. 增强学生的自信心,使其在单片机课程学习中体验到成功的喜悦。

分析课程性质、学生特点和教学要求,本课程旨在让学生通过理论学习与实践操作相结合的方式,掌握877型号单片机的相关知识。

课程目标具体、可衡量,便于学生和教师在教学过程中明确预期成果。

后续教学设计和评估将以此为基础,确保学生能够达到课程目标,提高单片机应用能力。

二、教学内容1. 单片机概述:介绍单片机的发展、分类及877型号单片机的特点;- 教材章节:第一章 单片机概述- 内容:单片机发展历程、分类、877型号单片机简介。

2. 877单片机硬件结构:详细讲解877单片机的内部结构、工作原理及外部接口;- 教材章节:第二章 877单片机硬件结构- 内容:内部结构、工作原理、I/O口、定时器、中断系统等。

3. 单片机编程语言:C语言基础,重点讲解单片机编程中常用的C语言语法;- 教材章节:第三章 单片机编程语言- 内容:C语言基础、数据类型、运算符、控制语句等。

4. 877单片机编程与仿真:介绍Keil、Proteus等软件的使用,进行程序设计与仿真;- 教材章节:第四章 877单片机编程与仿真- 内容:Keil、Proteus软件使用、程序设计、仿真与调试。

单片机技术课程设计

单片机技术课程设计

单片机技术课程设计介绍单片机技术是现代电子技术的重要组成部分,也是电子工程专业学生必须掌握的技能之一。

本课程通过理论授课和实践操作相结合的方式,让学生掌握单片机编程和应用,提升学生的电子技术实践能力。

课程设计目标本课程设计旨在通过实践操作,让学生了解单片机的基本原理和应用,掌握单片机编程技能,提高电子工程专业学生的实践操作能力和解决实际问题的能力。

课程设计方案实验1:单片机led灯亮灭本实验主要让学生了解单片机可以控制led灯的亮灭,通过操作开发板上的按键,让led灯的亮灭状态发生变化。

实验内容1.学习单片机接口板的基本组成和使用方法;2.学习单片机GPIO口的基本介绍和操作方法;3.学习如何连接led灯和按键到单片机开发板上;4.实现按下按键时,led灯亮灭状态发生变化。

实验要求1.熟练掌握单片机开发板的基本操作方法;2.熟悉单片机GPIO口的使用方法;3.能够实现按下按键时,led灯亮灭状态发生变化。

实验2:单片机数码管动态显示本实验主要让学生了解单片机可以控制数码管的动态显示效果,通过操作单片机的I/O口,让数码管上的数字按照一定规律动态显示。

实验内容1.学习单片机GPIO口的基本介绍和操作方法;2.学习7位共阴极数码管的显示原理;3.学习如何连接数码管到单片机开发板上;4.实现单片机控制数码管上数字的动态显示。

实验要求1.熟练掌握单片机GPIO口的使用方法;2.熟悉7位共阴极数码管的显示原理;3.能够实现单片机控制数码管上数字的动态显示。

实验3:单片机温度检测控制本实验主要让学生了解单片机可以通过AD口读取温度传感器的温度值,并根据温度值控制风扇的转动速度。

实验内容1.学习单片机AD口的基本介绍和操作方法;2.学习温度传感器的工作原理;3.学习如何连接温度传感器和风扇到单片机开发板上;4.通过单片机控制温度传感器读取温度值,根据温度值控制风扇的转动速度。

实验要求1.熟练掌握单片机AD口的使用方法;2.熟悉温度传感器的工作原理;3.能够实现单片机读取温度值并控制风扇的转动速度。

单片机课程设计报告

单片机课程设计报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机系统的设计课程设计

单片机系统的设计课程设计

单片机系统的设计课程设计一、课程目标知识目标:1. 让学生理解单片机系统的基本原理和组成,掌握其设计流程和方法。

2. 使学生掌握单片机编程的基础知识,能运用C语言或汇编语言进行简单程序编写。

3. 帮助学生了解单片机系统在实际应用中的功能与作用,如智能家居、机器人等。

技能目标:1. 培养学生具备独立设计单片机系统的能力,包括硬件电路设计和软件编程。

2. 提高学生运用单片机解决实际问题的能力,如数据采集、信号处理等。

3. 培养学生动手实践和团队协作的能力,能够完成课程项目的设计与实施。

情感态度价值观目标:1. 培养学生对单片机系统设计和开发产生兴趣,提高其学习积极性和主动性。

2. 培养学生具备创新精神和实践意识,敢于尝试新方法,解决实际问题。

3. 培养学生具备良好的团队合作精神和沟通能力,能够在团队中发挥积极作用。

课程性质:本课程为实践性较强的学科,要求学生在理解理论知识的基础上,动手实践,完成单片机系统的设计与实现。

学生特点:学生具备一定的电子技术基础和编程能力,对单片机系统有一定了解,但实践经验不足。

教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,培养其创新能力和实践能力。

通过课程学习,使学生能够达到上述课程目标,为后续专业课程学习和实际工程应用打下坚实基础。

二、教学内容1. 单片机系统概述:介绍单片机的基本概念、发展历程、应用领域及未来发展趋势。

- 教材章节:第一章 单片机概述2. 单片机硬件结构:讲解单片机的内部结构、工作原理、主要性能指标及硬件连接方式。

- 教材章节:第二章 单片机硬件结构3. 单片机编程语言:学习单片机编程所需的基础知识,包括C语言和汇编语言。

- 教材章节:第三章 单片机编程语言4. 单片机I/O口编程:介绍I/O口的基本操作方法,包括输入、输出、中断等。

- 教材章节:第四章 单片机I/O口编程5. 单片机系统设计流程与方法:讲解单片机系统设计的步骤、方法及注意事项。

单片机原理与接口技术课程设计指导说明书

单片机原理与接口技术课程设计指导说明书

河北科技大学单片机课程设计指导书一、硬件电路设计1、采集系统各个部件的选择及接口设计数据采集系统原理框图如图所示:1)、传感器的选择技术指标及测量精度要求: --------------- ;为满足指标及测量精度要求,我选择了------------传感器(注意:根据技术指标自己选择传感器)。

因为它的技术指标及测量精度为:-----------------。

2)、信号调理电路设计电压/电流转换电路是用来将微小的电流信号转变成适合其他芯片使用的电压信号,本设计采用的是将从传感器输出的小电流信号转换成模/数转换器能接受的0~5V的电压信号,它是一个同相放大器,将电流信号转换成电压信号,输入到ADC0809进行A/D转换,将转换数据存入单片机的数据存储区,等待处理。

转换电压转换电路如图所示电压转换电路由节点方程可知510R V V R V R V V f N Nf N -+=- VV V ff Nf f R R R R R R 55101-⎪⎪⎭⎫ ⎝⎛++=若取R=200Ω,R1=18K Ω,R5=43K Ω,Rf=7.14K Ω,调整Rw 使Vf=7.53V 。

则有V0=(4~20mA)*200Ω*(1+4314.71814.7+)-7.53*4314.7=0~5V3)、A/D 转换器的选择及与51单片机的接口设计 AD0809的技术指标:(1)分辨率 8位; (2)总的不可调误差 ±1/2LSB ; (3)第一电源 5V ;(4)温度范围 -40℃~+85℃; (5)低功耗 15mV-W ; (6)变换时间 100μS ;4(7)按比例操作,或参考电压接直流5V,或接可调的模拟电压。

总之,AD0809具有较高的变换速度,较高的精度,较小的温度影响,较好的长期精度和重复度以及较低的功耗,具有八路模拟通道,为此选用了AD0809。

AD0809与51单片机接口电路如图所示:注意:这部分设计参考书中的214-216页2、系统硬件电路原理图注意:把前面的各部分图对应连接起来,再把51单片机的时钟电路和复位电路对应连接起来就可以了。

单片机课设(完整版)

单片机课设(完整版)

摘要近几年,单片机在各个领域得到广泛的应用。

从工业到人们的日常生活,大部分的科技产品都是通过单片机来控制。

在它问世之前,自动控制设备得不到广泛的应用,这是因为控制设备的体积庞大,耗电量大,价格昂贵。

在第一台微处理器成功研制不久,第一个单片机就问世了。

因为其小巧的体积,低功耗,以及高效的性能,单片机受到了大家的欢迎。

本设计利用Atmel公司的AT89C52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用C语言进行软件编程,并用Proteus软件进行演示、验证。

主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C52芯片为核心,辅以必要的电路,构成了一个单片机的数字电子时钟。

它的计时周期为24小时,显满刻度为“23时59秒”,且配有4个独立按键,可以灵活地调节时间和日期,并具有一定的扩展性。

关键词:单片机;数字电子钟;数码管驱动显示电路。

目录1简介 (1)1.1基于单片机的数字钟介绍 (1)1.2本系统的特点和功能介绍 (2)2 硬件设计 (3)2.1总体设计方案 (3)2.1.1 AT89C51的介绍 (3)2.2硬架结构设计 (5)2.2.1 51单片机的最小系统 (5)2.2.2显示部分设计 (5)2.2.3电源部分设计 (7)2.2.4报时部分的设计 (8)2.2.5键盘部分的设计 (8)2.2.6总体硬件电路图 (9)2.6.7 proteus仿真 (9)3软件部分 (10)3.1部分设计思想的说明 (10)3.2 C语言、keil、proteus的介绍 (11)3.2.1 C语言 (11)3.2.2 keil (12)3.2.3 proteus (12)3.3参考程序 (13)总结 (24)参考文献 (24)1简介1.1基于单片机的数字钟介绍1.单片机的介绍:“单片机”就是将计算机的基本部件集成到一块芯片上,包括CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、并行口(Parallel Port)、串行口(Serial Port)、定时器/计数器(Timer/Counter)、中断系统(Interrupt System)、系统时钟及系统总线等。

单片机原理与技术课程设计

单片机原理与技术课程设计

单片机原理与技术课程设计一、课程概述本课程是针对计算机、电子等专业学生所设计的一门实践性课程。

通过学习单片机的原理、技术和应用,提高学生的动手实践能力和创新能力,培养学生的实际操作能力。

二、课程目标及要求1. 目标通过本课程学习使学生掌握以下技能:1.掌握单片机系统的基本知识;2.掌握单片机的编程方法;3.掌握常用的单片机外围器件的知识和应用;4.能够进行单片机的系统设计;5.能够进行单片机的组装和调试;6.能够针对特定问题进行单片机的应用开发。

2. 要求1.参加课程前需要掌握计算机基础知识和电子电路基础知识;2.在学习过程中需要认真完成课堂作业和课后练习;3.需要用做出成品来展示所学成果;4.需要理解单片机应用的意义和价值。

三、课程大纲1. 单片机基础知识•单片机的构成和原理•单片机的工作方式•单片机的编程和下载2. 单片机应用•常用单片机外围器件•多功能中断的应用•PWM的应用•电机驱动的应用3. 课程设计•课程设计要求•课程设计模板•课程设计评分标准四、课程评价1. 课程作业•课堂作业•课后练习2. 实验报告•实验的设计方法•实验结果和总结3. 课程设计•课程设计的完成情况•课程设计的创新性和实用性五、参考书目1.《起步班单片机教程》2.《单片机原理与应用》3.《单片机原理及应用》4.《单片机系统设计及应用》六、总结通过本课程的学习,学生能够掌握单片机的基础知识和应用技能,并能够进行实际的单片机系统设计和开发。

同时,本课程还能够提高学生的动手实践能力和创新能力,是一门非常实用的课程。

单片机课程设计

单片机课程设计

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

2. 使学生了解并熟练运用单片机的编程语言,如C语言或汇编语言。

3. 帮助学生掌握单片机外围电路的设计与搭建,使其能独立完成简单的电路系统。

技能目标:1. 培养学生运用单片机解决实际问题的能力,提高创新思维和动手实践能力。

2. 培养学生具备查阅资料、分析问题、设计方案、调试程序等综合技能。

情感态度价值观目标:1. 培养学生对单片机课程的兴趣,激发学习热情,形成自主学习、合作学习的良好习惯。

2. 培养学生具备团队协作精神,学会与他人分享、交流、合作,提高沟通能力。

3. 培养学生关注科技发展,了解单片机在现实生活中的应用,增强社会责任感和创新意识。

课程性质分析:本课程为单片机课程设计,旨在让学生在掌握理论知识的基础上,通过实际操作,提高解决实际问题的能力。

学生特点分析:学生已具备一定的电子技术基础和编程能力,对单片机有一定了解,但实践经验不足,需要通过本课程加强实践操作和综合运用。

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

2. 引导学生主动思考,发现问题,解决问题。

3. 创设实际情境,提高学生的学习兴趣和参与度。

4. 注重培养学生的团队协作能力和沟通能力。

二、教学内容1. 单片机原理及结构:介绍单片机的组成、工作原理,重点讲解CPU、存储器、输入输出接口等部分。

参考教材章节:第一章 单片机概述2. 单片机编程语言:学习C语言和汇编语言的基础知识,掌握编程技巧,能独立编写简单的单片机程序。

参考教材章节:第二章 单片机编程语言3. 单片机外围电路设计:讲解并实践常用外围电路的设计与搭建,如LED 灯、蜂鸣器、数码管等。

参考教材章节:第三章 单片机外围电路设计4. 单片机程序下载与调试:学习使用编程器、仿真器等工具,掌握程序下载、调试方法。

参考教材章节:第四章 单片机程序下载与调试5. 实践项目:设计并实现几个实际项目,如温度控制器、智能小车、智能家居系统等,锻炼学生解决实际问题的能力。

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

河北科技大学《单片机原理及接口技术》课程设计报告学生姓名:肖轶超学号:130707121专业班级:物联网工程131课程名称:单片机原理与接口技术学年学期:2 015 —2 0 16 学年第一学期指导教师:武卫东2 0 1 6 年1月目录一、设计题目: (3)二、设计目的: (3)三、设计原理及方案: (3)四、实现方法(包括实验电路测试、软件调试等) (7)五、实施结果: (12)六、设计体会: (12)一、设计题目:数字秒表计时器二、设计目的:通过单片机控制数码管模拟数字秒表的计时功能。

1.必做要求能够通过按键对秒表进行“开始”、“暂停”、“继续”、“停止”、“记录”等操作。

2.扩展要求(1)通过按键可翻查所记录的各分项值。

(2)其他功能三、设计原理及方案:现在方案中采用了三个中断,外部中断INT0,INT1和定时中断T0。

CPU在响应中断时,先处理高级中断,在处理低级中断,若有多个同级中断时,则按自然优先顺序处理。

例如当CPU正在处理一个中断申请时,有出现了另一个优先级比它高的中断请求,这是,CPU就暂停终止对当前优先级较低的中断源的服务,转去响应优先级比它高的中断请求,并为其服务。

待服务结束,再继续执行原来较低级的中断服务程序。

而当CPU为级别高的终端服务程序服务时,如果级别低的中断发出中断请求,此时CPU是不会响应的,所以为了避免开始和暂停两个按键中的一个出现没有响应的情况,在进行程序编辑时要注意对中断的使用,避免出现中断的嵌套。

,合理分配中断对本设计的实现是至关重要的。

另外由于数字式电子秒表的最小精度位1ms,属于高精度电子秒表。

定时器T0的定时周期也为1ms,为了使电子秒表暂停键按下后CPU能马上去响应中断程序,必须将暂停的外部中断级别高于定时计数器的中断级别。

避免出现CPU执行完定时溢出中断程序后再响应外部中断程序,影响计时精度。

8051的自然优先级顺序排列如下:中断源最高外部中断0定时/计数器0溢出中断外部中断1定时/计数器1溢出中断串行口中断最低3数字式秒表中的两个按键采用了中断实现功能。

开始采用外部中断INT0,暂停采用外部中断INT1。

另外程序中还用到了定时/计数器0溢出中断进行计时。

依据设计要求,暂停的外部中断INT1中断级别最高,计时的定时/计数器0溢出中断次之,开始的外部中断INT0级别最低。

(1)外部中断0服务程序:外部中断0服务程序结合外部P3.2停止键实现数字电子秒表的停止功能,具体流程图如图2.2。

当按下P3.2停止键按下向CPU发出外部中断请求,CPU转向外部中断0服务程序执行,停止定时器。

另外将当前显示的时间进行一次存储,存进中间寄存区。

最后中断返回。

图2.2 外部中断0服务程序流程图(2)外部中断1服务程序外部中断1服务程序结合外部P3.3停止键实现数字电子秒表的启动功能,具体流程图如图2.2。

当按下P3.3启动键按下向CPU发出外部中断请求,CPU转向外部中断1服务程序执行,启动定时器。

另外进行二次存储,将之前进行一次存储的数码管显示数据存入最终缓存区,避免下次计时暂停时一次存储将数据掩盖,从而起到保护数据的作用。

二次存储后就中断返回。

图2.3 外部中断1服务程序流程图(3)定时中断服务程序当定时/计数器T0器溢出后,向CPU发出中断请求信号。

CPU跳转到定时中断程序执行,具体流程如图2.4。

定时中断程序是一个进位程序,主要负责对1ms的加一。

1ms位没有满十就跳出中断程序,返回显示程序。

当1ms位满十后就对1ms位清零,向10ms位加一,同时检测10ms位是否满十,没有满十就跳出中断程序,返回显示程序。

如果满十就向100ms位加一,依次类推,最终达到99.99秒后归零,从零开始再次计时。

定时/计数器T0工作在方式0下,TH0和TL0组成一个13位的二进制数计数器。

单片机开机或复位时,它的值为00H,当T0启动后,从第一个输入脉冲开始计时,每来一个脉冲计数加一,即从0000000000000开始计数到1111111111111,再计数一个脉冲时TH0和TL0组成的13位计数器将会从13个1变成13个0,并产生溢出,溢出位将被送到TF0标志位,通过溢出标志产生溢出中断请求。

显然,T0定时器在方式0下引起一次中断所允许计数的最多脉冲个数为213 个。

但如果定时计数器如果每次都固定从0开始计数,到计满后,再向CPU发出溢出中断请求信号那是毫无意义的。

为了使定时计数器在规定的计数脉冲个数字之后(此时应小于213 个脉冲),向CPU发出溢出中断请求,可采取预先向TH0和TL0中放入一个初值X的方法,使计数器以X值为起始值开始计数,即X+1,X+2,……直至计数器计满,从1全变为0。

设需要计数的脉冲个数为Y,则有:X+Y=213在定时方式下:定时时间间隔位t=(213—X)*振荡周期*12现在本设计要求1ms实现一次中断,选择定时器T0工作在方式0。

所以需要根据以上条件计算出T0的初值。

5设T0的初值为X,则(213—X)*12/12*106 =1*10-3转换位十六进制数X=7192=1110000011000B即TH0=0E0H(取X的高8位)TL0=18H(取X的低5位)由于定时1ms只是一个理想化的时间,其中并没有考虑到中断后单片机执行语句所花的时间。

虽然执行语句所花的时间很短只有即微秒,但积少成多,数字秒表一秒中要溢出中断1000次,积累起来误差就能达到毫秒级,这对于精度到达毫秒级的数字电子秒表来说是很大的误差。

所以要在后期编程时还要将单片机读程序的时间考虑进去,在对定时器赋初值时将单片机需要执行的语句所花的时间加上,这样就能使数字电子秒表的误差达到最小。

否否否否四、实现方法(包括实验电路测试、软件调试等)51 MACRO ASSEMBLER MAIN 01/05/2016 10:17:09 PAGE 1MACRO ASSEMBLER A51 V8.02OBJECT MODULE PLACED IN main.OBJASSEMBLER INVOKED BY: D:\StudySoftware\Keil\C51\BIN\A51.EXE main.ASM SET(SMALL) DEBUG EP LOC OBJ LINE SOURCE0000 1 ORG 0000H0000 020100 2 LJMP MAIN000B 3 ORG 000BH000B 020175 4 LJMP IT0P50100 6 ORG 0100H0100 758160 7 MAIN: MOV SP,#60H0103 758CEC 8 MOV TH0,#0ECH0106 758A78 9 MOV TL0,#78H0109 758800 10 MOV 88H,#00H010C 758901 11 MOV TMOD,#01H010F D2A9 12 SETB ET00111 D2AF 13 SETB EA ;中断初始化0113 120162 14 LCALL FUNCINIT ;初始化事牍?0116 7C00 15 MOV R4,#00H ;存放记录的个?0118 753031 16 MOV 30H,#31H ;存放记录示?17011B 128120 18 LOOP: LCALL KBS ;主程序:不断扫描键盘和动态更新事牍?011E B41005 19 CJNE A,#10H,NEXT0121 1280E0 20 LCALL DISP0124 80F5 21 SJMP LOOP220126 128120 23 NEXT: LCALL KBS0129 B41002 24 CJNE A,#10H,LOOP17012C 80ED 25 SJMP LOOP26012E 128120 27 LOOP1: LCALL KBS0131 B40A04 28 KBA: CJNE A,#0AH,KBB ;按键A处理的是开始暂停0134 B28C 29 CPL TR00136 801D 30 SJMP WAIT0138 B40B0F 31 KBB: CJNE A,#0BH,KBC ;按键B处理的是记录示?013B A930 32 MOV R1,30H013D A78C 33 MOV @R1,TH0013F 0530 34 INC 30H0141 A930 35 MOV R1,30H0143 A78A 36 MOV @R1,TL00145 0530 37 INC 30H0147 0C 38 INC R40148 800B 39 SJMP WAIT014A B40CCE 40 KBC: CJNE A,#0CH,LOOP ;按键C处理的是重新开始014D C28C 41 CLR TR0014F 120162 42 LCALL FUNCINIT0152 753031 43 MOV 30H,#31H0155 1280E0 44 WAIT: LCALL DISP0158 128120 45 LCALL KBS015B B410F7 46 CJNE A,#10H,W AIT015E 80BB 47 SJMP LOOP0160 80FE 48 SJMP $490162 757000 50 FUNCINIT:MOV 70H,#00H0165 757100 51 MOV 71H,#00H0168 757200 52 MOV 72H,#00H016B 757300 53 MOV 73H,#00H016E 757400 54 MOV 74H,#00H0171 757500 55 MOV 75H,#00H0174 22 56 RETA51 MACRO ASSEMBLER MAIN 01/05/2016 10:17:09 PAGE 257580175 C0E0 59 IT0P: PUSH Acc ;中断程序0177 7870 60 MOV R0,#70H ;目的:?卸?0H~75H是否为9,若为9,则进位、清零0179 7E06 61 MOV R6,#06H ; R0为70H~75H ,R6 为循环次?017B DE02 62 LOOPI: DJNZ R6,NEXTI017D 8008 63 SJMP ENDI017F B60905 64 NEXTI: CJNE @R0,#09H,ENDI0182 7600 65 MOV @R0,#00H0184 08 66 INC R00185 80F4 67 SJMP LOOPI0187 758CEC 68 ENDI: MOV TH0,#0ECH ;使用的是方式1,板子上是6MHz的晶?瘢刈霸夭?0ms018A 758A81 69 MOV TL0,#81H018D 06 70 INC @R0018E D0E0 71 POP Acc0190 32 72 RETI737480E0 75 ORG 80E0H ;动态扫描子程序80E0 7975 76 DISP: MOV R1,#75H80E2 7A20 77 MOV R2,#20H80E4 EA 78 MOV A,R280E5 90E400 79 DISP1: MOV DPTR,#0E400H80E8 F0 80 MOVX @DPTR,A80E9 E7 81 MOV A,@R180EA 2411 82 ADD A,#11H80EC 83 83 MOVC A,@A+PC80ED 90E000 84 DISP2: MOV DPTR,#0E000H80F0 F0 85 MOVX @DPTR,A80F1 7B00 86 MOV R3,#00H80F3 DBFE 87 DJNZ R3,$80F5 E4 88 CLR A80F6 F0 89 MOVX @DPTR,A80F7 19 90 DEC R180F8 EA 91 MOV A,R280F9 13 92 RRC A80FA FA 93 MOV R2,A80FB 50E8 94 JNC DISP180FD 22 95 RET80FE 3F065B4F 96 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;8102 666D7D078106 7F6F7C39 97 DB 7FH,6FH,7CH,39H,5EH,79H,71H;810A 5E7971810D 00764073 98 DB 00H,76H,40H,73H,3EH,3DH,5CH,38H,50H;98111 3E3D5C388115 50991008120 101 ORG 8120H ;矩阵键盘扫描子程??8120 7ADF 102 KBS: MOV R2,#0DFH8122 7B06 103 MOV R3,#06H8124 90E400 104 KB1: MOV DPTR,#0E400H8127 EA 105 MOV A,R28128 F0 106 MOVX @DPTR,A8129 90E800 107 MOV DPTR,#0E800H812C E0 108 MOVX A,@DPTR812D F4 109 CPL A812E 541F 110 ANL A,#1FH8130 7006 111 JNZ KB28132 EA 112 MOV A,R28133 03 113 RR A8134 FA 114 MOV R2,AA51 MACRO ASSEMBLER MAIN 01/05/2016 10:17:09 PAGE 38135 DBED 115 DJNZ R3,KB18137 E4 116 CLR A8138 23 117 KB2: RL A8139 23 118 RL A813A 23 119 RL A813B 4B 120 ORL A,R3813C FA 121 MOV R2,A813D 90814D 122 MOV DPTR,#TAB8140 7B1C 123 MOV R3,#1CH8142 EB 124 KB3: MOV A,R38143 93 125 MOVC A,@A+DPTR8144 B50202 126 CJNE A,02H,KB48147 EB 127 MOV A,R38148 22 128 RET8149 DBF7 129 KB4: DJNZ R3,KB3814B EB 130 MOV A,R3814C 22 131 RET814D 81824222 132 TAB: DB 81H,82H,42H,22H,83H,43H,23H,84H;8151 834323848155 44241413 133 DB 44H,24H,14H,13H,12H,11H,21H,41H;8159 12112141815D 00854525 134 DB 00H,85H,45H,25H,15H,86H,46H,26H;8161 158646268165 160C0B0A 135 DB 16H,0CH,0BH,0AH,09H;8169 09136 ENDA51 MACRO ASSEMBLER MAIN 01/05/2016 10:17:09 PAGE 4SYMBOL TABLE LISTING------ ----- -------N A M E T Y P E V A L U E ATTRIBUTESACC. . . . . . . . D ADDR 00E0H ADISP . . . . . . . C ADDR 80E0H ADISP1. . . . . . . C ADDR 80E5H ADISP2. . . . . . . C ADDR 80EDH AEA . . . . . . . . B ADDR 00A8H.7 AENDI . . . . . . . C ADDR 0187H AET0. . . . . . . . B ADDR 00A8H.1 AFUNCINIT . . . . . C ADDR 0162H AIT0P . . . . . . . C ADDR 0175H AKB1. . . . . . . . C ADDR 8124H AKB2. . . . . . . . C ADDR 8138H AKB3. . . . . . . . C ADDR 8142H AKB4. . . . . . . . C ADDR 8149H AKBA. . . . . . . . C ADDR 0131H AKBB. . . . . . . . C ADDR 0138H AKBC. . . . . . . . C ADDR 014AH AKBS. . . . . . . . C ADDR 8120H ALOOP . . . . . . . C ADDR 011BH ALOOP1. . . . . . . C ADDR 012EH ALOOPI. . . . . . . C ADDR 017BH AMAIN . . . . . . . C ADDR 0100H ANEXT . . . . . . . C ADDR 0126H ANEXTI. . . . . . . C ADDR 017FH ASP . . . . . . . . D ADDR 0081H ATAB. . . . . . . . C ADDR 814DH ATH0. . . . . . . . D ADDR 008CH ATL0. . . . . . . . D ADDR 008AH ATMOD . . . . . . . D ADDR 0089H ATR0. . . . . . . . B ADDR 0088H.4 AWAIT . . . . . . . C ADDR 0155H A11REGISTER BANK(S) USED: 0ASSEMBL Y COMPLETE. 0 WARNING(S), 0 ERROR(S)五、实施结果:按下矩阵键盘的A键,开始计时。

相关文档
最新文档