单片机实验指导书(伟福) - 图文

更新时间:2023-11-26 13:15:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

前 言

《单片机原理及应用》是电子、自动化控制等相关专业的一门专业必修课,随着交通技术的不断发展,单片机在交通控制、信息等方面的应用也越来越广泛。由于单片机实践性强,理论与实际结合紧密,传统的教学方法不能较好的适应教学的需要。为提高教学效果,我们从最简单的实际问题出发,设计了一些由易到难,由纯软件到要求硬、软件结合,综合性较强的题目。每个题目的内容分为两个部分:基础部分:给出源程序,要求学生在阅读分析理解的基础上,画出程序流程图,完成题目内容(包括编辑源程序、编译仿真调试、实际运行通过);提高部分:在充分掌握第1部分内容的基础上,独立编程完成功能要求更高的课题程序。要求学生课外理解、编写提高部分的程序,上机调试通过。我们采用提出任务——学习相关知识——解决实际问题——总结提高这样一个教学过程,使学生在解决实际问题的过程中学习提高,培养较强的实践能力。这种从实践——理论——再回到实际的探索性的教学方法,能有效的提高学生的学习兴趣,符合人们的客观认知规律。

我们通过四章的内容来完成单片机实验课程:

第一章 介绍伟福硬件仿真器及其仿真软件,即程序开发环境 第二章 介绍实验开发板的功能、电路原理

第三章 程序设计 从基础程序设计到应用实例设计,其中包括12个实际课题

第一节 开发软件的使用 第二节 基础程序设计

一、算术运算题

1.加、减法基本运算程序

2.乘、除法基本程序

3.二-十进制调整基本程序 二、控制转移和子程序调用

第三节 应用实例设计

一、简单单片机应用实例设计 二、按钮控制发光二极管 三、定时器实现流水灯控制 四、MCS-51存储器系统设计 五、MCS-51 I/O接口设计与应用 六、串口通讯 七、参考课题

第四章 附录部分

附录一 PC与MCU串行通信的应用设计方法

附录二 KEIL C51 编译器简介

附录三 串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用

第一章 仿真器及仿真软件简介

第一节 伟福硬件仿真器简介

伟福仿真器采用主机+POD(仿真头)组合的形式构成,通过更换POD,可以对各种CPU进行仿真。对于不同的应用场合,用户可选择不同的CPU,而不需要更换主机,伟福仿真软件WINDOWS版本支持本公司多种仿真器。支持多类CPU仿真。仿真器则采用主机+POD组合,通过更换不同的POD,可对各种不同类型的单片机进行仿真。为用户提供了一种灵活的多CPU仿真系统。其主要特点表现在以下几个方面: 1.双平台

DOS版本和WINDOWS版本。其中WINDOWS版本功能强大。中、英文界面可任选,用户源程序的大小不再有任何限制,支持ASM,C,PLM语言混合编程,具有项目管理功能,为用户的资源共享,课题重组提供强有力的手段。支持点屏显示,用鼠标左键点一下源程序中的某一变量,即可显示该变量的数值。有丰富的窗口显示方式,多方位,动态地显示仿真的各种过程,使用极为便利。本操作系统一经推出,立即受到广大用户的喜爱。

2.双工作模式

⑴.软件模拟仿真(不要仿真器也能模拟仿真)。 ⑵.硬件仿真。

双CPU结构,100% 不占用户资源。全空间硬件断点,不受任何条件限制,支持地址、数据、外部信号、事件断点、支持实时断点计数、软件运行时间统计。

3.双集成环境

编辑、编译、下载、调试全部集中在一个环境下。 多种仿真器,多类CPU仿真全部集成在一个环境下。

可仿真51系列,196系列,PIC系列,飞利蒲公司的552.LPC764.DALLAS320,华邦438等51增强型CPU。为了跟上形势,现在很多工程师需要面对和掌握不同和项目管理器、编辑器、编译器。他们由不同的厂家开发,相互不兼容,使用不同的界面。学习使用都很吃力。伟福 WINDOWS调试软件为您提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编Make、Build和调试工具并提供一个与第三方编译器的接口。

第二节 仿真头介绍

1. PODH8X5X 仿真头

晶振选择跳线

选择仿真头晶振 选择用户板晶振

34芯电缆 20芯电缆

图1-1 PODH8X5X仿真头示意图

PODH8X5X 运用PHILIPS授权的HOOKS技术,用PHILIPS芯片作为仿真芯片,来仿真各类与MCS51兼容的MCU,仿真头的原有的P87C52可仿真通用的8X5X系列芯片,可将P87C52换成PHILIPS的P89C51Rx+或P89C51Rx2来仿真相应的MCU,也可以换成PHILIPS的P89C66x用于仿真PHILIPS的P89C66x系列MCU。因为P89C51RD2和P89C66X内部带有扩展RAM,可以借用P89C51RD2或P89C66x来仿真带扩展RAM的CPU, 例如Winbond的78E58B、78E516。

PODH8X5X可以从外部引入仿真电源,来仿真2.7V~5.5V用户电压,当用户需要仿真低电压时,将“电源选择跳线”接成“外部电源接入”方式即可。仿真头的低电压由用户板提供。注意:当用户想仿真低电压时,仿真头上的仿真CPU必须能工作于低电压状态。

2.仿真器外形示意图 仿真器外形如图1-3所示。

仿真器使用9针串行口,与PC机用两头为孔的串行电缆连接。对于一些只有USB口而没有串口的计算机,可以使用USB转串口电缆将USB转成串行口。

21 34 34芯电缆 仿真器 20芯电缆 40 1 图1-2 仿真器与PODH8X5X 仿真头连接图

图1-3 仿真器外形示意图

第三节 仿真软件的安装

1.将光盘放入光驱,光盘会自动运行,出现安装提示。 2.选择“安装WINDOWS”软件。

3.按照安装程序的提示,输入相应内容。 4.继续安装,直至结束。

第四节 快速入门

1.建立新程序

选择菜单[文件 | 新建文件]功能,出现一个文件名为NONAME1 的源程序窗口,在此窗口中输入以下程序。见图1-4。

ORG 0H MOV A,#0H MOV P1,#0H

Loop: INC P1

CALL Delay SJMP Loop

Delay:MOV R2,#3H

MOV R1,#0H MOV R2,#0H

DLP: DJNZ R0,DLP

DJNZ R1,DLP DJNZ R2,DLP RET END

图1-4

图1-5

输出程序后的窗口如图1-4,现在要做的是将此文件存盘。

2.保存程序

选择菜单[文件 | 保存文件]或[文件 | 另存为 ]功能给出 文件所要保存的位置,例如:C:\\WAVE6000\\SAMPLES 文件夹,再给出文件名MY1.ASM。保存文件。文件保存后,程序窗口上文件名变成了:C:\\WAVE6000\\SAMPLES\\MY1.ASM。

图1-6

3.建立新的项目

选择菜单[文件 | 新建项目]功能新建项目会自动分三步

图1-7

走。

A) 加入模块文件。如图1-5,在加入模块文件的对话框中选择刚才保存的文件MY1.ASM,按打开键。如果你是多

模块项目,可以同时选择多个文件再打开。

B) 加入包含文件。如图1-6,在加入包含文件对话框中,选择所要加入的包含文件(可多选)。如果没有包含文件,按

取消键。

C) 保存项目。如图1-7,在保存项目对话框中输入项目名称。MY1 无须加后缀。软件会自动将后缀设成“.PRJ”。按保

存键将项目存在与你的源程序相同的文件夹下。

项目保存好后,如果项目是打开的,可以看到项目中的“模块文件”已有一个模块“MY1.ASM”,如果项目窗口没有打开,可以选择菜单[窗口 | 项目窗口]功能来打开。可以通过仿真器设置快捷键或双击项目窗口第一行选择仿真器和要仿真的单片机。如图1-8所示。

4.设置项目 话框。见图1-9。

图1-8

选择菜单[设置 | 仿真器设置]功能或按“仿真器设置”快捷图标或双击项目窗口的第一行来打开“仿真器设置”对在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。在“语言”栏中,“编译器选择”根据本例的程序选择为“伟福汇编器”。如果你的程序是C 语言或INTEL格式的汇编语言,可根据你安装的Keil 编译器版本选择“Keil C (V4或更低)”还是“Keil C (V5或更高)”。按“好”键确定。当仿真器设置好后,可再次保存项目。

5.编译你的程序

图1-9

选择菜单[项目 | 编译]功能或按编译快捷图标或F9 键,编译你的项目。见图1-10。

在编译过程中,如果有错可以在信息窗口中显示出来,双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可调试程序了,首先我们来单步跟踪调试程序。

6.单步调试程序

图1-10

选择[执行 | 跟踪]功能或按跟踪快捷图标或按F7 键进行单步跟踪调试程序单步跟踪就一条指令一条指令地执行程序,若有子程序调用,也会跟踪到子程序中去。你可以观察程序每步执行的结果,“=>”所指的就是下次将要执行的程序指令。由于条件编译或高级语言优化的原因,不是所有的源程序都能产生机器指令。源程序窗口最左边的“o”代表此行为有效程序,此行产生了可以指行的机器指令。见图1-11。

图1-11

程序单步跟踪到“Delay”延时子程序中,在程序行的“R0”符号上单击就可以观察“R0”的值,观察一下“R0”的

值,可以看到“R0”在逐渐减少。因为当前指令要执行256次才到下一步,整个延时子程序要单步执行3x256x256次才能完成,单步执行太慢了。没关系,我们有“执行到光标处”的功能,将光标移到程序想要暂停的地方,本例中为延时子程序返回后的“SJMP Loop”行。选择菜单[执行 | 执行到光标处]功能或F4 键或弹出菜单的“执行到光标处”功能。程序全速执行到光标所在行。如果想下次不想单步调试“Delay”延时子程序里的内容,可以按F8 键单步执行就可以全速执行子程序调用,而不会一步一步地跟踪子程序。F8 F8F8F8F8F8F8......是不是太烦了?那就移动光标到暂停行再按F4,如果程序太长,每次这样移来移去,是不是也太累?那就设置断点吧。如图1-12。

图1-12 图1-13

图1-14

将光标移到源程序窗口的左边灰色区,光标变成“手指圈”,单击左键设置断点,也可以用弹出菜单的“设置/取消断

点”功能或用Ctrl+F8组合键设置断点。如果断点有效图标为“红圆绿勾”,无效断点的图标为“红圆黄叉”。 断点设置好后,就可以用全速执行的功能,全速执行程序,当程序执行到断点时,会暂停下来,这时你可以观察程序中各变量的值,及各端口的状态,判断程序是否正确。见图1-13,1-14。

本例是将P1 端口加一,然后延时,再重复,这样若P1就是一个二进制加法器,若P1口接发光二极管,就会闪亮。不过到此为止,我们都是用软件模拟方式来调试程序。如果想要用仿真器硬件仿真。就要连接上仿真器。

7.连接硬件仿真

按照说明书,将仿真器通过串行电缆连接计算机上,将仿真头接到仿真器,检查接线是否有误,确信没有接错后,接上电源,打开仿真器的电源开关。

图1-15

参见第4 步,设置项目,在“仿真器”和“通信设置”栏的下方有“使用伟福软件模拟器”的选择项。将其前面框内的勾去掉。在通信设置中选择正确的串行口。按“好”确认。

如果仿真器和仿真头设置正确,并且硬件连接没有错误,就会出现如图的“硬件仿真”的对话框,并显示仿真器、仿真头的型号及仿真器的序列号。表明仿真器初始化正确。如果仿真器初始化过程中有错,软件就会再次出现仿真器设置对话框,这时你应检查仿真器、仿真器的选择是否有错,硬件接线是否有错,检查纠正错误后,再次确认。直至显示如图1-16所示的硬件仿真确认对话框。

如图1-17所示。

图1-16

我们现在用硬件仿真方式来调试这个程序,因为程序是对P1端口加1操作,我们可以打开外设的端口来观察P1口。

图1-17

方法是选择主菜单[外设 | 端口]功能打开端口窗口。重新编译程序,全速执行程序,因为有断点,程序会暂停在断

点处。我们观察端口窗口的P1 口值,会发生变化。再次全速执行,观察P1 口的变化。同时也可以用电压表去测量仿真头的P1 管脚,可以看到P1 管脚也随之发生变化。点击端口窗口的P1口的白框来改变P1 口的值,再次运行程序,P1 从改变后的值加1。(P1 口的值也可以从SFR 窗口观察、修改)如果用户已经有写好的程序,可以从第3步“新建项目”开始,将你的程序加入项目,就能以项目方式仿真了。如果用户不想以项目方式仿真,则要先关闭项目,再打开你的程序,并且要正确设置仿真器、仿真头,然后再编译、调试程序。

第五节 在伟福中安装第三方编译器

在伟福中编译KEIL C51编的程序时,需要安装第三方编译器即KEIL C51的编译软件。方法如下: 先将C51编译软件安装在C目录下,然后,将“仿真器设置”按图1-18进行设置即可。

图1-18

第二章 单片机实验开发板简介

单片机实验开发板是专为单片机初学者设计的一种学习及开发板,可完成多个与实际结合的单片机学习与开发实例,帮助单片机初学者快速入门单片机技术。

第一节 功能模块介绍

单片机实验开发板由以下电路部分组成: 单片机最小系统电路,发光二极管显示电路,共阴极数码管显示电路,按键输入电路,7289输入输出扫描驱动电路,四路光电隔离电路,存储器扩展电路,A/D转换芯片电路,D/A转换电路,串行通讯接口电路,并行接口电路,门电路阵列。其功能框图如图2-1所示。

发光二极管显示电路 单片机最小系统电路 数码管显示电路 按键输入电路 存储器扩展电路 A/D电路 光电隔离电路D/A电路 门电路阵列 7289扫描驱动电路 串行通讯接口电路 并行接口电路部分 图2-1 单片机实验开发板功能框图

第二节 实验开发板的功能

一、实验开发板的特点

该实验开发板上设置了《单片机原理与应用》课程所涉及的所有硬件器件,利用它既可以进行最小系统、流水灯、基本输入输出、中断、定时、计数器等基础单片机课题的设计,也可进行ZLG7289接口芯片、实时时钟电路、与PC机进行串行通讯等流行的有一定综合性的单片机应用学习和开发设计。该实验板采用地址全开放方式,即所有芯片的片选及读、写线均需用户连接,地址由用户定义,接口芯片采用全开放方式,完全由用户用接插线来完成电路的组建。这种方式加强了对硬件知识的理解和掌握。

二、实验开发板可完成的部分实验 1.单灯闪烁实验

实验目的:通过该实验学习I/O口的基本知识,掌握P1口单个引脚作为输出口使用的方法,学习软件延时的编程方法。 2.流水灯实验

实验目的:通过该实验进一步学习I/O口的知识,掌握P1口作为输出口使用的方法,学习移位指令的用法。 3.按钮控制灯的实验

实验目的:通过该实验学习单片机引脚作为输入的使用方法,掌握51类单片机引脚“准”双向I/O口的特性。 4.定时器控制的流水灯实验

实验目的:学习定时/计数器的结构,掌握定时器的编程使用方法。

5.计数器程序

实验目的:学习51单片机计数器功能的应用,掌握计数方式编程的方法。 6.用中断方式实现定时器控制的流水灯实验

实验目的:学习中断的概念,了解使用中断编程的一般方法,掌握采用中断方式进行定时器编程的方法。 7.外中断实验

实验目的:学习外部中断的概念和编程方法。 8.串口通讯实验

实验目的:学习串行通讯的有关原理,51单片机串行口的结构、串行口编程的方法。 9.键盘实验

实验目的:学习键盘知识,了解键盘编程的方法,掌握一种编程方法。 10.LED接口实验

实验目的:学习LED显示接口技术,学习各种显示程序编制的方法。

利用实验板上提供的其他硬件资源,同学们可以根据需要开发出更多的其它题目,在此不一一列出。

第三节 电路原理

电路原理图如图2-2-1、图2-2-2所示。

MOV R0,#30H MOV R1,#40H MOV A,@R0 INC R0 ADD A,@R1 INC R1 DA A MOV 50H,A MOV A,@R0 INC R0 ADDC A,@R1 INC R1 DA A MOV 51H,A MOV A,@R0 ADDC A,@R1 DA A MOV 52H,A SJMP $ END

(2)编译运行程序。

(3)观察50H、51H、52H的内容

注:二-十进制调整程序主要用在BCD码表示的10进制数处理方面。

4.编写算术运算程序并上机课题

⑴.编写将2335H与454AH相加求和的程序。 ⑵.编写5536H减265AH求差的程序。 ⑶.编写6AH乘7CH的求积程序。 ⑷.编写F3H除以35H求商和余数的程序。

⑸.编写压缩BCD码986523加123652的程序,结果仍用BCD码表示。

⑹.在内部RAM 20H~22H单元存入3字节被加数(低字节在前),2AH~2CH单元存入3字节加数(低字节在前),求两

数之和,并将结果存入以20H为起始地址的4个连续单元中(低字节在前)。

⑺.将被乘数送入R3(高字节) 、R2(低字节)寄存器,乘数送入 R5(高字节) 、R4(低字节)寄存器,乘积存入

内部RAM 20H~23H中(高字节在前)。

二、控制转移和子程序调用题

让学生了解如何利用控制转移指令和子程序调用指令进行程序转移。掌握利用控制转移指令、子程序调用指令编制程序的方法。

1.判断转移控制和子程序调用

以下程序功能是:控制“1”在累加器A中以一定时间间隔移动,移动十次后停止。 (1)在WAVE6000中输入以下程序

ORG 1000H MOV SP,#60H MOV R2,#10 MOV A,#01H

LOOP: LCALL YANSH

RL A

DEC R2

CJNE R2,#00H,LOOP SJMP $

YANSH: PUSH 02H ;R2内容入栈 MOV R2,#2H YANSH1: MOV R3,#10H DJNZ R3,$

RET

END

(2)打开各观察窗口,全速运行程序。同时观察ACC中“1”的移动。体会子程序调用的过程,数据的入栈和出栈(堆

栈指针设为60H,而第一个数压在61H—PC低8位)。 注意:每次重新运行程序,必须使处理器复位。

(3)复位处理器,选择“单步”运行,观察程序每一步执行的情况。 (4)复位处理器,选择“跟踪”运行,观察程序每一步执行的情况。

注意:1、比较各种运行方式的区别,特别注意比较“单步“与”跟踪“运行的不同之处。

2、计算程序中延时的时间(设晶振为12MHz),并注意在仿真过程中全速运行时的时间,看是否一致,分析为什么?

2.编写程序并上机调试

在内部RAM 60H~69H单元中依次存放了10个任意无符号数,编程实现:将他们按递减次序排序,即最大数放在60H中,最小数放在69H单元中。

DJNZ R2,YANSH1

POP 02H ;R2内容出栈

第三节 应用实例设计

一、简单单片机应用实例设计

设计一个由51单片机控制的发光二极管闪烁电路,闪烁(亮灭)间隔为0.5S。 1.题目分析

思路分析:要求实现一个灯的闪烁,亮的时间为0.5S,灭的时间也为0.5S,可以采用51单片机的I/O口(此时用作输出)任一个来控制,通过指令改变周期性的重复改变此I/O的电平状态,此时的间隔时间可以通过执行延时指令(无意义的指令)来实现。 2.硬件电路设计

根据课题分析,可以将发光二极管接到I/O口(P1.0-P1.7)的任一个端口上,根据实验开发板的使用情况,采用直接驱动。单片机其它电路接成最小系统即可。 3.软件设计 (1)流程图

如图3-1所示为主程序流程图,延时0.5S功能由一个延时子程序来完成。 (2)资源分配

此程序主程序中不需使用其它资源,延时子程序中使用R0、R1来设置延时参数。 (3)编写源程序

ORG 1000H

MAIN:

CPL P1.3 ;对P1.3取反,以形成闪烁效果 LCALL DEL ;调用延时0.5S子程序 SJMP MAIN

图3-1

;延时0.5S子程序,延时时间(近似值)=12/11.0592*100*144*16*2=500ms ; 准确计算 =12/11.0592*(1+(1+(1+2*16)*144)*100+2)=516ms

DEL:

MOV R0,# 100

DL1: MOV R1,#144 DL2: MOV R2,#16

DJNZ R2,$ DJNZ R1,DL2 DJNZ R0,DL1

RET ;返回 END

4.硬件调试

在实验开发板上连接好电路,编译、运行程序,观察实际运行结果是否与设计要求一致。

二、按钮控制发光二极管

让学生掌握单片机I/O口输入、输出的编程方法,要求按下S1~S4中的任意一个键,则对应的发光二极管亮,松开则灭。 1.题目分析

思路分析: S1-S4可接到某一P口上,此时对应P口引脚作为输入端使用。改变开关的开合状态,可以改变对应I/O口的电平,然后将此电平状态去控制发光二极管的亮灭。 2.硬件电路如图3-2所示

图3-2

3.软件设计 (1)编写源程序

ORG 2000H

MAIN: MOV P3,#0FFH LOOP: MOV A,P3 MOV P1,A LJMP LOOP END (2)对源程序进行编译 4.硬件系统安装

按照电路图在实验开发板上连好电路,注意按扭开关的开、合。 5.观察实际运行结果

6.按要求编写下面的程序并上机调试,观察实际运行结果

按下S1键D1~D4亮,按下S2键D2~D5亮,按下S3键D3~D6亮,按下S4键D4~D7亮。按上述过程,编写源程序,

并运行观察结果,完成设计。

三、定时器实现流水灯控制

让学生掌握单片机内部资源定时器及中断的使用(用中断方式实现定时)。利用定时器控制发光二极管交替闪亮,每3秒钟交替闪亮一次。 1. 硬件电路

参考图3-2。 2.编写源程序

ORG 0000H LJMP MAIN ORG 000BH LJMP R_SHOW ORG 0030H

MAIN: MOV P1,#55H ;主程序 MOV B,#20 MOV TMOD,#01H MOV TL0,#00H MOV TH0,#4CH SETB EA SETB ET0 SETB TR0 SJMP $

R_SHOW: MOV TL0,#00H ;定时器中断服务程序 MOV TH0,#4CH DJNZ B,LOOP MOV B,#20 MOV A,P1 RL A MOV P1,A LOOP: RETI

END 3.编译源程序 4.软件仿真运行。 5.观察实际运行结果

6.按要求编写下面的程序并上机调试,观察实际运行结果

按下S1键,D1~D8实现两灯追逐(即先D1、D2亮0.5秒后D2、D3亮0.5秒以此类推),按下S2键D1~D8实现交替闪亮,每0.5秒钟交替闪亮一次。按上述过程,编写源程序(要求定时程序采用中断方式),并运行观察结果,完成设计。

四、MCS-51存储器系统设计

掌握存储器工作原理及特点。通过该实验让学生掌握单片机存储器系统的硬件设计,存储器在系统中的地址分配,地址总线、数据总线与控制总线的连接。

实验内容:1.在实验板上将一片6264RAM芯片设计成8K的外部数据存储器,地址为0000H—1FFFH。

2.设计一个全“0”检查程序,即先将外部数据存储器0000H—1FFFH单元全部置“0”,然后将此8K单元

的内容逐一读出,若全为“0”,则芯片测试通过;否则遇到第一个非“0”单元,则通过P1.0点亮LED8。

五、MCS-51 I/O接口设计与应用

通过该实验让学生掌握单片机I/O接口的功能与特点;熟悉8255的使用方法及其接口扩展设计的原理和方法。 1. 硬件电路

见图2-2所示。 2. 实验内容

⑴.扩展一片8255,地址自定

⑵.用8255的两个口分别作为LED显示器的段选择与位控制,连好硬件电路。 ⑶.将实验板上的按键K8挂在P1.0上

⑷.编程实现:①.每按一次K8键使“8”从显示器DS1~DS6依次循环显示。

②.利用定时器中断,每隔1秒使“5”从DS6~DS1依次循环显示。

六、 串口通讯

掌握单片机与PC及单片机之间串行通讯的编程方法。编程实现MCU与PC机的通信。在PC机上运行串口调试程序,通过RS232与MCU进行通信。完成以下内容。

● 编写MCU发送数据,PC接收,要求数据发送方的按键值(S1=1,S2=2,S3=3,S4=4),结果在串口调试程序中显示出来。

● 编写PC发送数据, MCU接收,结果在实验开发板LED上显示出来。 1. 硬件电路

见图2-2,用串行通讯电缆,连接PC串口与实验板上的串口J3。 2. 编写源程序

;功能:MCU双机通信,串口发送程序 ;

START:

ORG 0000H ORG 0030H

LJMP START

MOV SCON,#40H ;串口初始化,设置工作方式1

MOV PCON,#80H ;波特率加倍 MOV TMOD,#20H ;定时器1工作在方式2 MOV TH1,#0FDH ;设置波特率为9600 SETB TR1 ;防抖动程序段 MAIN:

ORL P3,#3CH ;将P3.2-P3.4设为高电平,初始化 影响

KEY:

LCALL DELAY ;延时10ms MOV A,P3 ANL A,#3CH MOV 40H,A

CJNE A,#3CH,KEY ;判断是否有键按下,是转向KEY MOV A,P3

ANL A,#3CH ;将P3.2-P3.4以外的端设为低电平,排除其它端子

SJMP MAIN

CJNE A,40H,MAIN ;判断延时前后值,相等为有按键,否则为抖动 ;下面为判断键位程序 K_S1:

JB P3.2,K_S2 ;判断P3.2的状态,为1转向K_S2,为0执行对应子程序 LCALL KEY_1

本文来源:https://www.bwwdw.com/article/aunt.html

Top