mcs一51单片机接口及应用...

119
高等工程专科学校教材 MCS一51单片机 接 口及 应 用 实验和训练指导 董国增 郭淑平 宋汉珍 9 机械工业出版社

Upload: others

Post on 18-Jan-2021

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

高等工程专科学校教材

MCS一51单片机接口及应用

实验和训练指导

主 编 董国增

参 编 郭淑平

主 审 宋汉珍

9 机 械 工 业 出 版 社

Page 2: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

本实验及训练指导共包括五章:第一章为实验所使用的DICE开发系

统键盘操作使用说明;第二章为 DICE综合软件之 MAIN软件使用说明;

第三章为DICE综合软件之DBUG软件使用说明;第四章为单片机实验部

分,里面收录了14个实验提供给学生,帮助学生对理论内容进行掌握。

第五章实用系统举例,让学生通过对一些实际应用系统的分析,达到对单

片机应用系统的组成、开发、研制有更深刻地了解。最后,在附录中安排

了:A MASM51伪指令格式及编程风格;B MCS一51单片机的OBJ和HEX

代码文件格式及HEX代码文件转换为OB】代码文件的方法;C单片机实

验系统结构简介;D实验线路举例;E常用芯片的引脚号和信号名称。

MCS一51单片机接口及应用

实验和训练指导

董国增 主 编

责任编辑:王世刚 商红云 版式设计:霍水明

封面设计:姚 毅 责任校对:李汝庚

责任印制:路 琳

机械工业出版社出版(北京市百万庄大街22号)

邮政编码:100037

(北京市书刊出版业营业许可证出字第117号)

成 都新 华 印刷 厂 印 刷

新华书店北京发行所发行·新华书店经售

开本787mm x 1092mm1 /16·印张7.5·字数179千字

1999年10月第1版第l次印刷

印数 0001一5000 定价:11.50元

ISBN 7一111一07106一9 / TP- 1031(课)

凡购本书,如有缺页、倒页、脱页,由本社发行部调换

本社购书热线电话(010)68993821,63326677-2527

Page 3: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

目1 舀

单片机越来越多地应用在各个领域,如微机外设接口、智能仪器、智能仪表、家用电器

等都得到了应用。怎样把单片机加以应用,这涉及到单片机的接口连接问题。为了使学生能

够更好地掌握所学的理论知识,以及熟悉单片机的接口连接方法,必须多动手进行实验练

习。为了更好地进行实际操作练习,特编写此实验和训练指导。

本实验和训练指导对实验中所使用的设备、器材进行了较为详细地说明,并由浅人深的

安排了一些实验,使得学生通过实验来更好地掌握理论知识。

本实验和训练指导共包括五章:第一章为DICE仿真开发系统键盘操作使用说明;第二

章为DICE综合软件之MAIN软件使用说明;第三章为DICE综合软件之DBUG软件使用说

明;第四章为单片机实验,里面收录了14个实验,帮助学生对理论内容进行掌握;第五章

为实用系统举例,让学生通过对一些实际应用系统的分析,对单片机应用系统的组成、开

发、研制有更深刻地了解。最后,在附录中安排了:A MASM51伪指令格式及编程风格;B

MCS一51单片机的OBI代码与HEX代码文件格式及HEX代码转换为OBI代码的方法;C单

片机实验系统结构简介;D实验线路举例;E常用芯片的引脚号和信号名称。

本书的第一章、第四章、第五章由董国增同志编写,第二章、第三章由郭淑平同志编

写。董国增同志对全书进行了统稿。全书由宋汉珍同志进行了审阅。

由于编者水平和经验有限,其中难免有不足和错误之处,望读者提出批评和指正。

编 者

1999年3月

Page 4: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

目 录

前言 实验七 v。口扩展实验 ..................... 44

第一章 DICE仿真开发系统键盘操作 实验八 A/D转换实验,....................... 45

使用说明 ·······....···............⋯⋯1 实验九 D/A转换实验·....................... 46

第一节 面板结构及说明 ⋯.................. 1 实验十 8031与8155接口扩展............... 48

第二节键盘概况1···,·‘·,···...........⋯⋯2 实验十一8031与823接口扩展实验⋯⋯49 第三节键盘监控程序简介.·........⋯⋯3 实验十二8031与8279键盘显示接口

第二章 DICE综合软件之MAIN软件 扩展”·⋯.⋯.价⋯.价:...... 49 实验十三 IBM一PC机和MCS一51单片机

1T_用tip.明 ···········。··············⋯⋯ 7 通信买R····················⋯⋯ , 第一节 系统组成·............................. 7 实验十四MCS - 51单片机双机通信

第二节 DICE综合软件结构⋯‘’·‘一‘’‘”’7 实验⋯,.··..····..·······..···、⋯ 61

第三节MCS一51汇编使用说明““’‘”’‘”‘”8 第五章 实用系统举例·········一 ‘·’·”’‘63 第四节 MC5一51反汇编使用说明 ····一 10

第一节 交通灯控制系统·.................... 63 第五节 通信和调试 ·.......................... 10

第二节 频率计 ·................................ 69第三章 DICE综合软件之DBUG软件 第三节低温预处理装置·.................... 73

使用说明···········,·⋯⋯’“”””’“.‘了, 附录·.。·····。···························‘········⋯⋯100 第一节 DBUG组合软件⋯⋯’““””‘”“’15 附录A NIASM51伪指令格式及编程 第二节交叉汇编中使用的运算符及伪 风格,’.’,.-⋯⋯.,,.,价二,......... 100

指令的使用说明··⋯”“”‘”,”’‘”28 附录B MCS一51单片机的OBJ和HEX代 第三节 错误信息·............................ 30 码文件格式及HEX代码文件转换

第四章 单片机实验.............................. 31 为OBJ代码文件的方法 ·......... 103

实验一 熟悉DICE仿真系统的操作 二’... 31 附录C单片机实验系统结构简介·........ 106

实验二 MCS一51指令学习 ·⋯⋯’、·’‘’.“’34 附录D实验线路举例·....................... 109

实验三 v0口简单实验 ·····⋯⋯’·’·‘.‘’39 附录E常用芯片的引脚号和信号

实验四 中断.................................... 39 名称.................................... 112

实验五定时/计数器工作方式‘.............. 42 参考文献·...................................... 115 实验六 MCS一51单片机通信实验 ,··⋯⋯43

Page 5: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

第一章 DICE仿真开发系统键盘操作使用说明

第一节 面板结构及说明

一、面板结构

面板结构如图1-1所示。

Al (LEDO-LED3) f444' (LED4,5)} I 1 II I I ICZ] I I II I I ICZ7CZ2I I I I -}}I} t --i ---- I I II I IElCZ3 ---r-- ---3-- --1---1--- -- CZ6I I I } } }I I I I T II I I A 1 ICZ4 CZ5 图1-1 DICE一51/98一ED面板结构

二、显示器说明

DICE一51/98一ED有6位显示器,能提示开发机当前工作状态和显示十六进制数0一F,

其中左四位LEDO - LED3显示目标地址 (LEDO显示最高位),右二位LED4 - LED5显示目标

单元数据 (LED4显示高位)。

三、接插座说明

(1) CZ1:为通信接口,能连接IBM PC/XT/AT等具有RS232C接口的系统机,利用通信

享用主机硬件和软件资源。如图1-2所示。

(2) CZ2:为用户仿真插座,40线仿真插头分别插在该插座和用户系统的8031插座上,

便可以实施CPU仿真调试 (CZ2插头各 r- -1 r- , 厂一 门

针序号与803,的管脚相对应)。 地T4一寸一 !}司一+4.5V}一卞~+世 -一厂’一_ -一’- _--_l-- I I 一-一丰一 I 一-+下地T

(3) CZ3:为内/外时钟转换开关, ! }} 1 __ ! !}-。、二,、‘、,,,_,。, 1-1_一‘、,一,_,,_一’RXD收2-丹,wewe ! { 一曰丁地T ! 一十J拨向上方为外时钟,拨向下方为内时钟。岁‘一竺‘} }】 }}一’ ! I-- -一-一 ’一’‘一’一’一’一’一 ”一TXD发1.4‘一~ I ! -一尸 ! 一一十一+sV (4) CZ4:为通用打印机插座,打印 匕一习 L一一J L一一J

程序清单和屏幕上显示的各种信息。 cz] cz5 cz7 (5) CZ5:为停电保护电源入口,当 图1-2插头连线示意图

Page 6: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

2

用户需要保护源程序时,要加人这一电源 (3节5号电池)。如图1-2所示。

(6) CZ6:为51/98转换开关,拨向上方为98仿真机,拨向下方为51仿真机。

(7) CZ7:为四线电源插座,用户插该插头座时,务必注意插头座的方向。如图1-2所示。

第二节 键 盘 概 况

一、键盘示意图

{别/ �, T $EPRGH EXECDEL PRT FVBPJ P @ODRW PCDBGINS COMP EPRGL0 V X" H ZEPA10V STEPAPPLE MOVE NVBPL #U 1EPCHEPCOM DAR MONN y 二、键盘简介

DICE一51/98一ED有一个4x8的键盘,左边十六个数字键表示十六进制数0一F,用于

输人地址、数据或机器语言程序,当前工作寄存器及PC值、DPTR也用数字代号表示,其

名称在数字键上方。各键对应寄存器情况,详见表1-1所示。 表 1-1

一RO Rl R2 } R3 } R4 R5} I R6 R7 DPLIt-9 0 1 2 ---F3 T4 5 } 6 } 7 } 8一平V SP PCL PCHD E F 键盘上角、下角所标字符标记,分别是进人屏幕编辑,汇编时的上、下档键,用以输人

汇编语言程序,详见图1-3所示。

右边十六个为功能键,在LED状态输人操作命令,其功能如下:

TV/MEM 进人屏幕状态/存储器检查 (读/写)REG/OFST 片内RAM、寄存器、特殊功能寄存器检查/偏移量计算

ODRW/INS 外部数据存储器、外部RAM、输人输出口检查/插人一字节EPRGH/DEL EPROM高速写入/删除一字节 — —

F1/LAST 第一标志键/读上一字节 Q 一 TV状态上档— TF2/NEXT 第二标志键/读下一字节 SP— LED状态上档— REG__ _ _____ 、*,, 、,。,___二 。.‘、,_.__. D一 LED状态下档 一 OFSTSTEP/NVBP 单拍、单拍跟踪/非全速断点 - ---一”-

EXEC/FVBP 连续执行/全速实时断点 :_ 一 TV状态稍一几一二PCDBG/EPRGL与IBM PC/XT通信调试//2716, 2732固

化 (低速) 图1-3单键标识

Page 7: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

EPMOV 固化区内容移人目标RAM

EPCH/EPCOM EPROM查空/用户RAM区与固化区内容比较

PRT TV状态下打印命令

COMP 源程序与目标程序比较,IBM PC/XT通信 (单向)

MOVE 程序块或数据块移动

DAR TV状态下MCS一51反汇编

MON 退出当前操作,返回监控态— 闪动 ‘P. 11

RESET 系统复位按钮,它在硬件上与开发机系统复位线连在一起,无论何时按

仁RESET〕键,都使整个系统复位,返回初始状态— 闪动 “P. 11

第三节 键盘监控程序简介

监控程序固化在27512 EPROM中,地址空间为OOOOH一7FFFH,共32KB;用户程序/数

据存储器空间为OOOOH一FEFFH, FF00一FFFFH空间监控程序占用,用户不能使用。8032内部RAM 256字节全部给用户使用。

用户可以通过32个键向DICE一51/98一ED开发机发出各种操作命令,大多数键有两个

以上功能,本机无上下档转换键,开发机到底进行什么操作,不仅与按压什么键有关,而且

与当前所处的工作状态有关。“工作状态”在操作过程中,是一个重要的概念,下面作有关

介绍。

一、待命状态0

在本状态时,显示器的左端显示提示符— 一个闪动的 “P.”字符,表示开发机处于初

始化状态,等待你操作。

1.如何回到待命状态0

①在开发机接通电源自动复位时处于待命状态0;

②按压 〔RESET〕复位键后,使本机处于待命状态0;

③在大多数情况下,按 「MON]键,也可以使本机进人待命状态Oo

2.待命状态0可以进行的操作

①按压任一数字键,进人待命状态1,显示该键数字;

②按压 仁F1〕标志键,进人仿真2,即仿EPROM, PC值指向外部程序空间,显示闪动

的“H..⋯”;

③按压 〔F2]标志键,进人仿真1,即仿RAM, PC值指向内部用户程序空间,显示闪

动的“P....,";

④按压 厂COMP]键,进人与IBM PC/XT通信,显示器全暗;

⑤按压 「PCDBG]键,进人与IBM PC/XT通信、调试、反汇编,显示器全暗;

⑥按压 「EPCH]键,检查EPROM内容是否全是FFH;

⑦按压 〔EXEC]键,从OOOOH开始执行用户程序;

⑧按压 仁STEP3键,从《OOOH开始单拍执行用户程序;

⑨按压 〔TV]键,进入TV屏幕状态,显示器全暗。

Page 8: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

4

二、待命状态I

在本状态时,显示器显示一到四位数字,数字之间没有间隔。若显示四位数字,则第一

位会不断闪动。在待命状态0按压数字键,本机便进人待命状态1}

待命状态1时,可进行的操作有:

①按压 「MEM」键,进人程序存储器的读写状态;

②按压 仁REG3键,进人寄存器读写、特殊功能寄存器检查,8032内部RAM区读写状

态;

’③按压 [F1]键,进人标志态,并出现闪动的 “r’’ 标志符,表示装人首地址;

④按压 〔F2]键,进人标志态,并出现闪动的 “J”标志符,表示装入末地址;

⑤按压 仁ODRW ]键,进人外部数据存储器/扩展口、外部数据存储器读写状态;

⑥按压 「EXEC]键,从显示地址开始连续执行用户程序;

⑦按压 汇STEP]键,从显示地址开始单拍执行用户程序;

⑧按压 〔MON]键,返回待命状态00

三、MEM态

在状态1时按压 〔MEM刁键,或当执行用户程序时遇到断点、单拍执行、EPROM编程

写人出错等都会使单片机进人该状态。本状态可进行的操作有:

①按压 「OFST〕键,进人相对偏移量计算;

②按压 仁DEL〕键,进人删除操作,按一下,删除一字节;

③按压 〔INS]键,进入插入操作,按一下,插人一字节;

④按压 「LAST〕键,进人上一字节读写操作;

⑤按压 仁NEXT]键,进人下一字节读写操作;

⑥按压 仁STEP]键,以当前显示器内容作为地址,按压一下,执行一条指令,即执行用户程序一步;

⑦按压 「EXEC]键,以当前显示器内容作为地址,连续执行用户程序 (若退出,应按

〔RESET〕复位键);

⑧按压 「MON〕键,返回待命状态。(按 [EXEC]键后,该命令无效)。 四、I'1G态

在待命状态1,按压.仁REG〕键,进人该状态。可进行如下操作:

1.键入1位地址,进人当前工作寄存器读写/检查状态

(1)显示代号。一7,读写当前工作寄存器RO一R7; (2)显示代号8或9,检查数据指针DPTR, 8显示DPL, 9显示DPH;

(3)显示代号A,检查累加器ACC的内容;

(4)显示代号B,检查B寄存器的内容; (5)显示代号C,检查程序状态字PSW的内容;

(6)显示代号D,检查堆栈指针SP,开机复位后SP为07H;

(7)显示代号E或F,检查当前PC值,E显示PCL, F显示PCHo

2.键人2位地址,可进行以下操作

(1)片内RAM区读写;

(2)特殊功能寄存器的检查、修改;

Page 9: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

5

①按压 [LAST]键,读写上一字节内容; ②按压 〔NEXT]键,读写下一字节内容;

③按压 仁MON ]键,返回待命状态0.

五、ODRW态

即在状态1,按压 「ODRW]键,可进行以下操作:

(1)键人2位地址,外部RAM的读写。在EDC监控时读写8032片内RAM80H一FFH内

容;

(2)键人四位地址,外部数据存储器读写,v0读写;

(3)按压 巨.AST)键,读写上一字节内容;

(4)按压 「NEXT]键,读写下一字节内容; (5)按压 [MON]键,返回待命状态0. 六、标志态:即F态

在待命状态1,按压数字键后,再按压 「F1]键,本机便进入标志态,标志态功能特别

强。

① [F1〕键功能,装入源程序首址,即把当前显示器内容作为源程序首址,装入本机的

约定单元,并显示闪动 “r 标志符;

② [ F2]键功能,装人源程序末址,即把当前显示器内容作为源程序末址,装人本机的

约定单元,并显示闪动 “J”标志符;

③在 ',J”状态下,再键人的数,便是目标首址。

(一)F标志态可进行的操作

(1)按压 [MOVE〕键,进行程序/数据块移动,其传送方向由初态确定: ①在 “P.”态,本机内部《)OOOH一FEFFH空间内部相互传送;

②在 “P..⋯”态,本机内部数据/程序块传向外部用户数据存储空间;

(2)按压 〔COMP」键,进行程序块比较; (3)按压 〔EPRGH]键,进行EPROM (2764, 27128, 27256)高速固化;

(4)按压 [EPRGL]键,进行EPROM (2716, 2732)常速固化;

(5)按压 〔EPMOV〕键,把固化区程序搬到程序区,其目标有两个:

①在 “P.”态,固化区内容传向本机内OOOOH一FEFFH空间;

②在 “P.....”态,固化区内容传向用户系统数据区()OOOH一FEFFH空间。

(S)按压 「EPCOM〕键,本机内部程序/数据或用户系统程序/数据区与固化区比较。

(二)操作步骤

以上几个功能的操作步骤为:

源首址 「F1] 源末址 [F2」 目标首址 相应功能键 (1)按压 〔NVBP]键,进行非全速断点运行,操作步骤如下:

断点地址 〔F1」 经过断点次数 〔F2」 执行首址 〔NVBP]

(2)按压 [FVBP]键,进行全速断点运行,操作步骤如下:

断点地址 [Fl] 执行首址 〔FVBP]

(3)按压 [DAR]键,进行反汇编,源地址有两个,操作如下:

源首址 [F1] 源末址 「F2] 浮动地址 「DAR](浮动地址可省略)

Page 10: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

6

① "P.”态,机内OOOOH一FEFFH反汇编;

② "P.....�,外部用户系统程序区反汇编。

(4)按压 〔PRT]键,进行反汇编打印,操作如下:

源首址 .[Fl] 源末址 〔F2〕 浮动地址 仁PRT](浮动地址可省略)

Page 11: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

第二章 DICE综合软件之MAIN软件使用说明 (适用于原有仿真系统)

第一节 系 统 组 成

DICE开发机具有联机与非联机二种工作方式,在非联机情况下,它可以独立的作为

8031单片机应用系统的开发工具,能实现一次性在线仿真调试8031应用系统,能在线排除应用系统的硬件故障和软件错误。

在DICE综合软件支持下,DICE - 51开发机和IBM PC/XT经RS232C接口相连后,便构

成DICE在线仿真系统,实现高一级的开发功能,从而提高样机研制工作的效率。DICE一51

在线仿真系统的组成如图2-1所示:

口万于日 图2-l DICE在线仿真系统的组成

DICE一51开发机 (仿真器)的CZl与IBM PC/XT的RS 232C相连,实现双向通信。

第二节 DICE综合软件结构

一、结构

DICE综合软件采用模块式结构,以各级菜单方式向用户提供各种操作命令。

(1)编辑模块:综合软件有行编辑和屏幕编辑二种方式,供用户选择调用,用户可以在

PC机终端上建立、修改、存储及打印、显示用MCS一51汇编语言书写的源程序文件。

12)汇编模块:调用MCS - 51交叉汇编程序,它将用户的MCS - 51汇编语言源文件汇

编成MCS - 51机器语言目标文件,并生成列表打印文件,供显示和打印输出。MCS一51汇

编程序向用户提供定位伪指令 (ORG)、数据字节定义伪指令 (DB)、数据字定义伪指令

(DW)、等价伪指令(EQU)等。 (3)反汇编模块:MCS - 51反汇编程序包含逐行反汇编和自动反汇编二种功能。自动反

汇编在MCS - 51目标文件中搜索出尽量多的指令,并根据程序的流向,对转移、调用的目

标地址加上标号,并显示反汇编的结果,对尚未定义的目标块逐行反汇编,可允许操作员指定

目标文件的某些编码为常数、表格、字符或地址,允许在特定地址前加上标号。反汇编结果生

成列表文件和汇编文件,它是供用户分析解剖MCS一51微机产品中的软件程序的有效手段。

Page 12: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

8

(4)通信模块:将用户的MCS一51目标文件 (在PC机盘片上)传送到DICE一51开发

机的仿真RAM中供用户调试或固化。

(5)调试模块:该模块以菜单形式提供。列表检查和修改用户数据存储器、用户系统扩

展RAM, UO口、8031特殊功能寄存器,用户源程序、用户目标程序的加载 (目标文件装人

DICE - 51仿真RAM)、存储 (仿真RAM中的目标程序存盘),用户程序的固化以及控制用户

系统以单拍、多步、跟踪、断点、全速实时断点、连续方式运行程序。交替使用各种检查修

改命令和运行控制命令,能高效地检测排除用户系统的软硬件故障。

二、启动方法

在DOS状态下键人MAIN则可进人DICE一51系统软件环境中。

进人该状态后,屏幕上显示:

一 DICE一51 一

一 Version 3.0 一 (C) Copyright Qi一Dong Computer Factory 1987,1988,1989,1990

Press any key to Continue...⋯

按下任一键后,屏幕上又显示出:

1 DICE-51 MAI·一 1.Edit file

2. MCS一51 Assembler

3.MCS一51 Diassembler

4. Communication

5.Debug

6. CRASIC

7.Return to dos

ENTER

个十=Menu selection, Fl=Rename, F2=Dir,”二Copy, F4=Type, F5=Print, F6=Delete. 这时用户有二种方法可以用来选择:

(1)通过使用 (个,专)两键把光标移动到所要选择的功能所对应的数字时,按一下回

车键进人该状态。

(2)通过输人所要选择的功能对应的数字来进人该功能状态。

第三节 MCS一51汇编使用说明

一、调用MCS一51汇编程序

在主菜单下,选择功能2,屏幕下方继续显示出下列提示信息:

一一MCS51 Assembler一一

Source filename:TEST. ASM

Page 13: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

List filename: TEST. PRT

Object filename: TEST. OBJ

其中扩展名为.ASM的文件为已存在的MCS一51汇编语言程序,另外两个文件为将要生

成的文件,扩展名为.PRT的文件为列表文件,扩展名为 .OBJ的文件为目标文件 (ASCII),

各种文件名必须正确输入,屏幕上显示出汇编过程中的信息,若正确地汇编出来,显示内容

为:

Mcs一51 assembler version 01,02

Copyright 1987,1988, 1989,一2000 QiDong Computer Factory

mcs一51 assembler pass 1

mcs一51 assembler pass 2

MAIN 0000

PITO 8154

MLI 8300

SEG4 9203

no error

output>PRN or not? (y/n ) 屏幕上显示出二次扫描的过程信息和标号表,最后询间是否需要将生成的列表文件打印

出来,输人Y接着便转人打印,输人N则返回到主菜单 (需要打印时,先打开打印机)。 二、错误信息

如果在汇编过程中发现源程序有错误的话,出错信息显示在屏幕上,本系统能指出十种

类型的错误信息:

(1) invalid identification 非法标号;

(2) invalid data 非法数据;

(3) undefined identification 标号无定义;

(4) identification defined repeated 标号重复定义; (5) bad operation 非法操作码; (6) bad operand 非法操作;

(7) jump out of page 跳转出页; (8) bad addres, 非法地址;

(9) end is lost 无 END;

(10) program is too long 程序太长。 错误 (7)除了适用于跳转命令外,也适用于在其它指令中涉及到有关范围约束的字段,

当然这不是跳转出页,而是超值。

错误 (9)一般用来提醒用户程序应当完整,不应失去汇编语言结束标志,但其并不产

生实质性的错误。

错误 (10)一般不会发生,程序过长涉及到具体的机器硬件,一旦发生这项错误,意味着你的程序对主机内存容量的要求已经超出主机所能提供的容量。

有些错误类型的输出可能与实际的情况有出人,在根据错误信息查错时,应注意这一

点。例如,“非法操作数”这一出错信息本身就可能包含 “非法地址”或 “非法数据”错误

Page 14: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

10

类型,不仅如此,有些错误的出现,是由于上下行的错误引起的,本行不一定有错。一般情

况下,错误均在第一遍扫描时报出,并且第二遍扫描不再进行,但错误 (7)在第一遍扫描

正确后,第二遍扫描时报出。

另一类错误是Badfile不属于本系统输出的错误。当用户在输人Assembler file名字时,打

错了键或者输人一个尚未建立的文件名时,以及伪指令ORG定位错时,该错误发生。

还有一类错误是command error。在调用该系统时,List file name是必须输人的,即用户

不输人该文件名,则出现command error。另外,用户想只要Object file,而不输人List filename,是不可能的,其结果在Object file。 下产生的是List file,因此实用时要小心。Ob-

ject file name不是必需的,当用户不需要产生该文件时,可仅打人回车键来回答,但是Objectfile对于通信是必需的。另外,在汇编过程中,还自动产生一错误信息文件,格式如下:

行号:错误信息

行号是用户汇编程序中出错的地方,错误信息自动在上面列出。错误信息文件名是用户

文件名加上err扩展名,如果用户文件名已有扩展名,则扩展名被截断。例如用户文件名为

C: WW. ASM,则错误信息文件名为C: WW. ERR.

第四节 MCS-51反汇编使用说明

一、调用MCS-51反汇编程序

在主菜单下,选择功能3,屏幕下方继续显示出下列提示信息:

-MCS51 Disassembler-

Object Filename:_

等待用户输入OBJ文件名,若输入的文件存在,则清屏并显示*提示符,表示进人了反汇编状态。可以利用反汇编命令对目标代码文件进行反汇编。

二、反汇编命令

[G] 从给定地址开始反汇编 '}B] 定义数据类型— 字节

[W〕 定义数据类型— 字

[C〕 清除已经反汇编的区域

[0] 输出反汇编文件 [S」 选择反汇编工作窗口显示方式

[F10〕 返回主菜单

第五节 通信和调试

用户程序的编辑、汇编和反汇编的操作,可以单独在PC机上操作,不一定要和DICE -51/98开发机相连。用户目标程序的通信和调试则必须在DICE - 51/98开发机在线 (与PC

机相连)的状态下进行。

一、通信

通信的功能是将用户的MCS一51目标程序文件传送到DICE一51/98的仿真器RAM中,

Page 15: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

11

以便调试、固化或转录 (准备脱离PC机调试,在PC机比较忙碌的情况下需采用此种方式)。

(1)准备工作

①DICE一51/98开发机和IBM PC/XT机相连,连接方法见图2-1; ②打开DICE一51/98机的+5V,+12V电源;

③DICE一51/98机显示初始化提示信息 “P.”;

④在DICE一51/98机键盘上按下COMP键。

(2)启动通信。当PC机处于组合软件状态时,显示出主菜单,将光标移到4,按回车

键或输人4,此时屏幕上显示出下面的一幅信息:

一·ICE - 51 MA。MENU .

1.Edit file

2. MCS-51 Assembler

3. MCS-51 Diassembler

4. Communication

5. Debug

6. CBASIC

7. Return to dos

ENTER二 >

-Communication-

Object filename:_

此时输人OBJ文件名后回车,屏幕上显示:

Communication between IBM PC and DICE version 01

Copyright 1987 Qi-dong computer Factory

input data is 31

input data is 32

input data is 33

OK

IBM PC transfer to DICE-52

正确结束后,IBM PC显示: End of load

good场e

表示传送结束。

出错时,IBM PC/XT显示屏幕上不出现input data is 31,此时请检查R一232C接口和操作步骤。欲使IBM PC/XT退出通信状态,可通过关闭DICE - 51/98机上的十5V, + 12V电源开关达到目的。

(3)通信结束后,可单独在DICE一51/98开发机上的RAM中检查程序、调试、固化或

Page 16: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

12

转录。

二、用户系统调试

用户的8031样机硬件故障排除应在脱机状态下基本排除,连PC机调试主要是软件和硬件协调性的调试,以提高调试的效率。综合软件包中的DEBUG部分为用户提供了丰富的操

作命令,本节说明它们的功能和使用方法。

1.准备工作 ①DICE一51/98开发机和IBM PC机相连;

②打开DICE一51/98机的+5V,+12V电源;

③DICE一51/98开发机显示 “P.”;

④在DICE一51/98开发机键盘上按下PCDBG键。

2.启动DEBUG

当PC机处于综合软件状态时,并显示出主菜单时,将光标移到5,按回车键或输入数字5,便进人DEBUG状态,屏幕上显示:

input data is 31

input data is 32

input data is 33

稍待片刻,屏幕上显示调试系统菜单:

}、二、MENU

一 1 LOAD3 EPROM一 2 SAVE4 SIMULATIONYOUR CHOICE: 个令,~

(1) Use key to move the cursor to one of the function block and then press RETURN key to enter;

(2) Press ESC key to EXIT. 3.调试系统菜单命令功能和操作方法

移动光标,使之指向系统菜单上的1. 2. 3. 4命令,按回车键后便进人该命令状态。

(1) LOAD装人。LOAD的功能是把存放在磁盘上的目标代码文件传送到DICE - 51/98开发机RAM中 (和通信类似)。

进人LOAD后,屏幕上显示:

一}EXECUTING COMMAND: LOAD, ! OBJECT FILENAME: C : test. obi

I WAITING

Page 17: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

]了

此时光标出现在OBJECT FILE NAME:后,要求用户输人所需传送的目标代码文件名

(如上图中标有下划线部分)。

当输人文件名字后,光标移动到WAITING后,要求用户等待。如果磁盘中不存在输人

的文件名字,则显示CAN NOT OPEN C: TEST. OBJ传送结束后,显示 OK,光标移动到

CONTINUE? (Y/N)后,输人¥则重复LOAD功能。按其它键,则退出LOAD功能,返回到

SYSTEM MENU状态。

(2) SAVE存储。它完成的功能,是把DICE一51/98开发机仿真RAM中,由用户指定的

首地址和末地址区域间的内容记盘 (在磁盘中形成一个文件,文件名由用户指定)。该文件

的格式同由交叉汇编程序所生成目标代码文件格式相同。它符合反汇编程序的要求,可以进

行反汇编。

进人SAVE状态后,屏幕上显示:(如下画面)。首先光标位于FIRST ADDRESS:后,要

求用户输人首地址 (若要退出SAVE,则按回车键)。如输人8000(为16进制数)后按回车

键,则光标移到END ADDRESS:后,要求输入末地址 (若要退出SAVE,则按回车键)。如

输人8200(为 16进制数)后按回车键,光标移到FILENAME后,要求输入记盘的文件名

(若要退出SAVE,则按回车键)。

二三一 如输人C: TEST. OBJ后回车光标移到WAITING后,提示用户等待。记盘结束后,则屏

幕上显示OK,光标移到CONTINUE? (Y/N)后,输人Y,则重复SAVE功能。

输人其它键,则退出SAVE,返回SYSTEM MENU状态。

(3) EPROM功能。它完成的功能,是把由用户指定首地址和末地址的DICE一51/98开

发机中仿真RAM的内容,固化到由用户指定位置的EPROM中。

在DICE - 51/98的EPROM固化区上,采用其它方法,可固化/拷贝2716, 2732, 2764,

27128等EPROM。进人此功能,屏幕提示: (见下画面)。首先光标位于FIRST ADDRESS

后,要求输人首地址 (若按回车键,则退出EPROM状态)。输入首地址后,光标移到END

ADDRESS:后,要求输人末地址 (若按回车键,则退出EPROM状态)。输入末地址后,光标移到EPROM ADDRESS:后,要求用户输人把该段内容固化在EPROM中的位置的首地址 (若

按回车键,则退出EPROM状态)。输人EPROM首地址后,光标位于OPEN十25V后,要求用

户打开EPROM的固化电源开关 (不同芯片的固化电源不同,请一定加以注意,应根据具体

Page 18: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

14

芯片型号确定)。打开开关后,按下回车键,则显示WAITING,提示用户等待。结束后,显

示OK,光标移到CONTINUE? (Y/N )后,输人Y,则重复EPROM过程。按其它键,则退出

此状态。

Page 19: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

第三章 DIEC综合软件之DBUG软件使用说明 (适用于新型仿真系统)

第一节 DBUG组合软件

一、DBUG功能与特点

DBUG组合软件是单片机仿真开发系统DICE的联机调试软件,可在IMP PC/XT/AT,

286/386/486, PS/2等各类兼容机上运行。 DICE提供一个具有RS一232电平的联机通信口,通过联机电缆线与主机的RS一232异

步通信口相接,在DBUG调试软件的支持下,向用户提供源程序编辑、汇编、反汇编、装载、在线仿真运行及固化等强有力的调试手段,DBUG还是一个集成化系统软件,除上述功

能外,还具有数据块操作、磁盘文件操作、DOS调用等其它功能为一体,用户界面极为友

好,多窗口显示,以主从菜单方式提供操作命令。

(1) DBUG采用随机联络方式与DICE通信 (不必像MAIN软件中那样,通信时必须按下

通信键)。所谓随机方式,就是主机与DICE之间通常处于脱机状态,两者各自可以独立操

作。需要时,主机与DICE联络并完成信息交换,通信只是瞬间完成的,然后返回脱机状

态。DICE处于 “P.”及非修改状态下,主机随时都可与之通信,波特率高达 19200

115200b/s,高性能、高速度、高可靠性且无误码。在通信休止期间,DICE仿真系统和系统机都可以分别进行操作,如果系统机有两个串行口,DBUG可选择其中一个串行口连接DICE

仿真器,或者同时连接调试两台DICE仿真器。

(2) DBUG软件将屏幕划分为寄存器窗口、存储器窗口、工作窗口、标号窗口,变量窗口、文件名窗口及主菜单命令等多种窗口。DICE的状态和命令提示全部显示在屏幕的顶行

和底行,使用户在同一屏幕上就可饱览各种调试信息,所有命令均为一键触发,且提供系统

帮助和用户帮助。调试过程中所有错误都显示在屏幕的底行,便于排除故障,不会因出错而

破坏调试结果或死机。

(3)对用户支持汇编、PL/M51及C一51语言源程序文件直接调试,并可选择标号 (符

号)方式调试,方便的即时进行汇编、窗口直接修改数据、直接翻页卷行、用户可自行设计

窗口格式及内容等丰富的调试运行功能,极大地提高用户工作效率。

(4)高速交叉汇编,支持多种伪操作。 (5)配合EPROM编程卡,具有对多种型号EPROM读、写、校验、空片检查等功能。

(6)用户可以选用各种编辑软件编辑用户文件。

(7) OS Shell功能调用可以使用户在运行DBUG时执行DOS系统内部或外部命令 (按

EXIT命令返回DBUG,原有状态并不破坏)。

(8) DBU(;软件可直接在软盘上运行,或复制到硬盘上运行。

Page 20: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

1石

二、DBUG的进入

1.软件的组成

DBUG调试软件存放在一张软盘上,软盘上有以下文件:

(1)DBUG.EXE (2) DBUG.OVL

(3) DBUG. HLP (4) DBUG. CFG

2. DBUG的启动

DBUG. EXE文件可以放在用户当前目录,也可以放在DOS路径能访问到的目录下,另

外两个文件DBUG.OVL及DBUG. HLP必须放在和DBUG. EXE相同的目录下,而DBUG.CFG

则必须放在当前目录下。

在系统提示符下,键入DBUG即可进人DBUG调试软件运行状态。进人DBUG后,首先

显示DBUG版本号等信息,按任意键即进人多窗口工作状态。

3.DBUG的状态显示

DBUG的状态显示在屏幕的顶行,用户应时常注意当前状态。

(1)顶行状态信息:

.版本号 .CPU类型 {uc-A- f J ’ 、二、 。 {

已被装人的文件名 .仿真模式 卜一一一-洁一 I二二万兀下一一一一一一州 幸Y Fn大日1任 大日寸卜夕义 ’ 丁 作 窗 口 乙一.一 一 一一一-一-一-一一-— ~川

.串行通信口信息 卜 -一一 -一-匕 -一一-一一一一一州

DBUG的窗口显示见图3-1所示。 匕兰 二二 二二二一兰二一一一一一-一一」

①版本号:由三位组成,首位是大序号, 图3-1 DBUG窗口布局后一位是小序号,它表征仿真系统的功能级别,

或是对已有功能的补充与提高,大小序号之间用小数点隔开,还有一位尾序号,它的不同只

表征DBUG组合软件当前版本的自身功能的提高,因此版本序号不同时,需要更换监控程序。

②CPU类型:左边的数字8***,表示当前DICE仿真器的CPU型号,右边的数字表

示当前仿真哪一种目标CPU,因为不同的CPU型号,其SFR的标号有差别,例如8051和

8OC652没有定时器T2, 8052的12控制寄存器的标号为T2CON,其字节地址为OC8H,而8OC552的T2控制寄存器为TM2CON,字节地址是OEAH,此外各CPU的SFR数量各不相同,因此在编译源程序、反汇编及调试窗口显示时,应当使用与之相应的标号信息以及相兼容的

CPU,用。't〕类型右边的数字8****表示目标CPtj,并提供给用户选择。这一特性,使得8OC552可以模拟仿真8051, 80C652, 8OC552的全部功能,并可以对8052除T2的大部分

功能进行模拟,8751的仿真必须换用专用仿真适配器。

DBUG从版本V3.00起支持调试多个CPL〕品种,有8051, 8052, 80652, 80552, 8751等。

使用Ctrl十E键可以选择目标 CPU型号,尤其是在进人汇编、反汇编及把数据块SAVE

存盘前应先检查并选择目标CPU型号。

③代码文件名:系统进人时,显示NONAME.HEX,表示当前没有装人目标文件,使用

LOAD功能装入目标代码文件成功以后,显示被装入文件的盘符及文件名。

④仿真模式:使用Ctrl十S键可以改变仿真模式,改变仿真模式即改变DBU G的取指、读写控制信号的方向,其效果与DICE上的 江Fl] [F2]键功能相同。

Page 21: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

17

DBUG的仿真模式有四种,即模式0一3,意义如下:

(a) . IPSEN IRA' 模式0

CPU的取指和读写控制信号均在仿真器DICE的内部:

(b) . UPS IR'W 模式I

CPU取指控制信号指向用户系统,读写控制信号指向仿真器DICE的内部。仿真时,这

种模式是用仿真器DICE的RAM映象用户的RAM和输人输出接口,适合模拟调试未挂上外

设的用户系统;

(c) . IPSEN URW 模式2

这种模式下,CPU的取指控制信号指向仿真器DICE内部,读写控制信号指向用户系统。

仿真时,用户的程序存放在仿真器DICE的RAM内,DBUG的所有调试排错命令都可使用,

在这种模式下调试通过的程序一般都能够脱机运行;

(d) . UPS URV 模式3

CPU取指控制信号和读写控制信号全指向用户系统。

Ctrl + S键只是简单的选择模式,并不立即刷新工作区窗口,可以使用Ctrl + 0键刷新显

不 。

⑤打印机联机状态:在调试程序RUN模块下,使用Ctrl + P可以联接打印机,每次运行程序的结果的部分内容可以送打印机输出,状态行的PRNOFF(或PRNON)指示当前打印机

的联机状态。

⑥ 串行通信口信息:状态行的最右端,指示当前被激活的串行通信口号及波特率,监

控自动跟踪CPU工作频率的高低,自动设定可使用的最高波特率,因此用户系统的晶振与

DICE晶振不同时,或者晶振实际频率与其标准值有偏差时,通信仍能正常工作。

另外在主机与DICE通信过程中,串口号及波特率信息会不断地闪烁,表示该串口正在

忙中,并指示当前波特率。

通信波特率设置如下:

工作晶振 波特率 (b/s)

4 19200

) 6 28800

) 8 38400

10一16 57600

11.0592 115200

如果底行显示 “AUX link failure or DRUG not ready!⋯”错误信息,表示通信联接失败,请仔细检查以下几种故障情况,排除并重试:

.通信电缆是否联接好; .串行口选择是否正确;

. DICE的电源是否打开或是否满足5V/1A; .DICE是否处于 “P"状态;

.主机串口硬件是否有故障或是否感染病毒;

当系统主机有二个串行口时,或者用户欲选择使用COMI或COM2中一个通信口,用Ctrl十C可以改变当前的串行口,或者是对联接到两个串口上的DICE仿真器进行调试,Ctrl

+C为用户提供了方便。Ctrl十C键切换串行口,使其后的通信都在指定的通信口上进行,

并且在状态行上显示当前选择的通信口号,不刷新屏幕显示。

Page 22: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

18

如果用户在切换串行口后,立即用Ctrl + 0键,则DBUG刷新当前显示。并不一定每次

都要使用Ctrl + 0键,在RUN下的运行控制键F4, F5, F8, F9都会在执行命令后自动装人

DICE的状态且刷新显示。

(2)多窗口显示。DBUG将调试信息显示在各个窗口内,窗口可以随需要弹出、改变尺

寸、消除或移动,进而提供一些更直接的操作,同时又不破坏原有状态,扩展了视域,体现

了它的友好性。

窗口大致划分为寄存器窗口、存储器窗口、工作窗口、标号窗口、变量窗口、文件名窗

口、汇编窗口、修改窗口、对话窗口及主菜单命令等多种窗口,使用户在一屏上就可饱览各

种调试信息,且提供系统帮助和用户帮助。

①工作窗口(Working view) : DBUG在工作窗口内的显示内容,在不同模块时是不同的。

②寄存器窗口(Register of banks):寄存器窗口用来显示特殊功能寄存器SFR、寄存器RO一R7,以及用户定义的字节、字或位变量的当前值,在调试程序过程中,每次运行结果

都刷新显示。

此窗口内的显示格式和内容可以让用户自行设计。

③存储器窗口:DBUG提供了一个灵活多变的存储器窗口,用来显示指定的存储器区域

的内容,触发Ctrl + M键来选择存储器空间,并在窗口左下方显示,可选择的存储器空间

有:

1) "DATA&IDATA-二”:表示CPU内部数据RAM,地址从80H一FFH之间为间址空间。

2) "BIT ADDRESSABLE":表示CPU内部可位寻址存储空间。

3) "XDATA ( external) ":表示CPU片外扩展数据存储器空间,显示内容按屏幕顶行的读写模式 (I-RW/U-RW)指定的方式装人石

4) "CODE (Programer)":表示用户程序存储器空间,显示内容按屏幕顶行的取指模式(I-PSEN/U-PS)指定的方向装人。

大多数情况下,存储器窗口左边显示地址,接着是十六进制数据,右边是ASCII字符。

在显示 “位寻址”存储单元时,左边显示字节地址,接着是二进制数据,右边是位地址。

使用PgUp, PgDn,个W键可以对窗口直接进行翻页卷行,Ctrl + G键选定某个地址,窗口按选定地址起显示,地址也可以缺省,直接按回车键。

存储器窗口是一个可变尺寸窗口,F6键改变其尺寸,同时也改变寄存器窗口的尺寸。

在调试程序过程中,每次运行结果都刷新显示。

④命令行和错误指示信息行:不论在哪个功能模块,底行总是显示当前可操作的命令

信息,当你按下Ctrl键、Alt键或Shift键时,底行立即显示与之相应的另一组命令菜单。当

发生错误或需要告警用户作什么时,指示错误类型或提示处理信息。

⑤文件名的输人及文件名窗口:在LOAD, ASM, DASM, HELP等模块中,DRUG需询

问文件名,用户回答文件名时,可以直接输人盘符、路径和文件名,可以使用、和?等适配

符,也可以直接按回车键。文件名格式为:

filename 〔盘符〕〔路径孕〔文件名」〔扩展名〕(CR)

⑥使用标号及标号表窗口:在RUN模块中,用户经常会遇到使用标号/符号的地方。例如Ctrl十G列表、Ctrl + B设置断点、F3设置新的PC值或汇编输入语句中的标号/符号。

Page 23: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

1夕

按Ctrl +卯键就可以弹出标号表窗口,并显示全部标号/符号,在窗口内,每行显示标号/符

号、属性及所对应的数值,如果标号过长,则只显示前18个字符。其中属性分为:

X-一外部变量符号 D-一内部变量符号

B一位变量符号 N一数值符号

C一代码符号

变量符号及属性是在源程序中使用XDATA, DATA, BIT定义语句分配存储单元时产生

的,数值型符号由EQU(或二)定义语句产生的,代码标号由交叉汇编程序产生。

可以使用个专、PgUp,几Dn, Ctrl + PgUp, Ctrl十瑰Dn键浏览全部的标号或符号信息,移动光带到目标标号/符号上,按回车键,可以把光带处的标号所对应的地址,带到汇编语

句内或各个使用标号的对话窗口内,也可以用Ctrl + G, Ctrl十N,兄等键操作。

⑦对话窗口和行汇编输入:DBUG的大多数命令为单键或复合键输人,但有时需要用户

输人一行字符串,例如输入地址、标号、文件名或汇编语句等,用户在输人时可以使用字

符、数字及光标移动键,用ESC键终止输人,F3键复制原有内容。

⑧变量窗口:变量窗口是按用户程序中定义的所有变量、符号及程序标号的先后次序,

显示当前值,不包括CPU内各个寄存器的内容。

变量窗口内各变量的值也可以随时修改,按Tab或Shift十,Tab键,光带即跳到该窗口内,

移动光带到欲修改的变量上,直接输人数值或某个标号即可。

窗口内各字节型变量的值可以转换成字类型显示,也可以反过来转换,在欲转换的变量

处按Ctrl+D键实现该功能。 ⑨ 窗口移动:弹出式窗口可以移动,只要按Scroll键,使之处于Lock状态,这时按~

~个令光标键,可使窗口移动到屏幕任意位置,再按Scroll键,退出Lock,则窗口被定位。

⑩窗口翻页卷行:在工作窗口、存储器窗口、变量等窗口,可用一组光标控制键对窗口内容进行翻页、移动光带或光标、卷行寻找上下文。

常使用的命令有:

个专 光带上下移动。当光带处于窗口顶 (底)时,窗口上下卷行。

PgUp, PgDn 向前向后翻页。

Ctrl十PgUp 跳到文件头。 Ctrl十PgDn 跳到文件尾。

Home 光带移到当前行首。 End 光带移到当前行尾。

Ctrl + Home 光带移到窗口首行。

Ctrl + End 光带移到窗口末行。 三、DBUG的常用功能

1.常用的功能键

DBUG提供了一组最常用的功能键,下面就这些常用键的使用方法作解释。 (1) F1或?帮助:键人 「F1」键,弹出HELP帮助窗口,对各命令进行简单介绍。

(2) Ctrl + E - 选择仿真目标CPU:使用Ctrl + E键可以选择目标CPU型号,尤其是在

进人汇编、反汇编及把数据块存盘 (SAVE)前应先检查并选择目标CPU型号。

(3) Ctrl + S— 选择DICE机的仿真模式:使用Ctrl + S键可以改变DICE机的仿真模式,

Page 24: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

20

改变模式即改变仿真器DICE的取指、读写控制信号的方向。

(4) Ctrl +C— 选择异步通信口COM 1或COM2:用Ctrl + C可以改变当前激活的串行口

COM1或COM2o Ctrl + C键切换串行口,使其后的通信都在指定的口上进行,并且在状态条上显示当前选择的通信口号,不刷新屏幕显示。

(5) Ctrl + M— 存储器窗口显示选择:触发Ctrl + M键来选择存储器空间,可选择以下

区域:

DATA & DDATA.二:内部数据存储器空间内容;

BIT ADDRESSABLE:位地址空间内容;

XDATA (external):外部数据存储器空间内容;

CODE (programer):程序存储器 (仿真器内)空间内容。 (6)光标控制键:在主菜单窗口、标号窗口、文件名窗口、工作窗口、存储器窗口、变

量窗口、帮助窗口等,可用。。个专光标键及翻页键移动光标或光带,寻找所需内容。

(7) Tab/Shift十Tab— 选择窗口:若想移动光标或光带到寄存器窗口 (包括PSW, SP)

和存储器窗口,并对其内容进行修改,可按Tab键,光标跳到寄存器窗口和存储器窗口,此

时使用个十~~、空格键可以使光标在窗口内数据间移动,并可在光标位置处直接修改数

据。每次修改的数据,都被送往DICE机,因此用户在修改SFR时,对某些内容的修改必须

注意修改次序。

在输人数据时,数值默认为十进制数据,十六进制数据后加后缀Ho

(8) ESC— 废除/退出:通常作废除当前操作用。例如在回答文件名、地址及其它询

问时,甚至于在输人汇编语句、EPROM写入中,都可以用ESC键终止。

在DBUG与DICE通信过程中,屏幕右上角的串行口号会闪烁,表示该串行口正在忙或在等待DICE的回答。按ESC键可终止当前通信,若不能终止,则先按Ctrl + Break键,再按

ESC键。

(9) Alt + F5— 显示Shell调用屏幕:进人DRUG程序时,或从OS Shell返回DBUG窗口

时,DBUG将OS(操作系统)的屏幕保存在幕后,当用户想临时观察被保存的OS屏幕,任

何时间使用Alt + F5键都可以立即显示OS屏幕,然后按任意键返回,而且DBUG的所有状

态不变。在OS状态下可执行DOS的内部及外部命令。

(10) Alt十X— 退出DBUG:立即退出DBUG,回到操作系统下。

(11) F10--返回主菜单。

2. DBUG主功能模块命令 选择主菜单命令可以用下面几种方法:

.使用个十键移动主菜单光带选择主命令,再按回车键;

.直接按该命令首字母键;

.按F1一F9功能键;

.按Alt加主命令首字母键。

(1) Help或?帮助功能。与DBUG.EXE同目录下如果有DBUG.HLP文件,则Fl键触发

帮助功能,屏幕上显示帮助文件的内容,并可以用个十、Ctrl + PgUp, Ctrl + PgDn, PgUp,

PgDn键进行翻页卷行,ESC, F1,?键返回DBUG窗口,原有状态不变。 在帮助窗口内还有查找字串及变化屏幕颜色的功能,按F (Find)键执行查找,用户可

Page 25: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

21

在屏幕底行输人一行字符串,按回车键后,立即从当前顶行开始向前查找匹配字串,大小写

字母忽略,找到一个匹配的字串后,把匹配字串所在行作为顶行开始刷新屏幕,并改变顶行

颜色,如果按N (Next)键继续查找,找不到时,顶行颜色恢复正常,DBUG一直保存用户

最近输人的字串,任何时候,用户都可以按N键。

DBUG还提供 “用户帮助”接口,按F3键,询问用户欲装人显示的文件名,DBUG找到

匹配的文件后,直接装人该文件并显示。

F1键和?键的区别在于F1键激活系统帮助,?键激活显示用户先前调人的文件,且不

论哪个帮助,原先的显示状态不变。

(2) OS Shell— DOS功能调用。Shell暂时挂起DBUG操作,并保存DBUG屏幕,切换

到OS屏幕下,显示当前OS版本号等信息,表示已进人操作系统并在操作系统提示符下,

用户可以进行操作系统界面上的各种操作 (包括内部命令和外部命令),但不宜在OS Shell

下执行任何常驻内存的程序。如果要返回DBUG窗口,只要在操作系统提示符下键人EXIT命令即可,DBUG的原有状态并未破坏。

(3) EPROM, EEPROM写人。当主机内配有一块MEP - 512写人卡时,DBUG可以实现

把用户系统或DICE上的程序区直接写人EPROM的操作。

.命令S:选择EPROM型号及编程电压Vpp. .命令T:选择EPROM写人盒上Textool个数,范围1一40

.命令B:空片检查,检查要写人的EPROM是否全部为OFFH.

.命令R:读EPROM的内容到DICE机。

.命令V:校验EPROM与DICE的数据。通常必须在执行完写操作后,才需进行校验操

作。如果用户想直接比较 DICE上与EPROM的数据,则可以先进行一次假写人 (不插

EPROM),写操作后,DICE的内存中已有DBUG的数据,就能进行Verify操作。 .命令W:将DICE的内容写到EPROM.

.命令F10,退出EPROM状态回到主菜单。

(4) LOAD-— 装人HEX代码文件。按状态行I-PSEN或U-PS所指示的方向,将用户目

标文件 (扩展名为.HEX)装载到仿真器DICE内存或用户系统中。 装人过程中,如果目标文件是由DBUG的汇编程序编译的,则LOAD模块自动获取代码

文件中有关CPU信息,改变当前目标CPU类型。

输人代码文件名,DBUG寻找该文件,并显示应装入的首地址及长度,用户可以更改装

人首地址,如果用户已在仿真器或用户系统目标地址处插人EEPROM,则直接把代码写人

EEPROM中,在装人过程中每一个字节都校验,一旦目标存储器写人错,立即提示出错地

址,并自动终止装载。

DBUG对欲调试文件的文件名输入作如下约定:

.汇编语言程序经DBUG一次编译定位的HEX目标文件,可以直接输人目标文件名,扩

展名为.HEX,或输人源程序文件名,扩展名为.ASMo

.用INTEL宏汇编ASM51和8151编译连接定位的汇编语言程序,应输人源程序文件名,

扩展名为.ASM o

.用INTEL的PL/M51语言编写的程序,并已经PLM51和8151编译连接定位的,应输

人源程序文件名,扩展名为.PLM.

Page 26: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

22

.用Archimedes C-51语言编写的程序,经编译连接通过后,输人源程序文件名,扩展名为.Co

.DBUG支持对.HEX文件直接装人调试,所以用户可以使用任何编译连接程序,只要是最终产生INTEL的.HEX格式目标文件,DBUG也可装入调试,不过只能在机器码上调试。

以上2-4几种语言的编译连接须在DBUG之外进行,无误后转换成目标码 (INTEL标

准HEX格式),才能进人DBUG装人调试。

(5) Setup— 建立DBUG.CFG. DBUG用户界面的友好性还表现在:允许用户自行设计寄存器窗口的显示格式和内容,以便用户根据被调试程序中所使用的各种变量寄存器名 (包

括字节变量、位变量及特殊功能寄存器SFR)作为窗口显示内容,方便用户观察以及在调试

运行中修改这些变量。

寄存器窗口的格式与目标CPU的型号有关,DBUG可对每一种CPU都设计一个寄存器窗

口格式,即8051, 8052, 80652和8751格式,编辑窗口前应注意选择屏幕顶行目标CPU的型

号,Setup只允许编辑与目标CPU型号相应的窗口格式,在主菜单下可以使用Ctrl + E键选择目标CPU型号。

进人Setup模块,用户即可编辑这个窗口,这时光标停留在窗口左上角,移动光标到需要的位置,即可以输人字符和数字,DBUG规定,显示格式定义如下:

<变量名>=<地址)<类型符>

①变量名为:

.芯片内数据存储单元 (OOH一7FH)的符号名;

.可位寻址的位单元 (OOH一FFH)的符号名;

.SIR特殊功能寄存器名。 ②地址采用两位十六进制数,不要加前导零。

③类型符:

H或 . 十六进制方式显示。两位地址时,字节类型;四位地址时,字类型。

Q或% 二进制方式显示,字节类型。 空格 一位显示,位类型。

例如:程序中定义了以下几个变量名:

SW DATA 20H

IN FLAG BIT SW . 0

OUT FLAG BIT SW .1

则可以设计输人如下:

SW=20H IN_FLAG二00 OUT_FLAG=01 Sw=20Q

(或SW =20.SW.0二00 SW. 1=01 SW二20%)

TIMERO=8C8A. DPTR=8382. CY=D7

为了增加窗口的活跃性,允许用户把变量名定义串写到窗口的任意位置,还可以输人一

些图形符号或西文表格线条,其方法是用Alt键加键盘右边小键区的数字键。

在设计窗口时,要注意自顶向下逐行使用,不要出现空行,或者无效行,否则DBUG认

为窗口内容到此空行为止。

下列命令供编辑控制:

Page 27: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

2了

.命令F2— SAVE&UPDATA 编辑写盘并更新:

把用户编辑的窗口格式送人当前目录下DBUG.CFG中,同时更新内部显示参数,而且

下次启动DBUG时自动按新的格式显示。

.命令F3— UPDATA 更新:

仅把用户编辑的窗口格式更新内部显示参数,不送人DBUG.CFGo

.命令F4一一RESTORE 放弃并重装:

放弃当前编辑,从当前目录下把DBUG.CFG重装人窗口参数供用户编辑。

.命令F10-一一返回主菜单:

返回主菜单,寄存器窗口的显示将是用户编辑的格式。

(6)用户源程序文件的交叉汇编。将汇编源程序编译成可执行的代码文件。

(7) Dasm反汇编文件。将代码文件反汇编成助记符文件,反汇编模块将用户HEX文件

读人内存,并建立一张代码属性图,显示在 “MAP OF OBJ”窗口,其对应的数据显示在

"DATA OF OBJ'’窗口,在工作窗口显示反汇编后的助记符清单,用户可以用下列键查看窗

口内显示内容:

. Ctrl + PgUp 从首地址开始;

.PgUp, PgDn、个告 翻页卷行。 反汇编中所使用的SFR标号,是依照装人的HEX文件中所含CPU信息而定的,程序标

号及变量符号也是依照装入的HEX文件中有关信息自动恢复。如果不是由DBUG编译产生

的HEX文件,则由反汇编程序依照当前目标CPU生成SFR符号和程序符号。

下列命令提供给用户,以便对反汇编进行控制:

,命令G 从指定起始地址起条件反汇编HEX文件;

.命令B 把指定地址范围内的数据当做数据字节反汇编。

.命令W 把指定地址范围内的数据当做数据字反汇编。 .命令C 把指定地址范围内的反汇编结果清除。

.命令S 工作窗口显示方式转换开关。

.命令0 把反汇编结果用助记符文本形式存盘。 .命令F10 返回主菜单。

(8) RUN— 运行调试排错程序:

.命令F2, BP: Ctrl + B, BP 设置断点

Ctrl + T, BT 设置断点重复次数

.命令F3, PC 设置新的程序计数器PC值 Ctrl + N, New Pc 同上

.命令F4, Here 执行程序到光带处

.命令F5, Scal 宏单步 Ctrl + F5, AUTO Scat 自动宏单步

.命令F6, ZOOM 窗口变化

Ctrl + F6 窗口交换

.命令F7, Symbo】 标号开关

Page 28: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

24

Ctrl + F7 , Symbol List 标号窗口 .命令F8, Step 单步 Ctrl + F8 自动单步

.命令F9, Exec 连续执行

.命令F10, Menu 返回主菜单

(9) Quit一一退出DRUG:返回DOS操作系统。 四、调试运行

(一)概述

这是一个功能十分强的模块,它提供给用户许多丰富的调试运行命令。使用户在仿真调

试过程中,从运行程序、修改寄存器、存储数据,到修改程序都可以在模块内完成,而且非

常方便,不必去记忆查找SFR的地址,修改程序也是直接输人汇编语句。

通常在主机上完成各个操作,也可以直接对DICE操作,其效果一样。

DBUG具有标号/符号调试功能,在进入DRUG后首先执行LOAD操作,把欲调试的目标

代码装人DICE或用户系统 (注意:所装人的必须是代码文件),此时在工作区窗口上显示

用户源程序,用户程序中定义的程序标号、变量名、符号都能直接显示,调试程序直观方

便。

通常在LOAD模块装入代码文件成功之后,直接进人RUN,即可调试运行。

进人RUN模块,DBUG首先从当前串口的DICE仿真器上装入当前状态,并刷新显示寄存器和存储器窗口,在工作窗口从当前PC地址开始显示程序,符号 “>”指在某条语句的

行首,表示当前PC位置。

用户程序显示有三种方式,即源文件方式、标号方式和代码方式:

(1)源文件方式有效时,直接显示源文件。

(2)标号方式时,程序清单直接显示标号和反汇编语句,不显示地址和程序代码。

(3)代码方式时,程序清单显示地址、程序代码和反汇编语句。

按上下光标移动键个v , PgUP,飞Dn等,可以使光带在工作窗口上下移动,光带移动时,工作区窗口左下方显示光带所处指令位置的地址、当前PC地址值、断点地址及断点次

数。

存储器窗口显示当前选定的存储空间的数据。

寄存器窗口显示当前活动寄存器区RO一R7的内容及所有特殊功能寄存器SFR的内容

(寄存器窗口内显示的内容及显示格式,允许用户自行设计)‘:

(二)使用调试命令

1. F2或Ctrl + B— 设置断点/Ctrl + T一一设置断点次数

以下几种方法设置断点:

(1)使用ty键移动光带到要设置的断点处按F2键,则DBUG就把光带处的指令地址

作为断点记录下来,当用户欲设置的断点地址不在当前窗口内,可以先移屏。

(2)欲设置的断点地址不在当前窗口内,可以直接使用Ctrl + B命令设置,DBUG询问

地址,可以回答直接地址,也可以回答地址标号 (此时也可以用Ctrl + F7弹出标号窗口,再

使用光标控制键浏览全部的标号,移动光带到目标行上,按回车键,则可以把光带处的地址

设为断点)。

Page 29: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

25

(3)也可以在标号窗口内直接设置断点,用Ctrl十脚键激活标号窗口,移动光带到目标

标号上,按F2键,则可以把光带处的标号地址设为断点。

不论何种方式设置断点,都必须注意断点位置的正确选择,DBUG采用在断点处替换三

个字节指令的方法,实现用户程序暂停。因此,断点地址必须是用户程序能够执行到的地

址,而且保证断点处的存储器必须是RAM (DBUG不支持在EEPROM设断点)。

下面的例子说明断点位置的正确设置:

例①、RETRA: ACALL SUBJECT

JC EXIT

SJMP RETRI ;注工

SUBJECT: ADD A,#5

例②、 LCALL WAITKB

MOV KB, A

ACALL UDELAY

RET ;注II

UDELAY: MOV R7, #0

DJNZ R7, $

RET

注工处不能设置断点:如果在此设置断点,则SJMP起三个字节被置换,因SJMP是二

字节指令,在执行到SUBJECT子程序时,第一个指令的第一个字节被置换,引起出错。注

II处也不能设置断点:因为此处RET以及标号UDELAY处二字节指令被置换,程序不能正

常执行。

2. F3或Ctrl十N— 设置新的PC

移动个十键使光带停留在新的指令处,按Ctrl十N键,则光带处的地址作为新的PC被

设置,若使用F3键,DRUG则询问新的地址值,回答十六进制地址或标号地址,缺省时按

光带处地址设置,新的PC值被设置后,程序清单从新的PC地址起刷新屏幕。

3. F4— 直接运行程序到光带处 DBUG还提供一个Here命令,用户只要移动光带,越过一些指令,使光带停在目标指令

上,按F4键使程序全速运行到 “这里”。这个功能使用户不用通过设置断点的方式,直接运

行程序。显然给调试带来很大方便。

He。命令在执行期间,暂时挂起用户先前已设置的断点,待程序执行到 “这里”后,

用户原有的断点状态再恢复。

Here命令的实现,实质上是DBUG在光带处设置断点,再直接运行程序到光带处的方式进行的。

在EPROM, EEPROM中不能使用本命令。 4. F5或Ctrl+F5— 宏单步SCAL

DBUG也可以执行宏单步命令。若当前指令为一条调用指令时,SCAL把调用的模块,

作为一个单步来执行,而且是全速的,这对于被调用模块是个延时或者是一个已调试好的模

块时,是非常有用的。尤其执行SCAL命令时,不需要设置断点,所以SCAL命令可在不同

Page 30: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

26

类型的存储器空间直接使用。用户在编写自己的程序时,应具有模块化风格,这样不仅有助

于调试,而且使自己的程序在可读性、可构造方面有很大益处。

宏单步SCAL在处理非调用指令时,如同单步命令一样。在宏单步命令执行调用命令期

间,不理会断点。

必须说明的是:如果用户宏单步执行一个子程序,而该子程序中对返回地址进行修改或

更改SP指针的值,都可能导致宏单步失败!

Ctrl + F5— 为自动宏单步运行。

5. F6或Ctrl十F6-— 窗口尺寸变化

需要调整窗口的尺寸时,按F6键调整当前光标或光带所在窗口的尺寸,直到满意。只

有工作窗口、寄存器窗口、存储器窗口可以调整。

Ctrl + F6— 为寄存器窗口和变量窗口变换显示。

6. F7或Ctrl + F7— 标号开关及标号窗口

工作窗口有三种方式,按F7键可以使工作区窗口的显示方式在标号或非标号方式或源

文件方式中切换。

在非标号方式下,窗口显示十六进制地址、程序代码及反汇编程序清单。

在标号方式下,窗口显示程序标号、用户程序语句,简洁直观,与用户的原汇编文件极

为相似,提高调试效率。

源文件方式下,程序直读性好,并有利于高级语言调试。

Ctrl +卯— 使用此键可以弹出标号窗口,并显示所有标号/符号,可以使用光标控制键

浏览信息。移动光带到目标标号/符号上。按回车键,可以把光带处的标号所对应的地址,

带出到行汇编语句内或各个使用标号的对话窗口内。

7. F8或Ctrl十18— 单步

此键为单步指令执行键,每按一次F8键,DBUG就向DICE发单步执行命令,并把DICE的执行结果装人,刷新显示寄存器窗口和存储器窗口,移动工作区窗口光带到下一条欲执行

的指令处。

若想自动连续执行单步,则按Ctrl + f8键,这时,DBUG自动一步一步地不断的执行指

令,按任意键即停。

8. F9— 连续执行

全速执行用户程序,遇断点暂停。

9. F10-一一返回主菜单Menu

10. Ctrl + P— 打开厂关闭打印机

在调试程序RUN模块下,使用Ctrl十P可以连接打印机,每次运行程序的结果的部分内

容可以送打印机输出,以便分析程序运行的踪迹。送打印机输出的内容有程序清单A, B,

PSW, RO一R7。再按Ctrl + P键即关闭打印机。 11.Ctrl+0--重新装人状态现场并刷新屏幕

从对应串行口上装人DICE的状态及用户现场,并刷新屏幕显示。 12. Ctrl + G一一一窗口从指定地址显示

在RUN模块下,可以用Ctrl + G命令在工作区窗口对指定地址的程序进行列表,按下

Ctrl + G键询问列表的起始地址,此时可以用十六进制、也可以用标号地址回答,缺省地址

Page 31: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

27

时,DBUG把光带处地址作起始地址进行列表。

光标进人存储器窗口时,也可以使用Ctrl + G命令指定显示地址。

13. Ctrl+A— 行汇编

DBUG为用户提供了直接用汇编语言修改程序的功能,移动4十键使光带移动到欲修改

的地方,直接输人一行汇编语言,DBUG立即将这一行语句编译成目标代码,并写人DICE

程序区或用户系统。

在输人一行语句时,如果语句中需要输人标号或源程序中已定义的符号,只要按Ctrl +

”激活标号窗口,寻找所需标号或符号,按回车键即可,相应的地址或数值就写到语句中去了。

用户可以在指定地址增加新的标号,标号长度不超过18字节,行汇编支持少量伪指令

(ORG, DB, DW等)。输人源语句时,所有语法都和交叉汇编所要求的一样,其中所使用的

SFR标号和顶行CPU信息有关。须注意所有数值必须明确标明数制,字母打头的数据注意加前导零。

Ctrl十A键也激活行汇编,但它先询问行汇编地址。

14.一。工作区窗口列表向前或向后移动一个字节

当RUN模块的工作区窗口的光带处在顶行时,可以使窗口列表向前或向后移动一个字

节,方便用户调整工作区窗口列表显示。

(三)数据块操作

DBUG提供了一组数据块操作命令,使用Shift键与功能键联用。

数据块比较和移动时,必须注意方向问题。DICE机规定源数据块用取指令的方式取数

据,目标数据块用读写方式读写数据,因此有以下几种情况:

①DICE内部移动、比较,采用模式0;

②用户系统程序区或数据区与DICE存储器空间移动、比较,采用模式1;

③DICE机上程序或数据,与用户数据区移动、比较,采用模式2;

④用户系统上程序区与数据区移动、比较,采用模式30 1. Shift + F2一一比较

源数据块与目标数据块比较,比较不同时,屏幕显示数据不同处的地址与数据。

2. Shift+F3— 移动

源数据块移动到目标地址处,包括DICE机与用户系统之间互相传递。若用户系统的目

标空间上使用了EEPROM,而且目标空间是可写的,直接把数据块代码写到这个EEPROM空

间,是非常实用的。

3.Shift十F4一一填充

数据块填充命令,在指定的地址范围内,用某一字节数据填充。

4. Shift + F5— 寻找相同关键字节

在指定数据块范围内寻找与关键字节相同数据的地址。找到时,显示地址及数据。 5. Shift + F6-一一寻找不同关键字节

在指定数据块范围内寻找与关键字节不相同数据的地址。找到时,显示地址及数据。 6. Shift十17— 保存程序代码到磁盘文件

将DICE仿真器内存或用户系统中程序代码,以HEX形式送到磁盘文件,并把当前目标

Page 32: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

28

CPU信息也写到文件中。 (四)窗口屏幕修改

DBUG提供的窗口屏幕修改是非常有用的功能,它支持用户自行设计窗口内数据的显示格式及需要显示的内容,给用户调试程序带来了机动性。这样,就可以把所调试的程序中定

义的各个变量的值显示在窗口中 (只要把所调试的程序中定义的各个变量符号写到窗口中即

可)。当用户想对寄存器窗口和存储器窗口的内容进行修改时,可按Shift + Tal〕键或Tab键,

屏幕光标跳到寄存器窗口和存储器窗口,此时使用光标移动键和空格键可以使光标在窗口屏

幕内自由移动,并可在光标位置处直接修改数据。每次修改的数据,都被送往DICE仿真器,因此用户在修改SFR时,有些寄存器的修改必须注意修改次序,如定时器模式应先于

定时器控制、串行口模式先于串行口控制。

第二节 交叉汇编中使用的运算符及伪指令的使用说明

所谓交叉汇编,就是利用主计算机,在它的整个系统支持下,用户可以建立其它异种计

算机 (如MCS-51)的汇编语言源文件,并在主机上完成符号指令到机器代码之间的转换,而生成的机器代码程序不能在主机上运行。

一、运算符十、一、HIGH, LOW

(1)运算符 “十”、“一”在表达式中作正负号或作加减运算符。 如:$一n 定位计数器的当前值一偏移量n

$ +n 定位计数器的当前值+偏移量n

(2)运算符 “HIGH”把紧跟其后括号内的表达式的值取高位字节。

(3)运算符 “LOW'’把紧跟其后括号内的表达式的值取低位字节。

如: DEL_VAL EQU 103AH MOV A,#0

DELAS: LCALL SUB1

CJNE A,#5,$一3

SUBI: MOV R6,#HIGH (DEI_VAL)

MOV R7,#LOW (DEL_VAL)

DJNZ R7,多

DJNZ R6,$一4

INC A

RET

二、伪指令

伪指令可分为以下几类:数据定义、符号定义和汇编命令。

1.数据定义

(1)DB

用途:给存储器赋初值,可分配一个或多个字节。 格式:DB表达式

Page 33: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

2夕

说明:表达式可以是下列的一种形式:

①无符号数,其值范围为0一255;

②有符号数,其值范围为一128一127; ③SFR寄存器名、位变量名;

④一个或多个常数;

⑤一个字符或字符串。

(2) DW

用途:给存储器赋初值,可分配一个字或多个字 (双字节)。

格式:DW表达式

说明:表达式可以是下列的一种形式:

①无符号数,其值的范围为0一65535;

②有符号数,其值的范围为一32768一32767;

③程序中的标号;

④一个或多个常数。

(3) DS

用途:保留存储空间。

格式:DS常数

说明:该指令保留由常数给定字节长的存储空间,并均填充以零值。

2.符号定义

(1)EQU或= 用途:给一个表达式的值或一个字符串起一个名字。

格式:名字EQU表达式 或:名字二表达式 说明:名字必须是字母打头的字母数字串,且必须是先前未定义过的。使用 “二”时,

前后可以不留空格。

(2) XDATA

用途:给一个8位的外部存储单元或数据单元起一个名字。

格式:名字XDATA直接字节地址

说明:同一个单元地址可以有多个名字。

(3) DATA

用途:给一个8位的内部存储单元或数据单元起一个名字。

格式:名字DATA直接字节地址

说明:同一个单元地址可以有多个名字。

(4) BIT

用途:给一个可位寻址的单元起一个名字。

格式:名字BIT位地址

说明:同一个位地址可以有多个名字。

3.汇编命令

(1)8xxxx

用途:指定使用某个型号的CPU所包含的SFR标号。

Page 34: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

了0

格式:8xxxx

说明:在程序的首部使用该语句,通知汇编系统使用与该CPU相应的SFR标号,可使

用的CPU型号有:8031, 8032, 8051, 8052, 80652, 80552, 8751等,缺省时按屏幕顶行的状态行目标CPU信息而定。

(2) ORG

用途:给程序段定位。

格式:ORG表达式

说明:通知汇编系统把表达式的值装人定位计数器,作新的起始地址继续汇编,这个值

不能小于定位计数器原有计数值。

(3) END

用途:标示程序段结束。

格式:END

说明:在汇编过程中只要一遇到该指令,汇编即告结束,不管该指令后面是否还有其它

指令。

第三节 错误信息

一一一一j塑煲重竺一止一川一乙一一止上ff止一二-一 Syntax error { 语法错 Extra characters on line 有多余的字符

q)rands is lost 丢失操作数

ORG address is less 无效的ORG地址 (地址小)

Invalid operand 无效的操作数

Invalid instruction 无效的指令

Invalid data 无效的数据

Multi-defined 标号多重定义

Undefined table 标号未定义

Address out of range 地址溢出

Invalid source file 无效的源文件

Page 35: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

第四章 单片机实验

实验一 熟悉DICE仿真系统的操作

一、实验目的

熟悉DICE仿真系统的常用功能及操作方法。

二、实验设备

DICE仿真系统 一台 5V直流稳压电源 一台

三、实验准备工作及注意事项

(1)先启动稳压电源,将输出电压调到5V15%o

(2)再将仿真系统的电源线按标识接好,注意正负极性。

(3)接通电源后,数码管最左边一位显示 “P. 11,说明仿真系统工作正常。如果不出现

11 P. 11,则马上断电并报告指导教师检查原因。

四、实验内容

以给定程序为例,对程序进行六种操作:

(1)熟悉通过键盘命令输人程序的操作,并检查输人程序的正确性。

(2)通过显示器的显示,以及操作 [REG]键检查相关寄存器的内容。

(3)单拍执行程序,并检查程序运行后各相关寄存器的内容,简单了解调试程序的过

程。单拍执行程序速度特别慢。

(4)非全速断点执行程序,了解调试程序的第二种方法。非全速断点执行程序解决了单

拍执行程序时存在的问题,调试延时程序方便易行。

(5)全速断点执行程序,了解调试程序的第三种方法。全速断点执行程序为用户提供了

检测用户CPU定时响应中断的速度或定时精度提供了方便。

(6)连续执行程序,了解程序运行结果。连续执行程序为用户仿真调试应用系统提供了

十分有效的手段。

现给定程序如下:

源 程 序 目 标 程 序

ORG OOOOH 地址 机器码

LJMP MAIN 0000 0201 00

ORG OlOOH

MAIN; MOV R0,#30H 0100 7830

MOV R7,#10H 0102 7F 10

MOV A,#OOH 0104 7400

Page 36: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

了a

(续)

于寸井布 五、实验步骤与操作方法

(1)通过键盘操作,将上述程序输入仿真系统。

一 检查输入程序的正确性,发现错误及时改正。

(2)在未执行程序前,先检查有关寄存器的内容并记录下来,填写在表4-1中。

例:EO (A累加器地址)[REG] EOXX;显示出A的内容

Page 37: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

了了

(3)单拍执行程序,并逐条检查执行结果。填写在表4-2中。

(4)非全速断点执行程序,检查中间结果和最终结果。

例:「MON] 0106 [Fl」 0001 [F2] 0000 [NVBP]

[MON ] 010B [Fl〕 0001 [ F21 0106 [ NVBP ]

(5)全速断点执行程序,检查运行结果。

(6)连续执行程序,检查运行结果。

表 4-1

告升N a#;tc17S JAI! F 表 4-2

幸立

Page 38: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

34

六、计算相对转移偏移量命令— OFST键的使用

仁OFST)键命令的功能,是用来计算MCS-51指令系统中,相对转移偏移指令的操作数

— 偏移量。[ OFST]键命令只在存储器读写状态有效。

先在需要填人偏移量的单元内填人所要转移的目标地址的低字节,然后按 〔OFST」键,

该单元的内容立即转变成所要求的偏移量,也就是自动将偏移量填人。此时计算机仍处于存

储器读写状态,用户可直接继续输人程序。

以上例说明:

下 实验二 MCS一51指令学习

一、实验目的

8031单片机可接受共111条机器语言指令,这些指令按功能的不同可分为五类:29条

数据传送类指令,24条算术运算类指令,24条逻辑运算类指令,17条控制转移类指令和17

条位操作类指令。本实验通过显示子程序中各类指令执行状况,来进一步学习和理解各类主

要指令的功能,掌握指令的用法。

二、实验设备

DICE仿真系统 一台 5V直流稳压电源 一台

Page 39: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

了5

三、实验准备工作

(1)先启动稳压电源,将输出电压调到5V15%.

(2)再将仿真系统电源线与稳压电源连接好。

(3)参考实验一程序输人操作,将下段程序输人,并检查程序输人的正确性,确保正

确。

ORG OOOOH 地址 代码

LCALL SUBROUT 0000 121000

MAIN: MOV B, A 0003 F5F0

ANL A, # OFH 0005 54OF

MOV RI,# 7EH 0007 797E

MOV DPTR,#TAB 0009 900020

MOVC A, @ A + DPTR OOOC 93

MOV @ RI,A OOOD F7

XCH A, B 000E C5F0

SWAP A 0010 C4

ANL A,#OFH 0011 54OF

MOV RI,#7FH 0013 797F

MOV DPPR,#TAB 0015 900020

MOVC A, @A+DPPR 001893

MOV @ Rl,A 0019 F7

DISP: LCALL LIST 001A 122000

IJMP DISP OOID 02001A

TAB: DB OCOH, OF9H, OA4H 0020 CO F9 A4

DB OBOH, 99H, 92H, 82H 0023 BO 99 92 82

DB OF8H, 80H, 90H, 88H 0027 F8 80 90 88

DB 83H, OC6H, OATH, 86H 002B 83 C6 Al 86

DB 8EH 002F 8E

ORG 2000H

LIST: MOV R0,#34 2000 7822

MOV A, 7EH 2002 E57E

MOVX @ R0, A 2004凡

MOV Rl,#33 2005 7921

MOV A,#OIH 2007 7401

MOVX @ R1, A 2009 F3

LCALL DELAY 200A 122030

MOV R0,#34 200D 7822

MOV A, 7FH 20OF E57F

MOVX @ R0, A 2011 F2

MOV RI,#33 2012 7921

MOV A, # 02H 2014 7402

MOVX @ RI, A 2016 F3

LCALL DELAY }2017 122030 RET }201A 22

ORG 2030H }

DELAY: MOV R2, #08H }2030 7A 08

LCALL OFFEBH }2032 12吓 EB

:.引RET 一2035 22

Page 40: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

36

四、实验内容

将以下各部分实验中所给出的子程序的指令的机器代码查出,并输人到单片机中,然后

从主程序地址OOOOH开始执行,观察并记录显示器内容。

(一)数据传送与算术运算

(1)体会MOV Rn, direct指令的功能和用法,这里取n二0, direct二40H;子程序如下:

ORG 1000H

SUBROUT: MOV 40H,#OFH ;OFH送人R.AM中40H单元

MOV RO, 40H ;40H内容送RO

MOV A, RO ;RO内容送累加器A

RET ;返回主程序

执行结果显示:

(2)体会指令MOV @ Ri, # DATA的功能和用法,选择DATA = OFH, i = 0子程序如下:

ORG 1000H

SUBROUT: MOV R0,#40H ;(RO) -40H

MOV @R0,#OFH ;((RO))}OFH

MOV A, 40H ;AF- (40H)

RET

执行结果显示:

(3)体会外部传送指令MOVC A, @A十DPTR的功能和用法,子程序如下: ORG 1000H

SUBROUT: MOV A,#12H

MOV DPTR,#2000H

MOW A, @ A+DPTR,

RET

执行结果显示:

(4)用加法指令ADD A, RO实现两数相加,如52H十FCH。子程序如下:

ORG 1000H

SUBROUT:MOV A,#52H ;(A) -52H

MOV RO,#OFCH ;(RO) -OFCH

ADD A, RO ;(A)~ (A)+(RO)

RET

执行结果显示:

(5)用带进位加法指令ADDC A, RO实现52H与OCH之和,子程序如下:

ORG 1000H

SUBROUT: MOV A, #52H

MOV R0, #OCH

SETB C

ADDC A, RO

RET

Page 41: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

了夕

执行结果显示:_ ,若将SETB C指令改为CLR C,执行后结果显示为

(6)体会十进制调整指令DA A的功能和用法,子程序如下:

ORG 1000H

SUBROUT: MOV A,#65H

ADD A,#58H

DA A

RET

执 行后显示结果为: 。若将 DA A指令用 NOP代替,则显示为

(7)用乘法指令MUL AB进行〔1FFH x 03H,子程序如下:

ORG 1000H

SUBROUT: MOV A, #OFFH

MOV B, #03H

MUL AB

一NOP

NOP

fiET

执行后显示结果为:_ ,将2个空操作换成MOV A, B,执行结果显示

_ 。最后OFFH x 03H = ,是否等于B与A内容的和_ ?

(二)逻辑运算和循环运算

1.逻辑 “与”指令实验 子程序如下:

ORG IOOOH

SUBROUT: MOV A,#OFBH

ANL A,#OFH

RET

执行后应显示OBH。实验结果是否正确?

2.逻辑 “或”指令实验

子程序如下:

ORG 1000H

SUBROUT: MOV R1,#05H

MOV A, #33H

ORL A, Rl

RET

执行结果显示

3.逻辑 “异或”指令实验

子程序如下:

ORG 1000H

Page 42: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

38

SUBROUT: MOV A,#55H

MOV 40H, #OOH

XRL A, 40H

RET

执行结果显示_ ,将MOV 40H, # OOH改为MOV 40H, # 55H,结果应显示为 O

4.利用左移指令实现乘2运算

子程序如下:

ORG 1000H

SUBROUT: MOV A,#29H

RLC A

RET

结果显示为_ 。 5.利用循环移位指令实现累加器A中内容高半字节与低半字节互换,子程序如下:

ORG 1000H

SUBROUT: MOV A,#38H

RL A

RL A

RL A

RL A

RET

结果显示为_ ,改用RR A指令重新实验一下。

(三)位操作指令的功能和用法

利用位条件转移指令实现两个无符号数比较大小,子程序如下:

ORG 1000H

SUBROUT: MOV 30H, #DATAl

MOV 31H, #DATA2

MOV A, 30H

口NE A, 31 H, BIG

MOV A,#ODDH

RET

BIG: 3C SMALL

MOV A,#OFOH

RET

SMAU: MOV A,#OFH

RET

分析显示结果

Page 43: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

了9

实验三 I/0口简单实验

一、实验目的

利用8031单片机P1口,作为vo口,学会使用P1口作为输人口和输出口。

注意:

①开关输人时必要的消除抖动措施 (软件或硬件实现);

②输出接外设时,要根据外设负载大小选择不同的驱动电路。

二、实验设备 厂一.- i

DICE仿真系统 一台 1 一} 占 5V直流稳压电源 一台 }单 } 甲一

万用表 一块 !协 P171 ---FA--I

单片机实验系统 一台 }Az ! :'XJS

导线 若干 }统 一一} }‘、 人_三,_。_ 一之 } } LED本狠 仿真电缆 一条 匕一二少分一=习” 三、实验准备工作

(I)按电路图4-1所示接线。并用万用表检查线路是否连 图4-1 v0口简单实验通好。

(2)先启动稳压电源,将其输出电压调到5V士5%0

(3)再将仿真系统电源线与稳压电源连接。

四、实验内容

编制一段程序,使得开关每按下一次,发光二极管状态翻转 (由亮~灭,或由灭一亮)

一次。

五、实验步骤

(1)先编制实现20ms延时子程序,将全部程序译成机器码的目标程序,并注明各条指令的作用。

(2)通过键盘操作,将目标程序送人仿真系统内,并执行。

(3)按动开关,观察发光二极管的变化情况。

(4)实现软件消除抖动的方法,并查阅资料完成一个用硬件方法消除抖动的电路图,在

实验中完成之。

实验四 中 断

一、实验目的

了解8031单片机的两个外部中断丽丽和IN丽,学习进人中断服务程序的有关操作,掌

握编程方法。

二、实验设备

DICE仿真系统 一台

仿真电缆 一条

Page 44: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

40

5V直流稳压电源 一台

单片机实验系统 一台

导线 若干

三、实验内容

1。简单的中断实验

利用外部中断源INTO, INT1实现中断,其中INT1设置为高优先极,IN丽为低优先极,开

机执行主程序时,显示OOH,当有低优先极中断发生时,显示OFH;当有高优先极中断发生

时,显示FOH.

(1)实验电路:

片 图4-2 简单中断实验

(2)实验参考程序: ORG OOOOH

Limp MAIN ;0000 0201 00

ORG 0100H

MAIN: MOV IE, # 85H ;0100 75 A8 85 开总中断,INTO和INTI

SETB PX1 ;0103 D2 BA 置[NT1为高优先极

MOV 20H, # OOH ;0105 75 20 00 设置显示初值

DISP: MOV B, 20H ;0108 80 20 FO 暂存内容至B

MOV A, B ;OlOB E5 FO

ANL A,#OFH ;0101) 54 OF

MOV III,#7EH ;01OF 79 7E

MOV DPTR,#TAB ;0111 900128

MOVC A, @A+DPTR ;0114 93

MOV @ R 1,A ;0115 F7

XCH A, B ;0116 C5印

SWAP A ;0118 C4

ANL A, #OFH ;0119 54 OF

MOV Rl, #7FH ;011B 79 7F

MOV DPTB, #TAB ;011 D 9001 28

MOVC A, @ A+DPTR ;0120 93

MOV @ Rl,A ;0121 F7

LCALL LIST ;0122 12 2000

Page 45: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

41

UMP DISP ;0125 0201 08

TAB: DB OCOH, OF9H, OA4H ;0128 CO F9 A4

DB OBOH, 99H, 92H, 82H ;012B BO 99 92 82

DB OF8H, 80H, 90H, 88H ;012F F8 80 90 88

DB 83H, OC6H, OATH ;0133 83 C6 Al

DB 86H, 8EH ;0136 86 8E

ORG 2000H ;显示子程序

LIST: mov RO,#34 ;2000 7822

mov A, 7EH ;2002 E5 7E

MOVX @ RO,A ;2004 F2

mov Rl,#33 ;2005 79 21

mov A,#OIH ;20077401

MOVX @ Rl,A ;2009 F3

LCALL DELAY ;200A 12 20 30

mov R0,#34 ;200D 78 22

mov A, 7FH ;20OF E5 7F

MOVX @ R0, A ;2011 F2

mov R1, #33 ;2012 79 21

mov A,#02H ;2014 74 02

MOVX @ Rl,A ;2016 F3

LCALL DELAY ;2017 12 20 30

RET ;201A 22

ORG 2030H ;延时子程序

DELAY; MOV R2,#08H ;2030 7A 08

LCALL OFFEBH ;2032 12 FF EB

RET ;2035 22

um 中断服务子程序 ORG 0003H

INTO: MOV 20H,#OFH

RETI

INT1中断服务子程序 ORG 0013H

EVT1: MOV 20H,#OFOH

RETI

(3)实验步骤:

①按图4-2连接好线路,查出实验程序的机器码,并输人到仿真系统中,然后运行。

②按动两个中断键可观察到两个不同的中断的显示结果。

③同时按下两个中断键,将出现什么现象?为什么?

(4)实验记录:

Page 46: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

42

2.利用中断进行数据采集: 本实验中,利用开关量来置人一组数据。 一 1

(1)实验电路:如图4-3. Vcc— 一下一一一可一-, (2)实验程序:(自编) 浅 人 人

注意在中断服务程序中加人软件延时,以消除按 叠 : R‘日’..R8} RII二 ,,,_,_,_ 、 , ,, 」_:._‘,.,、,,~ :,_,一 ~ :、 系 P l0 }--- 一一一月 1 {键的抖动现象,另外,在中断服务程序中加人等待按 统 P; ---丰一一习 }

键抬起的键查询程序,以达到每有一次中断发生只采‘塑INTO一丰一一丰川集一个数据。采集的数据存放在3000H开始的单元中。 s1.\-1:s::\一}入一{s

(3)实验排 : 一一一OND r一一 ①按图4-3连接好线路,查出实验程序的机器码,

并输入到仿真系统中,然后运行。 图43数据采集 ②拨动开关Si一S8设置好一组数据后,按下按键s发出中断申请,主机得到申请后执

行中断服务子程序读入该组数据,并存入3000H开始的存储区,同时显示器上显示读人数据。

③停止运行,检查3000H单元开始的存储区。

(4)实验记录:

实验五 定时/计数器工作方式

一、实验目的

掌握定时/计数器T0, T1工作方式,以及进人内部中断的有关操作和编程方法。

二、实验设备

DICE仿真系统 一台 仿真电缆 一条

5V直流稳压电源 一台 单片机实验系统 一台

三、实验内容

(1) A累加器原有数据01H,利用TO定时功能实现每隔I秒钟时间使累加器内容循环

左移 1位。

(2)用P1口作为输出口,将累加器A的内容送到发光二极管上显示出来。

闯,LED s 8 图44 发光二极管显示

Page 47: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

43

四、实验参考流程

唇誉 图4-5程序流程图

五、实验步骤

(1)按图4-5程序流程图编制程序。

(2)按图4-4连接线路,检查线路是否正确。

(3)输人程序,启动运行,验证程序的正确性。

六、思考题

(1)若将累加器内容改为FEH,程序运行结果如何?将A内容改为55H又如何?

(2)若想调整发光二极管显示变化的快慢,应该如何修改程序?

(3)若定时/计数器采用查询方式工作,试画出程序流程图。

实验六 MCS-51单片机通信实验

一、实验目的

(1)掌握计算机通信的方法。

(2)掌握单片机通信程序编制。

二、实验设备

DICE仿真系统 一套仿真电缆 一条

多路稳压电源 (士5V,土15V) 一台单片机实验系统 一台

三、实验原理

本实验要求利用单片机的全双工串行通信口进行串行输出的实验。单片机通过串行通信

Page 48: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

44

口向外发送数据 (移位寄存器方式),经过串/并转换芯片74LS 164转换为并行的八位数据,

在LED数码管上显示,以理解和掌握单片机串行通信的工作原理。

在进行串行输出实验时,74LS164的清除端CLR已经恒接高电平,始终让74LS164处于接收数据的状态;单片机的RXD (P3. 0 )为串行输出端,与74LS164的数据输人端SIA, SIB

(1, 2管脚)相连;单片机的TXD ( P3. 1)为移位脉冲输出,与74LS164的时钟脉冲输人端

CLK (8管脚)相连。

7415164的管脚图及功能见图4-6所示。 四、实验接线方法

实验时,把74LS164的电源VCC用跳线器接通,把RXD, TXI〕与单片机的RXD, TXD

相连。把74LS164的数据输出 (8位)接至LED数码管的段控驱动器74LS541,而LED数码

管的位控驱动器的某位恒接地,以便显示输出。

五、74LS164管脚图、功能图及功能表

SIA— 1 N-114— Vrr ’ 一 QO 4, 4r SIB— 2 13— 07 SIA一 — 01 一一一一一一一一一一一—

00 - 1 12- 06 SIB一 功 — CLR SIA SIB CLK QO Q1 Q2 Q3 Q4 Q5 Q6 Q7

丫” ’三 }' 能 0 X X X 0 0 0 0 0 0 0 0 02 — 5 10一 04 — . I I I f I nNni}rn 'nz'"AIn<Ir

Q3— 6 9 - CLR CLK一,) 图 — . 1 0 X 1 0 00'01'02'03'04'05'06'

GND - 二一一二卜一 CLK CLR -C 一 I X 0 1 0 QO' Q I' Q2' Q3' Q4' Q5' Q6' — Q7

图4-6 74LS164管脚、功能图及功能表

六、实验内容与步骤

(1)按要求连接线路。 (2)编写MCS-51机串行通信程序,并把程序输人。运行之。

实验七 I/0口扩展实验

一、实验目的

学习vo扩展电路连接方法,掌握8255工作方式。

二、实验设备

DICE仿真系统 一台 仿真电缆 一条

单片机实验系统 一台

5V直流稳压电源 一台 三、实验要求

(1)设8255的A口为基本输人方式,B口为基本输出方式。

(2) A口连接一组 (八个)开关模拟输人数据,B口连接一组 (八个)发光二极管能实时将A口的状态显示出来。

四、实验内容

(1)按要求设计实验电路。

Page 49: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

45

(2)自编程序实现上述要求。

(3)把程序输人到仿真系统中。

(4)运行程序,验证软件、硬件的正确性。

五、实验参考电路

砂一 图4-7 8255扩展连接线路图

实验八 A/D转换实验

一、实验目的

(1)掌握ADC0809与8031接口电路设计方法与A/D转换程序设计方法。 (2)了解A/D转换器ADC0809的工作原理。

二、实验设备

DICE仿真系统 一套 仿真电缆 一条

多路稳压电源 (士5V,土15V)一台

单片机实验系统 一台

三、实验原理

ADC0809芯片带有八路模拟开关,可进行八路模/数转换,在图4-8中74LS373锁存器的

低三位输出与ADC0809的A,B,C相连,因此通过低三位A, B, C的值,可选通ADC0809

的八路模拟开关,使模拟量输人。当A/D转换结束时,ADC0809的EOC端将上升为高电平。8031的ALE信号,给ADC0809提供时钟信号。当START收到启动信号,启动0809,将外部

输人的模拟量转化为数字量。EOC为高电平时可读取A/D转换结果。

四、实验线路

实验线路见图4-8. 五、实验内容与步骤

(1)按图4-8连接电路。

Page 50: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

4石

叮烈.一可蕊飞k EPROM

I I } I A, 一一-- a r VREF(+)卜 -— 〔)斗5V

I } I 丫 模拟信

匕甘作 IN7 "7-_ WR }} ALERD STARTOECS 号输‘ 图48 ADC0809与8031接口

(2)将模拟量输人端输入直流电压1V, 2V, 3V, 4V, 5V0 (3)将编制好的程序送入开发装置,执行程序,记录下A/D转换结果。结果存人30H

开始的80个单元。

六、思考题

(1)如何提高输出精度?

(2)不改变实验线路,试编写一个程序,CPU用查询方式读取A/D转换结果。

实验九 D/A转换实验

一、实验目的

(1)掌握DAC0832与8031的接口方法。

(2)掌握D/A转换程序的设计方法。

二、实验设备

DICE仿真系统 一套 仿真电缆 一条

多路稳压电源 (t 5V, t 15V) 一台 示波器 一台

LM324 一片

电位器 一个

单片机实验系统 一台

三、实验原理

本实验采用DAC0832电流输出的D/A转换芯片,但实际应用中需要电压输出的形式,

Page 51: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

47

所以接上运放来实现电流转换为电压。

在本实验中,数据线接到8031的PO口,片选信号砚由P2.5控制。当数字量输人在。一FF范围时,电压的输出为0一+xv或0一 xV,则这种方式称单极性输出;若电压的输

出为士xv,则称为双极性输出。在实际应用中有时不仅需要单极性输出,还需要双极性输

出,所以在电路中应用了双运放I.M324来实现二种极性输出。在本实验电路中,运放第7端

输出为单极性0一 5V, 1端输出为双极性1 5Vo

在本实验中,万ER和WR2同时与DGNI〕连接,丽雨与8031的代丽丽连接,这样八位DAC0832的寄存器始终处于导通状态,因此当数据从数据线上由丽选通后输人八位数据送到

DAC寄存器时,DAC0832马上进行转换,经运放放大后输出电压信号。

四、实验线路

万 图49 DA00832与8031接口

五、实验内容与步骤

(1)按图4-9连接电路。检查无误后接通电源。

(2)试编写一个程序,使0832输出为正弦波波形。

(3)试编写一个程序,使0832输出为正三角波形。

(4)输入程序运行,用示波器观察0832输出的波形。

六、思考题

(1) DAC0832有几路输出方式?如何使用?本实验采用的是什么方式?如果有多个

DAC0832同时连接在8031单片机上,若想让它们同时进行转换,如何操作?

(2)如何保证输出精度?

(3)对于D/A转换器来说,为什么不把模拟地AGND和数字地DGND连接在一起?这

样作的目的是什么?

Page 52: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

48

实验十 8031与8155接口扩展

一、实验目的

(1)掌握8031单片机输人输出接口扩展方法。

(2)熟悉8155芯片性能,掌握其编程方法。

二、实验设备

DICE仿真系统 一套 仿真电缆 一条

多路稳压电源 (土5V,土15V) 一台 单片机实验系统 一台

三、实验线路

r,一一 一-一一0 十5V

8031 8155 内 肖 肖

、 AD0 _ 丫 丫 丫 、、_

PO 户 : I } { 、、 I 一一- - 7 AD7 I.— 1 1

一 PA < 1 1

_ RST 卜--0 +SV } 一 ALE— ALE 一肖 一 I

亿卜一 CE

P20 0-'一一.IO/M I 一一‘J fl9lh I _ _ PB< 一 I 1-} I WR — WR } : I,I lc I

RD— RD 2004.8匕 0 np I Tin Tout 1人厂一一几— 士 sl一

+i og Ik4

图4-10 8031与8155接口

四、实验内容与步骤

1.按图4-10连接线路,确定8155各口地址和8155的RAM地址。

2.编制程序使PA口开关数据输人后,从PB口输出。

3.编制程序将PA口开关数据送人8155的60H单元,然后调出送PB口。同时8155的

Tout输出10分频方波。 4.从P1.0口输出一系列脉冲至8155的Tin管脚,将8155计数值读人40H, 41 H, 42H,

43H,轮流在PB口上输出段选码。

Page 53: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

49

实验十一 8031与8253接口扩展实验

一、实验目的

(1)掌握8253的各种工作方式。

(2)掌握8031与8253接口扩展的方法。

二、实验设备

DICE仿真系统 一台单片机实验系统 一台

示波器 一台

多路稳压电源 一台

仿真电缆 一条

三、实验线路

一一气霖30 11 LE门74LS373 一 1 I 8253

PO— 一一-\ I_ I 一 一。 OUTO

一 i-/1 Ol卜ee一一-= AO ‘ ‘‘一O GATEO

} } I nn F-一一-= Al C--L-0 CLKO

8031 I { ‘ 一二~一O OUT I

! 、 'u l",3 - -o GATE I

/ 一 ’ r--L'一。 CLKI

R百i/~一一一一-— 一-一一二三曰。RD 二二eeeeo OUT2 WR 一一一-一,一一 = } WR -芒于-o GATE2

......口......... 儡r 0-一 C CS一 }-} CLK2 接至此

图4-11 8253与8031接口

四、实验内容与步骤

(1)按照图4-11所示电路连接线路 (打 “必”标志者)。

(2)编制程序,使8253的OUPO输出宽度为20ms的方波。

(3)编制程序,使8253每50ms向8031发一次中断,8031对之计数,并输出显示。

实验十二 8031与8279键盘显示接口扩展

一、实验目的

(1)掌握8279的工作原理及使用方法。

(2)掌握键盘的编码方法。

(3)掌握LED数码管的编码方法。

二、实验设备

DICE仿真系统 一台单片机实验系统 一台

仿真电缆 一条

Page 54: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

5口

多路稳压电源 一台

导线 若干

三、实验原理

8279是专用键盘、显示控制芯片,能对显示器自动扫描;能识别键盘上按键的键号;

可充分提高CPU工作效率。8279与MCS-51单片机接口方便,由它构成的标准键盘、显示接

口在单片机应用系统中使用非常广泛。

(1) 8279的键盘、显示电路及与8031接口的一般连接方法如图4-12所示。

万 x16 ft ITN16s=sf WAXT-Y 16a3-8 i 4-16 i*fi:b3 SL0-2 4 SLO -3 图412 8279与8031接口线路

8279键盘配置最大为8x8。扫描线由SLO一SL2通过3-8 (74LS138)译码器提供,接人

键盘列线 (设扫描线为列线);查询线由反馈输人线RLO ~ RU提供,接人键盘行线 (设查

询线为行线)。

8279显示器最大配置为16位显示,位选线由扫描线SLO一S13经4一16 (74LS164)译码

器、驱动器提供;段选线由OUTBO一OUTB3, OUTAO一OUTA3通过驱动器提供。BD信号线

可用来控制译码器,实现显示器的消隐。

与8031连接无特殊要求,除数据线PO口、丽咬、丽可直接连接外,丽由8031的地址线

译码获得,时钟由ALE提供,AO选择线由地址线连接。8279的复位RESET为上电复位方

式。8279的中断请求线必须经反相器后与8031的INTO或1NT1相连。

(2) 8031和8279键盘、显示器接口的编程方法。键盘的读出既可用中断方式,也可用

查询方式。

设8位LED显示,16个键盘,键盘采用查询方式读出。8位显示数据的段选码存放在

8031片内RAM的30H - 3FH单元;16个键的键值读出后存放在40H一4FH单元中。8031晶

振为6MHzo 举例程序清单及注释如下:

START: MOV DPTR, # 7FFFH ;指向命令/状态口地址,CS =0, AO =1 (P2.0)

MOV A, #ODIH ;清除命令

Page 55: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

51

MOVX @ DPTR, A ;命令字送出WAIT: MOVX A, @DPTR ;读人状态字

JB ACC. 7, WAIT ;清除等待 MOV A, # 2AH ;程序时钟分频,对ALE进行10分频

MOVX @ DPTR, A ;命令字送人

MOV A, # OOH ;键盘/显示器工作方式,8x8显示,双键锁定

MONX @DVTR, A ;命令字送入

MOV R0, # 30H ;段选码存放单元首址

MOV R7, # 08H ;显示8位数

MOV A, # 90H ;写显示RAM命令

MOVX @ DPTR, A ;命令字送人

MOV DVIR, # 7EFFH ;指向数据口地址,CS=O, AO=0

LOOP卜 MOV A,@RO

MOVX @ DPTR, A ;段选码送人8279显示RAM

INC RO ;指向下一个段选码

DJNZ R7, LOOPI ;8个段选码送完?否转LOOP1继续 MOV RO, # 40H ;键值存放单元首址

MOV R7,#10H ;16个按键LOOP2: MOV DVTR, # 7FFFH ;指向命令/状态口

LOOP3: MOVX A, @ DPTR ;读8279状态字

ANL A, # OFH ;取状态字低4位

JZ LOOP3 ;FIFO中无键值时等待键输人

MOV A, # 40H ;读FIFO RAM命令 MOVX @ DP", A ;命令送入

MOV DPTR, # 7EFFH ;指向数据口地址 MOVX A, @DVM ;读人键值

ANL A, # 3FH ;未使用CNTL, SHIFT时,屏蔽高两位

MOV @R0, A ;键值送人内存40H一4FH单元存放

INC RO ;指向下一个键值存放单元

DJNZ R7, LOOP2 ;读完16个键?否专LOOP2

SJMP $ ;程序结束

四、实验内容:

(1)把实验系统上的8279实验线路与LED数码管显示线路、键盘线路连接在一起,组

成一个键盘、显示线路。

(2)把键盘上的24个键编码为‘0'一‘9'、 a'一‘L’; (3)编制程序,当键盘上的一个键按下时,在LED上显示出对应的键值。 (4)编制程序,当键盘上的一个键按下时,在LED数码管上显示出不同的信息。

Page 56: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

52

五、实验电路图

一7 63sa o730 5674LS138A Y_0B Y1 74LSC 541Y7B. B. B e12.12.1B. B.74LS541 图4-13 实际实验线路图

六、8279键盘、显示接口芯片使用说明

Intel 8279芯片是一种通用的可编程序的键盘、显示接口器件,单个芯片就能完成键盘输人和LED显示控制两种功能。其内部结构见图4-14所示:

R石 而 I RQ 复位 DO-7 WR AO I

OUTBO-3,OUTA0-3 BD SLO-3 RL0-7}CNTL/STB

SHIFT

图4-14 8279内部结构

8279包括键盘输人和显示输出两部分。键盘部分提供的扫描方式,可以和具有64个按

键或传感器的阵列相连,能够自动消除开关的抖动,并具有N键同时按下的保护。

显示部分按扫描方式工作,可以显示8或16位LED数据。 (一)8279电路工作原理

Page 57: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

53

根据结构框图,分别介绍各部分电路作用原理。

1. vo控制及数据缓冲器

数据缓冲器是双向缓冲器,连接内、外总线,用于传送CPU和8279之间的命令或数据。

I/0控制线是CPU对8279进行控制的引线,丽是8279的片选信号,当丽=0时,8279

才被允许读出或写人信息。丽豆、丽为来自CPU的读、写控制信号。

AO用于区别信息特性:AO= 1时,表示数据缓冲器输人为指令、输出为状态字;AO =0

时,输人、输出皆为数据。

2.控制与定时寄存器及定时控制

控制与定时寄存器用来寄存键盘及显示的工作方式,以及由CPU编程的其它操作方式。

这些寄存器一旦接收并锁存送来的命令,就通过译码产生相应的信号,从而完成相应的控制

功能。

定时控制包含基本计数器。其中计数器是一个可编程的N级计数器。N可以为2一31之

间的数据,由软件编程,以便从外界时钟CLK分频得到内部所需要的lOOkHz的时钟。然后

再经过分频,为键盘扫描提供适当的逐行扫描频率和显示扫描时间。

3.扫描计数器

扫描计数器有两种工作方式。按编码方式工作时,计数器作二进制计数。4位计数状态

从扫描线SIA一S13输出,经外部译码器译码后,为键盘和显示器提供扫描线 (16条);按

译码方式工作时,扫描计数器的最低二位被译码后,从SID一S”输出。因此,SLO一S”提

供了4中取I的扫描译码。

4.回复缓冲器、键盘去抖及控制

来自RID - RU的8根回复线的回复信号,由回复缓冲器缓冲并锁存。

在键盘工作方式中,回复线作为行列式键盘的行列输人线。在逐行列扫描时,回复线用

来搜寻每一行列中闭合的键。当某一键闭合时,去抖电路被置位,延时等待loins后,再检

验该键是否继续闭合,并将该键的地址和附加的移位、控制状态一起形成键盘数据被送人

8279内部FIFO(先进先出)存储器。键盘数据格式如下:

一一D7#}$11升下D6X11一一一D5 D4 D3l}#}一宁2 D1 DOMAE 控制和移位 (D6D7)的状态由两个独立的附加开关决定,而扫描 (D5D4D3)和回复

(D2DIDO)则是被按键置位的数据。D5D4D3来自扫描计数器,是按下键的行列编码,而

D2DIDO则来自行/列计数器,它们是根据回复信号而确定的行/列编码。

在传感器开关状态矩阵方式中,回复线的内容直接被送往相应的传感器RAM(即FIFO

存储器)。

在选通输人方式工作时,CNTLJSTB为选通输入信号,回复线的内容在CN'I7 /STB线的

脉冲上升沿被送人FIFO存储器。

5. FIFO/传感器及其状态寄存器 FIFO/传感器RAM是一个双重功能的8 x 8RAMa

在键盘或选通方式工作时,它是FIFO寄存器,其输入或读出遵循先人先出的原则。

FIFO状态寄存器用来存放FIFO的工作状态。例如,RAM是满还是空;其中存有多少数据;

Page 58: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

54

是否操作出错等。当FIFO存储器不空,状态逻辑将产生I明二1信号向CPU申请中断。 在传感器矩阵方式工作时,这个存储器又是传感器存储器。它存放着传感器矩阵中的每

一个传感器状态。在此方式中,若检索出传感器的变化,IRQ信号变为高电平,向CPU申请中断,同时该状态被送入传感器RAMa

6.显示RAM和显示地址寄存器 显示RAM用来存储显示数据,容量为16x8位。在显示过程中,存储的显示数据轮流

从显示寄存器输出。显示寄存器分为A, B两组,OUTAO一3和OUTBO一3可以单独送数,也

可以组成一个8位的码 (由编程控制)。显示寄存器的输出与显示扫描结合,不断从显示

RAM中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示

器件呈现稳定的显示状态。

显示地址寄存器用来寄存由CPU进行读/写显示RAM的地址,它可以由命令设定,也

可以设置成每次读出或写人后自动递增。

(二)管脚、引线与功能

8279采用40引脚封装,其管脚、引线功能如图4-15所示。其引脚功能分述如下: 8279

RL2一 下一. 40— UCC RL3 - 2 39 - RLl

CLK一 3 38- RL0 产 IRQ -一一吮 IK(J- 4 37 - CNTL / STB 1}-' -- RL7-v0 入

RU 一 5 36一 SHIFT DH-7 -.--/一 二 } 0

RL5一 6 35- 813 一 SHIFT 1-1盘 RL6 = 7 34— SL2 RD一 一 CNTL/STB 「V- RL7一 8 33一 SLI } vd

RESET一 9 32一 SLO CPU 一 WR一 一-tea CF 0---1 夕 RD 一 10 31 - OUTBO 簿 8279 石万百 ,, 。。_ _ 八八甲。, 口 __ , ___ _ _ _ WR-- 11 30一 OUTAI -' CS一 一/- OUTA0-3 1

DO - 12 29 - OUTB2 } 粉

Di— 13 28,~, OUTB3 A0一 ~/- OUTBO-3 火据 一 14 27= OUTAO ‘ 显

·- 15 26— OUTAI RESET一 1不 一 16 25 - OUTA2 { 一 BD /

- 17 24 - OUTA3 \ CLK一 - 18 23- BD

D7- 19 22— 亡百 GND - 20 21 - AO b)引线功能

a)管脚配置

图415 8279引脚图

DO一D7(数据总线):双向、三态总线,和系统的数据总线相连,用于CPU和8279间

的数据/命令传送。

CLK(系统时钟):输人线,为8279提供内部时钟的输人端。

RESET(复位):输人线,当RESET =1时,8279复位,其复位状态为:16个字符显示;

编码扫描键盘— 双键锁定;程序时钟编程为310

CS(片选):输人线,当CS二0时8279被选中,允许CPU对其读、写,否则被禁止。

AO(数据选择):输人线。当AO = I时CPU写人的数据为命令字,读出数据为状态字;

AO二0时CPU读、写的字节均为数据。

丽、丽咬(读、写信号):输人线。低电平有效,来自CPU的控制信号,控制8279的

读、写操作。

Page 59: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

55

IRQ(中断请求):输出线。高电平有效。 在键盘工作方式中,当FIFO/传感器RAM存有数据时,IRQ为高电平。CPU每次从

RAM中读出数据时,IRQ变为低电平。若RAM中仍有数据,则IRQ再次恢复为高电平。 在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现高电平。 SLO一S13(扫描线):输出线。用来扫描键盘和显示器。它们可以编程设定为译码 (4

中取1)或编码输出 (16取1)0

RI.O一RU (回复线):输人线。它们是键盘矩阵或传感器矩阵的列 (或行)信号输入

线。

SHIFT(移位信号):输人线,高电平有效。该输人信号是 8279键盘数据的次高位

(D6),通常用来扩充键的功能,可以用作键盘上、下档功能键。在传感器方式和选通方式

中,SHIFT无效。

CNTL/STB(控制/选通):输人线,高电平有效。 在键盘工作方式时,该输人信号是键盘数据的最高位 (D7),通常用来扩充键开关的控

制功能,作为控制功能键用。

在选通输人方式时,该信号的上升沿可把来自RLO一RU的数据存人FIFO RAM中。

在传感器方式下,该信号无效。

OUTAO一OUTA3 (A组显示信号):输出线。

OUTBO一OUTB3 (B组显示信号):输出线。

这两组引线都是显示数据输出线,与多位数字显示 (LED数码管)的扫描线SLO一SI3同步。两组可以独立使用,也可以合并使用,合并使用时OUTAO为最低位,OUTB3为最高

位。

丽 (显示消隐):输出线,低电平有效。该信号在数字切换显示或使用消隐命令时,将

显示消隐。

(三)命令格式与命令字

8279的操作方式是通过CPU对8279送人命令来实现编程的。当数据选择端AO置I时,

CPU对8279写人的数据为命令字,读出的数据为状态字。 8279共有八条命令,命令的高3位用来区分不同命令,用以把不同的命令送入相应的

命令寄存器单元。其功能及命令字定义分述如下:

1.键盘/显示方式设置命令字

命令格式: D7 D6 D5 D4 D3 D2 D1 DO

一。一0。】D } D } K一K一K一 其中:D7D6D5二〕a)为方式设置命令特征位。

DD (D4D3 ):用来设定显示方式,其定义如下:

0 0 8个字符显示,左人口

0 1 16个字符显示,左入口

1 0 8个字符显示,右人口

1 1 16个字符显示,右人口 左入口,即显示位置从最左一位 (最高位)开始,以后输人的显示字符逐个向右顺序排

Page 60: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

S石

列,右人口,则是显示位置从最右一位 (最低位)开始,以后输人显示字符时,已有的显示

字符依次向左移动。

KKK (D2DlD0):用来设定八种键盘、显示工作方式: 0 0 0 编码扫描键盘,双键锁定

0 0 1 译码扫描键盘,双键锁定

0 1 0 编码扫描键盘,N键轮回

0 1 1 译码扫描键盘,N键轮回

1 0 0 编码扫描传感器矩阵

1 0 1 译码扫描传感器矩阵

1 1 0 选通输入,编码显示扫描

1 1 1 选通输人,译码显示扫描

双键锁定与N键轮回是多键按下时的两种不同的保护方式。双键锁定为两键同时按下

提供的保护方式。在消抖周期里,如果有两键同时被按下,则只有其中一个键弹起,而另一

个键保持在按下位置时,才被认可。N键轮回为N键同时按下的保护方法,当有若干键按下

时,键盘扫描能够根据发现它们的顺序,依次将它们的状态送人FIFO RAM中。

2.程序时钟命令

命令格式: D7 D6 D5 D4 D3 D2 D1 DO

一。一。一P一P} P一P一P一 其中:D7D6D5 = 001为时钟命令特征位。

PPPPP (D4D3D2DlDO):用来设定对外部输人CLK端的时钟进行分频的分频数No N取

值为2一31。例如外部时钟频率为2MHz, PPPPP被设置成为10100 (N二20),则对输人的外

部时钟20分频,以获得8279要求的l00kHz的基本频率。

3.读FIFO/传感器RAM命令

命令格式: D7 D6 D5 D4 D3 D2 Dl DO

}。111 0I AIl X一AI AI A } 其中:D7D6D5 = 010为读FIFO/传感器RAM命令特征位。该命令字只在传感器方式时

使用。在CPU读传感器RAM之前,必须使用这条命令来设定传感器RAM中的8个地址 (每

个地址一个字节),地址由AAA来确定。

AI (D4):为自动增量特征位。当AI= 1时,每次读出传感器RAM后地址自动加I使地

址指针指向下一个存储单元。这样,下一个数据便从下一个地址读出,而不必重新设置读

FIFO/传感器RAM命令。

在键盘工作方式中,由于读出操作严格按照先人先出顺序,因此,不需使用这条命令。

4.读显示RAM命令

命令格式: D7 D6 D5 D4 D3 D2 D1 DO

一。一1一AI一A一A一A一A一 其中,D7D6D5二011为读显示RAM命令字的特征位。该命令字用来设定将要读出的显

Page 61: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

S夕

示RAM地址。

AI (D4)为自动增量特征位。Al= 1时,每次读出后地址自动加1,指向下一地址。

AAAA (D3D2DIDO)用来寻址显示RAM中的存储单元。由于位显示RAM中有16个字

节单元,所以需要4位地址。

5.写显示RAM命令

命令格式: D7 D6 D5 D4 D3 D2 D1 DO

}1}。{。一A,一A一A一A} A一 其中:D7D6D5=100为写显示RAM命令字特征位。在写显示RAM之前用这个命令字来

设定将要写人的显示RAM地址。

AI (D4)为自动增量特征位。Al= 1时,每次写人后地址自动加I,指向下一次写入单

元地址。

AAAA (D3D2DIDO)为将要写人的显示RAM中的存储单元地址。 6.显示禁止写人/消隐命令特征位

命令格式: D7 D6 D5 D4 D3 D2 D1 DO

11}。}1一X一、A{ IW/B I BI /A一BL/B一 其中:D7D6D5=101为显示禁止写人/消隐命令特征位。

IW/A, IW/B (D3D2)为A, B组显示RAM写人屏蔽位。由于显示寄存器分成A, B两组,可以单独送数,故用两位来分别屏蔽。当A组的屏蔽位D3二1时,A组的显示RAM禁

止写人。因此,从CPU写入显示器RAM数据时,不会影响A的显示。这种情况通常在采用

双4位显示器时使用,因为两个四位显示器是相互独立的,为了给其中一个四位显示器输人

数据而又不影响另一个四位显示器,因此必须对另一组的输人实行屏蔽。

BIJA, BL/B (DIDO)为消隐设置位。用于对两组显示输出消隐。若BL= 1,对应组的显示输出被消隐。当BL二0时,则恢复显示。

7.清除命令

命令格式: D7 D6 D5 D4 D3 D2 D1 DO

11一} 0 } Cd } Cd一Cd一Cf I Ca } 其中:D7D6D5二110为清除命令特征位。 CdCdCd (D4D3D2)用来设定清除显示RAM方式。共有四种清除方式。见表4-3o

表43 Cd位定义的清除方式

一D3 D2每囊 y j0 x 44a,4,1 RAMi 0 *5. r RAM )A 20H (A = 00105 811= 0000)1 },9r RAM }kgI I}Fjft (9- Ca=1, Ng D3D2 fA}A) Cf (D1}用来置空FIFO存储器,当Cf二I时,执行清除命令后,FIFO RAM被置空,使

Page 62: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

58

中断输出线复位。同时,传感器RAM的读出地址也被置为00

Ca (DO)为总清的特征位。它兼有Cd和Cf的联合功能。当Cf = 1时,对显示的清除方

式由D3, D2的编码决定。

清除显示RAM约需160Ks。在此期间FIFO状态的最高位Du = 1,表示显示无效。CPU不能向显示RAM写人数据。CPU可采用查询方式查询状态字等待清除完成。

8.结束中断/错误方式设置命令

命令格式: D7 D6 D5 D4 D3 D2 DI DO

一1一} 1 } E }·]·1·i·1 其中:D7D6D5二111为该命令的特征位。此命令有两种不同的作用。 (1)作为结束中断命令。在传感器工作方式中使用。每当传感器状态出现变化时,扫描

检测电路就将其状态写人RAM,并启动中断逻辑,使IRQ变高,向CPU请求中断,并且禁止写人传感器RAM。此时,若传感器RAM读出地址的自动增量特征没有置位 (Al =0),则

中断请求IRQ在CPU第一次从传感器RAM读出数据时就被清除。若自动增量特征已置位

(AI二1),则CPU对传感器RAM的读出并不能清除IRQ,而必须通过给8279写人结束中断/错误方式设备命令才能使IRQ变低。因此,在传感器工作方式中,此命令用来结束传感器

RAM的中断请求。 (2)作为特定错误方式设置命令。在8279已被设定为键盘扫描N键轮回方式以后,如

果CPU给8279又写人结束中断/错误方式设置命令 (E二1),则8279将以一种特定的错误方式工作。这种方式的特点是:在8279的消抖周期内,如果发现多个按键同时按下,则FIFO

状态字中的错误特征位S/E将置1,并产生中断请求信号和阻止写人FIFO RAM.

上述八种用于确定8279操作方式的命令字都由D7D6D5特征位确定,输人8279后能自

动寻址相应的命令寄存器。因此,写人命令时唯一需要注意的是使数据选择信号AO二to (四)状态格式与状态字

8279的FIFO状态字,主要用于键盘和选通工作方式,以指示FIFO RAM中的字符数和

有无错误发生。

其格式为: D7 D6 D5 D4 D3 D2 Dl DO

1、一、E一。一U一F一NI N一N一 其中:Du (D7)为显示无效特征位。当Du二1时,表示显示无效。当显示RAM由于清

除显示或全清命令尚未完成时,Du二to

S/E (D6)为传感器信号结束/错误特征位。该特征位在读出FIFO状态字时被读出。而

在执行Cf =1的清除命令时被复位。当8279工作在传感器工作方式时,若S/E = 1,表示传

感器的最后一个传感器信号已进人传感器RAM;而当8279工作在特殊错误方式时,若S/E

=1则表示出现了多键同时按下错误。

0, U (D5D4)为超出、不足错误特征位。对FIFO RAM的操作可能出现两种错误:超出或不足。当FIFO RAM已经充满时,其它的键盘数据还企图写人FIFO RAM,则出现超出

错误,超出错误特征位0 (D5)置1;当FIFO RAM已经置空时,CPU还企图读出,则出现

不足错误,不足错误特征位U (D4)置to

Page 63: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

59

F (D3)表示FIFO RAM中是否已满。F二1表示FIFO RAM中已满。

NNN (D2DlD0)表示FIFO RAM中的字符数。

实验十三 IBM-PC机和MCS-51单片机通信实验

一、实验目的

(1)掌握单片机通信程序编制。 (2)掌握PC机通信程序编制,了解PC机通信的基本要求及实现的方法。

二、实验设备

DICE仿真系统 一套 仿真电缆 一条

多路稳压电源 (士5V,士15V) 一台

IBM-PC机 一台 单片机实验系统 一台

三、实验原理

整个通信模块由两个独立的模块组成,即单片机通信模块和PC机通信模块。

1.PC机通信模块程序设计 在设计PC机通信模块时,必须搞懂PC机通信的基本要求及实现的方法。

(1)串行通信协议。为发送和接收一个信息字符所需的一切数据和控制信息都应该在单

根数据线上移动,每次一位,这就需要一个格式协议,如图4-16所示。

黔 每 毓 触 姚 锄 麒 哪 ;一 一确定 (每秒多少个二进制位变量)。 } ! } ’ ! } } } 】 1

这个速度叫波特率。例如数据以每秒 、,‘_ } ! 一 一 { { : { }停止位~ :~、 .。 ,、一 口‘”。”‘目~” 口 逻辑。 I~一」一 一上一一J一-甚--jt 一一二一一1一一J

300位的速度向通信线发送,则传输 起始位 数据位 奇偶位

速度就是300波特。 图4-16串行通信格式 当数据线上没有数据时,该线处

于逻辑 “I”状态。当发送一个字符数据时,发送的第一位是起始位 (逻辑 “011)。起始位后

紧跟着是数据位,数据位的个数可以是5, 6, 7或8(但同一传输中,每个字符应包括相同的个数)。奇偶校验位用来识别传输错。奇偶位之后可以跟着1, 1.5或2个停止位。在异步

协议中,接收方以每个字符的起始位与发送方保持同步。

(2)通用异步接收发送器8250, IBM-PC及其兼容机中通用异步接收发送器8250,可以

完成大部分协议中的要求。首先要根据用户要求和协议规定的波特率、数据位数、奇偶类型

和停止位数,用输出指令对它进行初始化,初始化完了,就可以用来发送和接收数据。 8250有10个可访间的寄存器,但其中的5个寄存器,需在主程序开始时用输出指令初

始化。

初始化的第一个参数是波特率因子,这时必须把线路控制寄存器的最高位置I (D7置

1>,之后才可以向波特率因子寄存器中送波特率因子的高低位。波特率因子的v0地址为

3F8H, 3F9H。实验波特率为2400b/so

Page 64: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

60

表4-4 8250片内寄存器地址

1DLAB "(""m) ’} 1/0端。地址 } 输人或输出 】 寄存器地址

0 } 3FSH } 输出 (写) I发送数据保持寄存器

0 } 3F8H } 输人 (读) I接收数据寄存器

1 I 3F8H } 输出 !波特率因子 (低位)

1 } 3F9H } 输 出 I菠 特 举 囚于 (局位 少

0 } 3F9H } 输出 I甲助尤许奇仔器

X 1 3FAH } 输人 }中断识别寄存器 (只读)

X 一 3FBH } 输出 I线路程制奇仔器

X 一 3FCH } 输出 I调制解调器控制寄存器

X 一 3FD11 } 输人 I线路状态寄存器

..⋯⋯_X ⋯ 孺.⋯⋯HE” 一 输人 }调制解调器状态寄存器

表4-5波特率因子与波特率对应值

飞一汗 初始化第二个参数是线路控制寄存器,线路控制寄存器确定在串行传输中要用的字符长

度、停止位和奇偶校验类型。线路控制寄存器的各位定义如下:

DLAB{SBRK{'sPB”卜叫PE I ST BSPB EPS PEN , ’一、1一二 其中:DLAB为寻址控制位,当DLAB = 1时,选择波特率因子寄存器;SBRK为间断位;

SPB, EPS, PEN为奇偶校验位,000时无奇偶,001时奇校验,011时偶校验,101时奇偶位

保持传号,111时奇偶位保持空号;STB为停止位数,STB=0时1位停止位,STB=1时2位

停止位;WIS1, WI C.。确定字符位数,00时5位数据,01时6位数据,10时7位数据,11

时8位数据。

例如,若要传输具有7个数据位、一个停止位和奇偶校验位的数据,则应将IAH输出

给110地址3FBHo

即:MOV DX, 3FBH

MOV AL, IAH

Page 65: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

石1

OUT DX, AL

实验中与8031串行口方式3相一致,3 FBH二07H时:8位数据位、1位起始位、2位停

止位,共11位。

初始化参数还有调制解调器控制寄存器及中断控制寄存器,这里不作介绍。

初始化程序结束后,就可以实现串行通信。实验中采用的是查询方式。通过检测线路状

态寄存器内容可知何时可以输人或输出一个字符数据。

(3)串行通信的实现。有了上述的通信协议及8250,如何将通信的两地计算机连接起

来?如果两地距离较近,可直接用标准的RS232接口,如果距离较远,应该用调制解调器。

IBM-PC机所用的通信适配器向外界提供了标准的RS232接口,引出的插头座是标准的母25

芯 “D’,型插座,引脚2#、3#分别是发送和接收。

IBM-PC机给出的是标准的RS232电平,而MCS-51给出的是TTL电平,故须将TTL电平

与RS232电平进行转换。用1488, 1489芯片进行转换。

2. MCS-51通信软件设计 MCS-51串行口已集成于片内。在单片机进行通信时,仅需与SBUF数据缓冲寄存器打交

道。它对应二个寄存器,一个发送器和一个接收器。

波特率的产生由PCON和定时/计数器TI决定。在编制程序时,首先编制初始化程序,内容有置定时器1的工作方式、置计数器初值、定义波特率、定义串行口的工作方式。

四、实验线路

IBM PC/ XTRXD 1488 TXDY Afa 8031jbk*fxTXD 1489 RXD 图4-17 IBM-PC与8031通信接口

五、实验内容与步骤

(1)按图4-17连接线路。将1488-3端与PC机D25插座中2#针连接,1489-1端与PC机

D25插座中3#针连接。其它按线路连接好。

(2)分别编写PC机和MCS-51机串行通信程序,并把程序分别输人PC机及MCS-51机。

并运行之。

实验十四 MCS-51单片机双机通信实验

一、实验目的

掌握利用串行口实现单片机间的通信方法。

二、实验设备

DICE仿真系统 二台

Page 66: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

62

多路稳压电源 一套

单片机实验系统 二台

三、实验原理

利用单片机的串行口RXI)和TXI)进行单片机间的串行发送与串行接收的实验。

四、实验线路

单片机一的TXI〕接单片机二的RXD,单片机一的RXD接单片机二的.IXD, GND与GND

连接便可进行双机通信。

两台单片机互为接收和发送。

五、实验内容与步骤

(1)把二台单片机的串行口的三根线连接好。假设一台为接收机,一台为发送机。

(2)编写发送与接收的通信程序模块。把甲机内部RAM中以30H为首地址的单元内的

一组数据向乙机发送,乙机接收的一组数据放在内部RAM的以30H为首地址的单元内。

(3)画出程序流程图。

Page 67: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

第五章 实用系统举例

第一节 交通灯控制系统

一、概述

路口交通信号灯在交通管理中起着举足轻重的作用,红、黄、绿灯的交替亮灭指挥着车辆井

然有序的通过路口。好的交通灯控制系统能够减缓路口压力、减少堵塞现象,使车辆顺利通过。

本系统采用倒计数方式,并用数码管显示和灯排逐个熄灭的方式提示。灯排逐个熄灭的方法显示倒数计数直观,当红、绿灯改变时,灯排全亮,然后每隔2s熄灭一个以实现倒数

计时,当全部熄灭时红绿灯改变、且灯排全亮,反复不止;而数码管显示的方法直接告诉司

机等待时间,开始时数码管显示最长的时间值32,然后逐秒减1,当减为00时,红绿灯改

变,数字重新恢复最大值32,周期反复。

另外,当某方向上没有车辆通行却绿灯亮、另一方向有很多车辆等待却是红灯时,能够强

行改变红绿灯的状态;夜晚,车辆稀少、交通路口无人值班,黄灯闪灭,提醒司机注意交通安全。

二、系统组成

为实现上述控制,系统的硬件组成如图5-1所示 (程序存储器电路未画出)。扩展8255并行接口控制灯排显示和红绿黄信号等显示,扩展的8155并行接口控制数码管显示,利用

外部中断0强制转换红绿灯,利用外部中断1实现夜晚的黄灯闪烁。

三、应用程序

BSEG

ORG 0

FLASH: DS 1 ;黄灯是否闪烁标志

FLAG: DS 1 ;方向标志

ENDS

DSEG

ORG 8

LAMP: DS 2 ;灯排内容单元

COUNT: DS 1 ;计时单元

SIGA : DS 1 ;红绿黄灯状态单元 ENDS

CSEG

ORG OOOOH

LIMP MAIN ;转主程序 ORG 0003H

LIMP TIM ;转外部中断0服务程序 ORG OOOBH

Page 68: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

64

8255

一浦 PAO aPAIDODIPA7PBOD7 PBIWR ,RDPB7CS PCOG二EN }曰 I}! }! 7di 14171 I I} I PCI卜~一一〔二〕- GO- -1 YELLOW I }I I I I { r--1 I) } I r .一一〔二」一一9I= 1 RED

卜十寸一卜十.卜十叶一-1 DO (?0 r州一卜寸一-叫 AO 一 卜- _ I (EAST-WEST)

I IT T T TT r- 1 1J I kj1 r--r---r--y AI . I-'} t--r-ai-_-1 GREEN I}rr rrr r- -1 r - }}! I . r- { 一一-BI= y YELLOW I}}卜十十一卜寸一一曰 一 r I}I .--I R ST 卜..一-t } -i RED

I I I I卜十十刊‘一月 二 卜~I I I I I rr7 I- -1 (SOUTH-NORTH)

+5v ” “ .- }}一 R】) 一 目一』 月一」 !

V _ t ‘... 1 1 1一一闷一 101m . ~I . !

冲识门-一 INTO .I.- -一一十十十一一--ALE PB7一 月 ! ‘。。一月一尸一 INT I 一 一一一一一一一一二一I上一 — 井屯 ‘- ,,.,刁 ~ 一1一 1,、“ .一 一一一一一一一一十一卜十一一. CE 一 —

f1 h— TO .一 一一一一一一一一一一J I I 一 PC。一 11川 — TI v7,一 -一— — 一一 一— 曰 I PCI

YY一 RXD -.一 1 一 TMROUT.一 I{ 一 TXD WR一 一 ~一一 一一一 一一 J 。一

目 I目一 TA-/VP TD— 一 TMRIN ._ 八LE/P一 PC5

_,PSEN一 r------,,-一 XTAL1 一 介 二— “、’几“‘ RST一 RST

1习- ‘-‘日 +5 V 0- ----4 1-一一 4= ---i 一

‘一一-,J一 XTAL2

图5-1 交通信号灯管理系统

limp TrIME ;转定时器I中断服务程序

ORG 0013H

Limp TINT1 ;转外部中断1服务程序

MAIN: MOV SP, # 5FH ;设置堆栈指针

MOV RO, # 2 ;清除内存

MOV Rl,#7FH

MOV A, #0

CLR: MOV @R0, A

INC RO

Page 69: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

65

DJNZ Rl,CLR

MOV DPTR, # 7FFFH ;8255初始化

MOV A,#80H

MOVX @DPTR, A

MOV DPTR, # OBFFFH ;8155初始化

MOV A,#4FH

MOVX @DPTR, A

CLR FLASH ;清除闪烁标志

CLR FLAG ;初始化方向标志

;南北高四位,东西低四位,从高到低为:(无用)(红)(黄)(绿) MOV SIGA, # 41H ;初始态为:南北红灯亮,东西绿灯亮

MOV COUNT, #32H ;计时初值为32s

MOV LAMP, # OFFH ;灯排开始时全亮

MOV LAMP+1,#OFFH

LCALL STOUT ;输出初始状态

MOV TMOD, #01H ;定时器。工作于定时方式1

MOV THO, #3CH ;送looms定时常数

MOV 叨.0,#OBOH

MOV R7,#10 ;is计数

SETB ITl ;外部中断。和1设定为边沿触发方式 SETB ITO

SETB EXO ;开放外部中断0

SETB EX1 ;开放外部中断I

SETB TRO ;开始计数

SETB ETO ;开放定时中断0

SETB EA ;开总中断

SJMP $

TTIME : MOV THO, # 3CH ;定时中断服务子程序

MOV TLO,#OBOH

DJNZ R7, TRET ;is计时到否?

MOV R7,#10 ;到

JB FLASH, IrFL ;是否闪烁,闪烁转L_ FL

LCALL TIMED ;否,数码管显示

MOV A, COUNT

ANL A, #1

JNZ NEXT ;秒是否为偶数

LCALL LIGHT ;是显示灯排NEXT: MOV A, COUNT ;计数单元减一

ADD A,#99H

Page 70: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

66

DA A

MOV COUNT, A

CJNE A, # 04H, TP ;是否为4s

MOV A, SIGA ;是,置亮黄灯

JNB FLAG, TO

ANL A,#OFOH

ORL A, #02H

SJMP DDP

,n): ANL A,#OFH

ORL A,#20H

DDP: MOV SIGA, A

MOV DPTR,#7FFEH

MOVX @ DPTR,A

RETI

TP: CJNE A,#0, TRET

MOV COUNT,#32H

CPL FLAG

JB FLAG,玲

MOV SIGA,#41H

SJMP TW

玲: MOV SIGA,#14H

TW: MOV DPTR,#7FFEH

MOVX @DPTR, A

TRET: RETI

LFL: MOV A, SIGA

XR1 A, #22H

MOV SIGA, A

MOV DPTR, #7FFEH

MOVX @ DP'IR, A

RETI

TIMED: MOV A, COUNT ;数码管显示数字

MOV B, A

SWAP A

ANL A, #OFH

MOV DPTR,#TAB

MOVC A, @A+DPTR

MOV DPTR,#OBFFAH

MOVX @DFfR, A

XCH A, B

Page 71: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

67

ANL A, #OFH

MOV DPTR, #TAB

MOVC A, @A+DPTR

MOV DPTR,#OBFF9H

MOVX C DPTR, A

RET

LIGHT: MOV A, LAMP ;灯排状态送显示 MOV DPTR,#7FFCH

MOVX @DVTR, A

MOV A, LAMP+1

MOV DPTR,#7FFDH

MOVX @ DPTR, A

JB FLAG, LIGHT2

CLR C ;从左往右熄灭灯排

MOV A, LAMP

RLC A

MOV LAMP, A

MOV A, LAMP+1

RLC A

MOV LAMP+I,A

JUDG: MOV A, COUNT ;灯排全部熄灭后,重新恢复全亮

CJNE A,#0, FIN

MOV LAMP,#OFFH

MOV LAMP+1, #OFFH

FIN: RET

LIGHT2: CLR C ;从右往左熄灭灯排 MOV A, LAMP+1

RRC A

MOV LAMP+1,A

MOV A, LAMP

RRC A

MOV LAMP, A

AJMP JUDG

TINT0: PUSH ACC ;强制信号转换

MOV COUNT, #32H ;计时初值为32s MOV LAMP, # OFFH ;灯排开始时全亮

MOV LAMP+1, #OFFH

MOV A, SIGA

XRL A,#110111018

Page 72: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

68

MOV SIGA,A

CPL FLAG

MOV R7,#10

POP ACC

RETI

TINTI: PUSH ACC ;灯排工作与闪烁转换

CPL FLASH

JNB FLASH, REST

MOV SIGA,#2211

MOV LAMP,#0011

MOV LAMP+1, #OOH

MOV COUNT, #0011

MOV R7, #10

LCALL STOUT

POP ACC

RETI

REST: MOV SIGA,#4111

MOV LAMP, #OFFH

MOV LAMP+1,#OFFH

MOV COUNT, #3211

LCALL STOUT

MOV R7, #10

POP ACC

RETI

TAB: DB 03FH,0611, SBH, 4FH, 6611, 6DE

DB 7DH, 0711, 7FH,6FH

STOUT: MOV A, SIGA

MOV DPTR, #7FFEH

MOVX @DPTR, A

LCALL TIMED

MOV A, LAMP

MOV DPTR,#7FFCH

MOVX @DPTR,A

MOV A, LAMP+1

MOV DPTR,#7FFDH

MOVX @DM ,A

RET

ENDS

END

Page 73: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

69

第二节 频 率 计

一、概述

低频信号在数字电子技术、计算机原理以及许多场合广泛使用,而频率是否合乎要求,

则需要进行测量。

本系统利用单片机的定时/计数器功能,开发设计一个低频信号频率计。

二、系统组成

本系统以8031单片机为核心,扩展程序存储器、ICM7218B显示驱动电路、晶体震荡器

(6MHz)、数码管和开关,组成频率计系统。

频率计原理图见图5-20

ICM7218B

穿 图5-2 频率计原理图

Page 74: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

70

三、原理简介

用定时器0作为定时器,定时一秒;用定时器1作为计数器,对输人的脉冲进行计数。

当开关扳动时,开始定时及计数工作,时间到,停止计数,输出频率值。再次扳动开关又进

行计数。

四、程序清单

DSEG

ORG 21H

COUNT: DS 1 ;计数单元

TTM: DS 1 ;定时单元 (looms * 10二Is)

XIAN : DS 4 ;显示缓存单元ZAN: DS 3 ;数据暂存单元

ENDS

CSEG

ORG OOOH

LIMP MAIN

ORG OOOBH

UMP TOINT

ORG 001BH

INC COUNT

RETI

MAIN: MOV R0, # 2 ;清内存

MOV Rl,#7EH

MOV A,#0

CLRRAM: MOV @ R0, A

INC RO

切NZ Rl,CLRRAM

MOV SP, # 5FH ;设置堆栈指针 CLR FO ;清除Is标志

MOV TMOD, # 51H ;TO定时,T1计数

MOV THO,#3CH ;looms

MOV TLo, #OBOH

MOV TH1,#0

MOV TLl,#0

MOV TTM,#10 ;looms * 10==is

CLR PLO

LOOK ; LCALL DISPLAY ;显示 ‘0000000'

SETB P1.2 ;判断是否开关闭合

JB P1.2, LOOK

L.CALL DELAY

Page 75: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

71

SETB Pl.2

JB Pl.2, LOOK

SETB TRO ;闭合开始定时,计数 SETB TR1

SETB ETD

SETB ET1

SETB P'I'l

SETB EA

SETB P1.0 ;指示灯亮

CLR FO

JNB F0,$ ;Is未到,等待

CLR TRO ;到停止定时,计数

CLR TRl

CLR ETO

CLR ET1

CLR EA

CLR P1.0

MOV ZAN, TLl ;数据存储

MOV ZAN+1,THl

MOV ZAN+2, COUNT

LCALL BINTOBCD ;转换为十进制DDIP: LCALL DISPLAY ;显示

SETB P1. 2 ;开关未动,显示计数值

JNB Pl.2, DDIP

LCALL DELAY

SETB Pl.2

JNB Pl.2, DDIP

AJMP MAIN ;动,重新计数频率值;TO中断服务程序TOINT: MOV TLO, # OBOH ;重新送初值

MOV THO,#3CH

DJNZ TTM, TORET

SETB FO ;Is到,置标志

TORET: RETI

;二进制数据转换为十进制数据

BINTOBCD: MOV R7, #24

MOV A, #0

MOV MAN, A

MOV XIAN+1,A

Page 76: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

72

MOV XIAN+2, A

MOV XIAN+3,A

LOOP: CI丑 C

MOV A, ZAN

RLC A

MOV ZAN, A

MOV A, ZAN+1

RLC A

MOV ZAN+1,A

MOV A, ZAN十2

RLC A

MOV ZAN+2, A

MOV A, MAN

ADDC A, MAN

DA A

MOV MAN,A

MOV A, XIAN+1

ADDC A, MAN+1

DA A

MOV XIAN+1,A

MOV A, XIAN+2

ADDC A, XIAN+2

DA A

MOV XIAN+2, A

MOV A, XIAN+3

ADDC A, VAN+3

DA A

MOV XIAN+3,A

DJNZ R7,LOOP

RET

;显示子程序

DISPLAY:MOV Rl,#VAN+3

MOV 邢 ,#04H

MOV DPTR,#OFFFFH

MOV A, #90H

MOVX @ DPTR,A

MOV DPTR, #7FFFH

DDISP: MOV A,@Rl

MOV B, A

Page 77: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

73

SWAP A

ANL A,#OFH

LCALL TABLE

MOVX @DPTR, A

XCH A, B

ANL A,#OFH

LCALL TABLE

MOVX @ DPTR, A

DEC R1

DJNZ R3,DDISP

BET

;查数字的显示码

TAB]卫: ADD A,#I

MOVC A, @ A+PC

RET

DB 3FH, 06H, 5BH, 4FH,66H, 6DH

DB 7DH, 07H, 7FH, 6FH

;延时20ms子程序

DELAY: MOV R7, #20

DL: MOV R6,#250

DJNZ R6, $

DJNZ R7,DL

RET

ENDS

END

第三节 低温预处理装置

一、概述

塑料制品越来越多的得到应用,如各种电视机壳、计算机壳、塑料桌椅、塑料门窗等

等,而这些塑料制品性能如何、使用寿命如何,是广大用户十分关注的。因此测试塑料制品

的热弯曲 (柔韧度)、冷撞击 (坚硬度)是塑料产品生产厂家所必需的。低温预处理装置,

就是为了测试塑料产品坚硬度,对塑料产品进行低温处理而研制的。

本系统能够把温度降低到零下6090 o

二、系统组成

本系统以单片机 8031为核心,扩展 ICL7109A/D转换芯片进行数据采集,扩展

ICM7218B作为数据显示的数码管驱动电路,扩展74LS541作为键盘接口,由NE555构成蜂

鸣器的驱动电路,温度采集放大由7650完成,制冷由硅制冷片完成。

系统结构框图见图5-30

Page 78: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

74

三、原理说明

温度由铂电阻测量,经过桥电路转换为电压信号,再经7650进行放大,输人到ICL7109

进行A/D转换,转换后的数字量采集到单片机 — 一内,由单片机进行运算后,转化为时间参数,I --,}、二1、 、 1 1 1 WmfX.V /r I

控制可控硅导通的时间长短。当温度与设定 {及A/D转换 卜丫; 单 }}_

的温度值相差太大时,可控硅一直导通,制 一 匕一1 健盘 I

冷芯片处于制冷工作状态。当温度快要到达 厂一下二丁二一门 二 片 一设定的温度时,单片机转化的时间常数较短,‘一一 一 一一州 种滋漏 }

可控硅导通的时间相对缩短,保证制冷温度一 一一一门 机 一 .干一一稳定在设定的温度值。 L_二三二二- J !制冷系统 }

关于可控硅导通的时间,有市电的过零 — —

点进行同步,可控硅导通的时间长,输出的 图5-3系统结构框图电压值高,制冷快;可控硅导通的时间短,输出的电压值低,制冷慢。

四、程序清单

BSEG

ORG 0

TROBZ: DS 1 ;定时器0标志

SDBZ: DS 1 ;设定键按下标志

HWBZ : DS 1 ;恒温标志

FMQBZ : DS 1 ;蜂鸣器响标志

SSBZ DS 1 ;秒闪烁标志

FBZ: DS 1 ;采集数据为负标志

ZLBZ: DS 1 ;制冷标志

XSBZ: DS 1 ;时分闪烁标志

IN: DS 1 ;是否正在采集标志

TEST: DS 1 ;测试标志

TEST1: DS 1

ENDS

DSEG

ORG 08H

XS: DS 8 ;显示暂存

HXS: DS 8 ;显示代码存储TMS: DS 2 ;导通角常数

" SD: DS 2 ;温度设定值

XSSD: DS 1 ;小时设定值

FSD : DS 1 ;分设定值

CJWD: DS 2 ;温度采集值 ORG 22H

YAN: DS 2 ;延时loins计数器

Page 79: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

台E }}1113%vp I*NZVI* I 'Toll41h 图5一 程序流程图

ZAN: DS 3 ;暂存

COUNT: DS 1 ;采集中判恒温计数

HOUR: DS 1 ;小时计数

MIN DS 1 ;分计数

SECOND: DS 1 ;秒计数

HALF: DS 1 ;半秒计数WHOLE: DS 1 ;is计数

COOD: DS 1 ;制冷计数

STOP: DS 1 ;停止制冷计数

WDPID : DS 2 ;98.4375%设定温度

PIDP: DS 1 ;PID之P参数

PIDI: DS 2 ;PID之I参数

PIDD : DS 1 ;PID之D参数

TWIS: DS 1 ;蜂鸣器响两秒计数

THREE: DS 1 ;45s计数

EN: DS 2 ;En

ENl: DS 2 ;En一1

EN2: DS 2 ;En一2

SN1: DS 1 ;Sn一1

LIN : DS 7 ;临时存储器

TWO: DS 1 ;设定值显示2s计数

CHAN: DS 2 ;ASC转换为BCD码暂存

CHAN1: DS 2 ;时间显示暂存

Page 80: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

76

ENDS

CSEG

ORG OOOOH

Limp MAIN ;主程序

ORG OOOBH

[imp TIMED ;定时器0中断服务子程序

ORG 0013H

Limp TINTI ;外中断I服务子程序 ORG 001 BH

I,TMP TIME1 ;定时器1中断服务子程序START: NOP

MOV DPTR, # OFFOOH ;送不译码控制字

MOV A,#OBOH

MOVX @DPTR, A

MOV DPTR, # OBFDOH ;全部显示

MOV A, # 7FH ;即显示 “8888 8888",指示灯全亮

MOVX @ DPTR,A

MOVX @ DPTR, A

MOVX @DPIR, A

MOVX @DPTR,A

MOVX @ DPTR, A

MOVX @ DM , A

MOVX @ DPTR,A

MOVX @ DPTB,A

CLR P1.2 ;蜂鸣器响

MOV R2, # 50 ;延时is

LLI: ACAI工 YAN20MS

DJNZ R2, LLI

MOV DPTR, # OFFOOH ;送不译码控制字

MOV A,#OBOH

MOVX @ DPm,A

MOV DPTR,#OBFOOH

MOV A, #80H ;全部熄灭

MOVX @ DPIR, A

MOVX @DPM , A

MOVX @DPTR,A

MOVX @ DPTR,A

MOVX @ DPM, A

MOVX @ DPTR,A

Page 81: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

77

MOVX @DPTR, A

MOVX @DVTR, A

SETB Pl.2 ;关闭蜂鸣器

MOV R2, # 40 ;延时0.8s

LL2: ACALL YAN20MS

DJNZ R2, LL2

RET

;外中断1服务子程序

TINT1: NOP ;。,=220、坦Cosa 去、U‘ ’ 叼 一一一 、 2

JB ZLBZ, TINT11 ;。=、c。、( 21a - A cos 男一一1) J。 户一户,11占,111 ,-一“一 \ 220 一)

CLR TRO ;T=俞‘10 CLR ETD ;X = 65536一T x 1000 勺砰‘ “‘“ ’ ‘一”“““一 2

RETI ;F9D2一一>170V

TINTI l: MOV THO,#OF9H

MOV TLO, # OD2H ;送计时常数 (4. 74ms一>119V)

SETB TRO ;定时器0开始计数

SETB ETD ;开放定时器0中断

CLR TROBZ ;清定时器0标志

RETI

TIMEO: JB TROBZ, SHUTIRO ;定时器。服务子程序 SETB TROBZ ;置位定时器0标志

MOV THO,#OECH ;loms

MOV TLO, #78H

MOV A, PI ;CLR P1.0送导通晶闸管。脉冲 ANL A,#11111100B

MOV Pi,A

MOV R4, #250

DJNZ R4, $

MOV A, Pl ;SETB P1.0

ORL A,#00000011B

MOV P1,A

RETI

SHUTI'RO: CLR TRO ;停止定时器0计数

CLR ETD ;关闭定时器0中断

MOV A, PI ;CLR PI.1

ANL A,#11111100B

MOV Pi,A

Page 82: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

7s

MOV R4,#250

DJNZ R4,$

MOV A, P1; ;SETB P1.1

OR工 A,#0000001113

MOV Pi,A

RETI

MAIN: MOV P2, # OFFH ;主程序

MOV P3, #OFFH

MOV Pi, #0000011113

MOV P0, #OFFH

MOV SP, # 5FH ;置堆栈底为60H

ACALL START ;开机自检查

ACALL START

MOV R0, # 8 ;清内存

MOV R7, #78H

MOV A,#0

CLRMEM:MOV @ R0, A

INC RO

DJNZ R7,CLRMEM

MOV DPTR, # OFFOOH ;送不译码控制字

MOV A,#OBOH

MOVX @DPTR, A

MOV DPIR, # OBFOOH ;显示 “very good"

MOV A, #3EH

MOVX @DPTR, A

MOV A, #79H

MOVX @DPTR, A

MOV A,#50H

MOVX @DPTR,A

MOV A,#6EH

MOVX @ DPTR,A

MOV A,#OPH

MOVX @DPTR,A

MOV A,#9DH

MOVX @DPTR, A

MOVX @DPTR,A

MOV A,#OBDH

MOVX @ DPTR,A

SHEDING: ACALL INKEY ;读键

Page 83: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

79

CJNE A, # 12, SHEDING ;等待设定键按下 MOV XS, # 84H ;负号

MOV A, # 0 ;清显示

MOV XS+I,A

MOV XS十2, A

MOV XS十3,A

MOV XS+4, A

MOV XS+5,A

MOV XS+6, A

MOV XS+7, A

MOV RO,#XS+I

WENDU : ACALL DISPL2 ;设定温度

ACALL DISPLAY ;显示键入的温度值,时间不显示

WENO: ACALL INKEY

CJNE A, # 0, WEN ;无键按下,重新读键

AJMP WENO

WEN: CJNE A, # 11, WENI ;回车键按下,转设定时间 AJMP SHIJIAN

WEN1: CJNE A,#12, WEN2 ;设定键按下,不起作用

习MP WENDU

WEN2: CJNE A, # 10, WEN3 ;0键按下

MOV A,#0

WEN3: CJNE R0, # XS + 4, WEN4;键人值依次填人

MOV R0,#XS+1

WEN4: MOV @ R0, A

INC RO

AJMP WENDU

SHURN: NOP

MOV A, XS + 1 ;温度设定值保存

MOV B, #100

MUL AB

MOV R3, B

MOV R2, A

MOV A, XS+2

MOV B, #10

MUL AB

ADD A, R2

MOV R2, A

MOV A, B

Page 84: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

80

ADDC A, R3

MOV R3,A

MOV A, XS+3

ADD A, R2

MOV WDSD, A

MOV A, R3

ADDC A, #0

MOV W'DSD+1,A

CI.R C ;检查温度设定值是否越限 (一800C)

MOV A, WDSD

SUBB A, #20H

MOV A, W-DSD+I

SUBB A, #3

JC LL7

ACALL ERRO1

MOV R0,#XS+I

AJMP WENDU

LL7: MOV ZAN, WDSD ;98.4375%设定温度保存

MOV ZAA+1,WDSD+1

ACALL DIV2ADD ;WDPID+50 % WDSD

ACALL DIV2ADD ;WDPID+25 % WDSD

ACALL DIV2ADD ;WDPID+12.5 % WDSD

ACALL DIV2ADD ;WDPID+6.25 % WDSD

ACALL DIV2 ADD ;WDPID+3.125 % Vv'DSD

ACALL DIV2 ADD ;VvDPID+1.5625 % WDSD

MOV A, WDSD+1

JZ LL7T

MOV WDPID,WDSD

MOV 确DPID+1,WDSD+1

LL7T: MOV R0,#XS+4

ACALL PASSI

LL8: NOP ;设定时间 ACALL DISPL2 ;显示已经设定好的温度

ANL HXS+6,#7FH

ACALL DISPLAY ;和正在设定的时间

SHIO: ACALL INKEY ;读键

CJNE A, # 0, SHI ;无键按下,重新读键

AJMP SHIO

SHI : CJNE A, # 11, SHIT ;IQ车键按下,转BEGIN

Page 85: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

81

AJMP BEGIN

SHI1: CJNE A,#12, SHI2 ;设定键按下,不起作用

AJMP LL8

SHI2: CJNE A,#10, SHI3 ;0键按下

MOV A,#0

SH13 : CJNE RO, # XS + 8 , SH14 ;时间键入值依次填人

MOV R0,#XS+4

SHI4: MOV @ R0, A

INC RO

AJMP LL8

BEGIN: NOP

MOV A, XS + 4 ;小时设定值保存 (BCD码)

ANL A,#OFH

SWAP A

MOV XSSD, A

MOV A, XS+5

ANL A,#OFH

ORL A, XSSD

MOV XSSD, A

MOV A, XS + 6 ;分设定值保存 (BCD码)

ANL A,#OFH

SWAP A

MOV FSD, A

MOV A, XS+7

ANL A,#OFH

ORL A, FSD

MOV FSD, A

CLR C ;检查分设定值是否越限 (60)

MOV A, FSD

SUBB A, #60H

JC LL9

ACALL ERR02

MOV R0, #XS+4

AJMP LL8

LL9: NOP

ACALL PASS2

MOV TMOD,#11H ;定时器。,1均工作于定时方式1 SETB PX1 ;外部中断1高优先级

SETB IT1 ;外部中断1边沿触发

Page 86: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

82

MOV TH1, # OBH ;定时器1一 >124.930ms时间常数

MOV TLl, #OFFH ;OBFFH

SETB TRl ;定时器1开始工作

SETB ET1 ;开放定时器1中断

SETB EXl ;开放外中断1

SETB EA ;开总中断

SETB ZLBZ ;制冷标志置位

MOV PIDP, # 2 ;送PID参数

MOV PIDI,#66H ;凡=3,Ki=0.15,凡二3

MOV PIDI+1,#26H ;(凡=2, Ki=0.15,Kd=2) MOV PIDD,#2

MOV COOD,#120 ;送制冷参数

MOV SN1,#120 ;(制冷15s,停Os)

MOV STOP,#0

MOV THREE, #3 ;45s计数

MOV HALF, # 4 ;半秒钟计数

MOV WHOLE, # 2 ;整秒钟计数

LOOP: ACALI, YAN20MS ;延时looms,等待输人电压稳定

ACALL YAN20MS

ACALL YAN20MS

ACALI. YAN20MS

ACAl」‘ YAN20MS

SETB P1.3 ;启动7109转换

LOOPO: SETB P3.2 ;等待转换结束 SETB 玛 .0

JNB 玛 .0 , LOOM

JB 玛 .2, LOOPO

ACALI. INDATA ;采集

AJMP LOOP

LOOP I: SETB SDBZ ;设定键按下,置标志

MOV A, XSSD ;送时间设定值到显示缓存

ANL A,#OFH

MOV XS+5,A

MOV A, XSSD

SWAP A

ANL A, #OFH

MOV XS+4, A

MOV A, FSD

ANL A,#OFH

Page 87: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

8了

MOV XS+7,A

MOV A, FSD

SWAP A

ANL A, #OFH

MOV XS+6, A

MOV HXS,#84H

MOV CHAN,WDSD

MOV CHAN+1,WDSD+1

ACALL ASCTOBCDI

ACALL XSXS

MOV TWO, # 75 ;延时1.5s

YXS : ACALL YAN20MS

DJNZ TWO,YXS

CLR SDBZ

AJMP LOOPO

XSXS: MOV DM , #XSTAB

MOV A,XS+1

ONE A,#0, NEXT21

MOV HXS+1,#80H

AJMP NEXT22

NEXT21: MOVC A, @ A+DPTR

MOV HXS+I,A

NEXT22: MOV A, XS+2

MOVC A, @A十DPTR

MOV HXS+2, A

MOV A, XS+3

MOVC A, @ A+DPTR

MOV HXS+3,A

MOV A, XS+4

CJNE A,#0, NEXT23

MOV HXS+4,#80H

AJMP NEXT24

NEXT23: MOVC A, @ A十DPTR

MOV HXS+4, A

NEXT24: MOV A, XS+5

MOVC A, @ A+DM

MOV HXS十5,A

MOV A, XS+6

MOVC A, @A+DPTR

Page 88: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

84

MOV HXS+6, A

MOV A, XS+7

MOVC A, @A+DPTR

MOV HXS+7,A

ANL HXS, #7FH

ANL HXS+1, #7FH

ANL HXS+4, #7FH

ANL HXS+5, #7FH

JB ZLBZ, PHW ;根据各种标志位置亮指示灯 ORL HXS, # 80H ;判正制冷否?未制冷,指示灯灭

PHW: JB H%BZ, PSS ;判正恒温否?

ORL HXS + 1, #80H ;未恒温,指示灯灭

PSS : ORL HXS + 3, # 80H ;第四位LED小数点恒灭

JNB SDBZ, PST

ANL HXS+6,#7FH

OHL HXS+7,#80H

AJMP PPLY2

PST: JB SSBZ, PXS ;判秒闪烁否?

ORL HXS + 4, # 80H ;未闪烁,指示灯灭

ORL HXS+5, #80H

PXS: JB XSBZ, PM ;判显示时分还是显示分秒

ORL HXS十6, # 80H ;显示分秒,时指示灯灭,分指示灯亮 ANL HXS+7, #7FH

AJMP PPLY2

PPLY ; ORL HXS + 7, # 80H ;显示时分,时指示灯亮,分指示灯灭 ANL HXS+6,#7FH

PPLY2: ACALL DISPLAY

RET

XSTAB: DB 7BH, 30H, 6DH, 75H, 36H, 57H, 5FH, 70H, 7FH,77H

DB 7EH, IFH, 4BH, 3DH, 4FH, 4EH, OCH

DISPLAY:NOP

MOV DPTR, # OFFOOH ;送不译码控制字 MOV A,#OBOH

MOVX @DPTR, A

MOV DPTR, # OBFOOH ;显示子程序

MOV A, HXS

MO t1 @DP'IR,A

MOV A, HXS+I

MOVX C DP'IR, A

Page 89: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

85

MOV A, HXS+2

MOVX @DP"IR, A

MOV A, HXS+3

MOVX @DPTR,A

MOV A, HXS+4

MOVX @ DPTB,A

MOV A, HXS+5

MOVX @DPTR, A

MOV A, HXS+6

MOVX @ DPTR,A

MOV A, RXS+7

MOVX @DP'IR, A

BET

ASCTOBCDI: MOV A, #0 ;ASCII码转换成BCD码,并送显示缓存

MOV R6,A

MOV R5,A

MOV R4,A

MOV R7,#16

CHANGI: CIR C

MOV A, CHAN

RLC A

MOV CRAN, A

MOV A, CRAN+1

RLC A

MOV CHAN+1,A

MOV A, R6

ADDC A, R6

DA A

MOV R6,A

MOV A, RS

ADDC A, RS

DA A

MOV RS,A

MOV A, R4

ADDC A, R4

DA A

MOV R4, A

DJNZ R7,CRANGI

MOV A, R6

Page 90: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

86

ANL A,#OFH

MOV XS+3,A

MOV A, R6

SWAP A

ANL A,#OFH

MOV XS+2, A

MOV A, R5

ANL A,#OFH

MOV XS+1,A

RET

INKEY: NOP ;读键子程序

MOV DP'FR, # 7FOOH ;指向组键盘口 (74LS541)

MOVX A,@DPFR

CJNE A,#OFFH, INKO ;有组键按下,转INKO

SETB P3. 0 ;无组键按下,判独立按键

JB P3.0, INK1 ;12号键是否按下

ACALL YAN20MS ;延时20ms

SETB P3.0

JB P3.0, INK4 ;重新读键,是干扰返回

MOV A, # 12 ;不是干扰,返回键值

SETB P3.0

JNB P3.0,$ ;等待键抬起

ACALL YAN20MS ;延时20ms

RET

INK1: SETB P3.1 ;11号键是否按下

JB P3.1,INK2

ACALL YAN20MS ;延时20ms

SETB P3.1

JB P3.1, INK4 ;重新读键,是干扰返回

MOV A, # 11 ;不是干扰,返回键值 SETB 玛 .1

JNB P3. 1,$ ;等待键抬起

ACALL YAN20MS ;延时20ms

RET

INK2: SETB P3.4 ;10号键是否按下 (0)

JB P3.4, INKS

ACALL YAN20MS ;延时20ms

SETB P3.4

JB P3.4, INK4 ;重新读键,是干扰返回

Page 91: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

87

MOV A, # 10 ;不是于扰,返回键值 (0) SETB P3.4

JNB P3.4,$ ;等待键抬起

ACALL YAN20MS ;延时20ms

RET

INKS: SETB P3.5 ;5号键是否按下

JB P3.5,INK4

ACALL YAN20MS ;延时20ms

SETB 玛 .5

JB P3.5, INK4 ;重新读键,是干扰返回

MOV A, # 5 ;不是干扰,返回键值 (5) SETB P3.5

JNB P3.5,$ ;等待键抬起 ACALL YAN20MS ;延时20ms

BET

INK4: MOV A, # 0 ;无键按下,返回键值OINKRET : RET

INKO: ACALL YAN20MS ;延时20ms

MOVX A, @DPTR

CJNE A, # OFFH, INK5 ;是否干扰,不是转INKS

AJMP INK4 ;是干扰,转INK4

INK5: PUSH ACC

INK6: MOVX A, @DPTR ;不是,等待键抬起

口NE A,#OFFH, INK6

ACALL YAN20MS ;延时20ms

POP ACC ;根据按键赋键值

CJNE A,#7FH, INK7

MOV A,#9

RET

INK7: 口NE A,#OBFH, INKS

MOV A,#4

RET

INK8: 口NE A,#ODFH, INKS

MOV A,#8

RET

INK9: 口NE A,#OEFH, INKA

MOV A,#3

RET

INKA: 口NE A,#OF7H, INKB

Page 92: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

88

MOV A,#7

RET

INKB : CJNE A,#OFBH, INKC

MOV A,#2

RET

INKC: CJNE A,#OFDH, INKD

MOV A,#6

RET

INKD: CJNE A,#OFEH, INK4

MOV A,#1

RET

INDATA: NOP ;采集子程序 CLR Pl. 3 ;关闭7109转换

CLR IN

MOV DPTR, # OFEOOH ;读取低8位

MOVX A, @DPTR

MOV ZAN, A

MOV DFTR, # OFDOOH ;读取高8位

MOVX A, @DPTR

ANL A,#3FH

JB ACC. 5, INDRET ;值为负或溢出,舍弃 JNB ACC. 4, INDRET

ANL A,#OFH

MOV ZAN+1,A

CLR A

MOV A, ZAN ;采集值减40.0℃之对应数据

SUBB A,#90H

MOV ZAN, A

MOV A, ZAN+1

SUBB A,#1

MOV ZAN+1,A

JC BZZW

SETB FBZ ;值为负,置FBZ

SETB IN

AJMP BZZWO

BZZW : CLR FBZ ;值为正,清FBZ,并取补码

MOV A, ZAN

CPL A

ADD A,#1

Page 93: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

89

MOV ZAN, A

MOV A, ZAN十1

CPL A

ADDC A,#0

MOV ZAN十I,A

SETB IN

习MP INDRET

BZZWO: JB HWBZ, INDRET ;恒温,返R

MOV A, ZAN ;非恒温,比较设定温度与采集温度 CLR C

SUBB A, WDSD

MOV ZAN+2, A

MOV A, ZAN+1

SUBB A, WDSD+I

JNC INDDEL ;采集温度大于设定温度,转INDDEL

MOV A, ZAN + 2 ;采集温度小于设定温度0.390 CPL A

Cl卫 C

SUBB A,#5

JC INCADD

INCRET: MOV COUNT, # 0 ;I采集温度一设定温度I < 0.59C

CLR HWBZ

INDRET: RET

INDDEL: MOV A, ZAN+2

CI丑 C

SUBB A, # 6 ;采集温度与设定温度是否相差0一0.590

JNC INCRET ;不在此范围,转INCRET

INCADD: MOV A, COUNT ;在此范围,开始计数

ADD A,#I

MOV COUNT, A

CI丑 C

SUBB A,#30

JC INDRET ;不足三十次,转INDRET

SETB HWBZ ;已经三十次,置恒温标志

MOV HOUR, # 0 ;清时间计数器

MOV MIN,#0

MOV SECOND, #0

CLR P1.2 ;恒温报警

MOV TWO,#100 ;延时2s

Page 94: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

夕0

Yls: ACALL YAN20MS

DJNZ TWO, YlS

SETB Pl.2

RET

YAN20MS : NOP ;延时20ms子程序

MOV YAN,#20

YANIMS: MOV YAN+1, #250

DJNZ YAN十1,$

DJNZ YAN, YANIMS

RET

DN2: CLR C ;除2子程序

MOV A, ZAN+1

RRC A

MOV ZAN+1,A

MOV A, ZAN

RRC A

MOV ZAN,A

RET

DIV2ADD : ACALL DIV2

MOV A, ZAN

ADD A, WDPID

MOV WDPID, A

MOV A, ZAN+1

ADDC A, WDPID+1

MOV WDPID+1,A

RET

TIBET: AJMP TIME6

TIME1: NOP ;PID调节 (定时器1中断服务子程序)

MOV THl,#OBH

MOV TLl,#ODCH

PUSH ACC

PUSH DPH

PUSH DPL

PUSH PSW

PUSH CHAN

PUSH CHAN+1

DJNZ HALF, TI RET ;半秒未到,转TIRET

CPL SSBZ ;取反闪烁标志

MOV HALF, # 4 ;初始化半秒计数 (4)

Page 95: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

91

JB SDBZ, TG

ACALL XSXS

TG: DJNZ WHOLE, TIRET ;Is未到,转TI RET (2)

MOV WHOLE,#2

MOV A, SECOND ;时间调整

ADD A, #1

DA A

MOV SECOND, A

CJNE A, #60H, TIME2

MOV SECOND, #0

MOV A, MIN

ADD A, #1

DA A

MOV MIN, A

CJNE A,#60H, TIME2

MOV MIN,#0

MOV A, HOUR

ADD A,#I

DA A

MOV HOUR, A

TIME 1 I: JB SDBZ, TIME41

TIME2: MOV A, HOUR

CJNE A, # 0, TIME3 ;小时为0否

MOV CHAN1, MIN ;为0,显示分和秒

MOV CHANT+1,SECOND

CI丑 XSBZ

AJMP TIME4

TIME3: MOV CHANT, HOUR ;小时不为0,显示时和分

MOV CHAN1+1,MIN

SETB XSBZ

'TIMFA: MOV A, CHAN1 ;送显示值至显示缓存

ANL A,#OFH

MOV XS+5,A

MOV A, CHAN1

SWAP A

ANL A,#OFH

MOV XS+4, A

MOV A, CHAN1+1

ANL A,#OFH

Page 96: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

夕2

MOV XS+7,A

MOV A, CHANT+1

SWAP A

ANL A,#OFH

MOV XS+6, A

JNB IN, XXS

MOV CJ" ,ZAN

MOV CJWD+1,ZAN+1

XXS: JNB FBZ, XSZ

MOV HXS, #84H

AJMP PP

XSZ : MOV HXS ,#80H

PP: MOV CHAN, CJ"

MOV CHAN+1,CJWD+1

ACALL ASCTOBCD1

TIME41: JNB FMQBZ, TIME5 ;蜂鸣器响否? DJNZ TWIS, TIME6 ;响,2s到否?

SETB Pl.2 ;到,关闭蜂鸣器

AJMP TIME6

TIME5: JNB HWBZ, TIME6 ;蜂鸣器未响,恒温否?

MOV A, HOUR ;恒温,时间到否?

CJNE A, XSSD, TIME6

MOV A, MIN

CJNE A, FSD, TIME6 ;未到,转TIME6

CLR Pl.2 ;到,蜂鸣器响

SETB FMQBZ

MOV TWIS,#3

TIME6: MOV A, COOD

CJNE A, # 0, TIME66 ;制冷时间到否?

AJMP TIME7 ;到,转TIME7

TIME66: MOV A, COOD ;未到,返回

DEC A

MOV GOOD, A

T2RET: POP CHAN+1

POP CHAN

POP PSW

POP DPL

POP DPH

POP ACC

Page 97: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

93

RETI

TIME7: NOP

MOV A, STOP

CJNE A,#0, TIME70

AJMP TIME71

TIME70: CI.R ZLBZ

DJNZ STOP, T2RET ;15s到否?未到,返回

TIME71: CLR C ;温度到达90%预置温度?

MOV A,(习WD

SUBB A,WDPID

MOV A,口WD+1

SUBB A, WDPID+1

JNC TIME9

TIMER: AJMP TIMEF ;未到,返回

TIME9: CLR C ;到达,计算本次En

MOV A, WDSD

SUBB A, CJWD

MOV EN,A

MOV A, WDSD+1

SUBB A, CJWD+I

MOV EN+1,A

DJNZ THREE, TIMEA ;45s到否?未到,返回

MOV THREE,#1 ;到,进行PID调节

MOV A, EN ;En+E} _ z

ADD A, EN2

MOV UN, A

MOV A, EN+1

ADDC A, EN2+1

MOV LIN+1,A

CLR C ;E�+E。一z一E。一I

MOV A, LIN

SUBB A, ENI

MOV LIN, A

MOV A, LIN+1

SUBB A, ENI+1

MOV UN+1,A

CLR C ;En+En_z一2En_]

MOV A, LIN

SUBB A, EN 1

Page 98: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

94

MOV LIN, A

MOV A, LIN+1

SUBB A, EN I+1

MOV LIN+1,A

MOV A, LIN ;Kd(En+En-2一2E�_I)

MOV B, PIDD

MUL AB

MOV LIN, A

MOV LIN+3,B

MOV A, LIN+1

MOV B, PIDD

MUL AB

ADD A, LIN+3

MOV LIN+1,A

MOV LIN+2, B

MOV A, LIN ;En+Kd(E,+E.-2一2E�_1) ADD A, EN

MOV LIN, A

MOV A, LIN+1

ADDC A, EN+1

MOV LIN+1,A

CLR C ;E。一En_]+Ka ( E}+En_2一2E。一1)

MOV A, LIN

SUBB A, EN1

MOV LIN,A

MOV A, LIN+1

SUBB A, ENl+1

MOV LIN+1,A

MOV UN+2, EN

MOV A, EN+1

MOV LIN+3,A

CJNE A, # OFFH, TOKD ;E。为正,转TOKD

MOV A, EN ;为负,取补 CPL A

ADD A,#1

MOV UN+2, A

TOKD: MOV A, LIN+2 ;Ki‘En

MOV B, PIDI

MUL AB

Page 99: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

95

MOV LIN+4, A

MOV LIn+5,B

MOV A, LIN+2

MOV B, PIDI+1

MUL AB

ADD A, LIN+5

MOV LIN+5,A

MOV A, B

ADDC A,#0

MOV LIN+6, A

MOV A, LIN+3

CJNE A,#OFFH, TOKE ;E。为正,转TOKE

MOV A, LIN + 4 ;E。为负,结果取补

CPL A

ADD A,#1

MOV LIN+4, A

MOV A, LIN+5

CPL A

ADDC A,#0

MOV LIN+5,A

MOV A, LIN+6

CPL A

ADDC A,#0

MOV LIN+6, A

TOKE: MOV A, LIN+6 ; Ki x E.十En一E。一I十Kd(En+Ea _ 2一2E�一1)

ADD A,UN

MOV LIN,A

MOV A, LIN+I

ADDC A, EN+1

MOV LIN+1,A

MOV A, LIN+4 ;Kp〔Ki x E.+E。一En一1+Kd (E.+E,一z一2E,一1)] MOV B, PIDP

MUL AB

MOV LIN+4, A

MOV LIN+6, B

MOV A, LIN+5

MOV B, PIDP

MUL AB

ADD A, LIN+6

Page 100: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

96

MOV LIN+5,A

MOV A,B

ADDC A, #0

MOV LIN+6, A

MOV A, LIN

MOV B, PIDP

MUL AB

ADD A, LIN+6

MOV LIN, A

MOV A, B

ADDC A,#0

MOV LIN+6, A

MOV A, LIN+1

MOV B, PIDP

MUL AB

ADD A, LIN+6

MOV LIN+1,A

JB ACC. 7, TOKF ;结果为负,转TOKF

MOV A, LIN + 5 ;结果为正,四舍五入

ADD A,#80H

MOV A, LIN

ADDC A, #0

MOV LIN, A

MOV A, LIN+1

ADDC A,#0

MOV LIN+1,A

AJMP TOKG

TOKF: MOV A, # 80H ;结果为负,四舍五人

CLR C

SUBB A, LIN+5

MOV A, LIN

ADDC A,#0

MOV LIN, A

MOV A, LIN+1

ADDC A,#0

MOV LIN+1,A

TOKG: MOV A, SNl ;Sn=sn一I+Kp [ Ki、En+En一E�一,+Kd (E.+En一2一2En一1)l ADD A, LIN

MOV LIN, A

Page 101: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

�一

97

MOV A,IJN+1

ADDC A,#0

M〔)V HN+1,A

JB ACC.7,zuix认0 ;结果为负,送最小制冷时间

」NZ ZUIDA ;结果为正,且大于256,送最大制冷时间

MOV A,LIN

CLR C

SUBB A,#120

JNC zUIDA ;结果大于120 (155),送最大制冷时间

M〔)V A,HN

CLR C

SUBB A,#33

JC zUix认0 ;结果小于33(45),送最小制冷时间 习MP TOKH

ZUIDA: M(〕V HN, #120

AJMP lr()KH

ZU玖IAO: MOV IJ】N,#32

ToKH: Mov sNI,HN ;保存本次5。,作下次Snl

Mov ENZ,ENI ;本次E。_,作下次刃。_2

MOV ENZ+1,ENI+1

Mov ENI,EN ;本次£。作下次百。_1 MOV ENI+1,EN+1

TIMEF: MOV C00D,SNI ;调节C00D,STOP

CLR C

MOV A,#120

SUBB A,COOD

MOV SIX)P,A

SETB Z姗2 ;置位制冷标志

AJMP TZRErr

ERR01: MOV XS,#OC阳 ;显示 “Errl”,温度错误

MOV XS+1, #10H

M()V XS+2, #10H

MOV XS+3, #1

ACALL DISP12 ;显示转换

ORL HXS+2,#80H

ACALL DISPLAY ;显示

Mov xs,#84H ;清温度显示 CLR A

MOV XS+1,A

Page 102: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

夕8

MOV XS+2, A

MOV XS+3,A

AJMP ERR

ERR02: MOV XS + 4, # OEH ;显示 “Err2",时间错误

MOV XS+5,#IOH

MOV XS+6,#IOH

MOV XS+7,#2

ACALL DISPL2 ;显示转换

ACALL DISPLAY ;显示

CLR A ;清时间显示

MOV XS+4, A

MOV XS+5,A

MOV XS+6, A

MOV XS+7,A

ERR: MOV R2, # 50 ;延时is

ERR2: ACALL YAN20MS

DJNZ 甩,ERR2

RET

DISPL2: MOV DPTR, # XSTAB ;显示转换子程序

MOV HXS, XS

MOV A, XS+1

CJNE A, #0, DISI

MOV HXS+1,#80H

习MP DIS2

DIS1: MOVC A, @A+DPTR

ORL A,#80H

MOV HXS+1,A

DIS2: MOV A, XS+2

MOVC A, @A+DPTR

MOV HXS+2, A

MOV A, XS+3

MOVC A, @A+DPTR

ORL A,#80H

MOV HXS+3,A

MOV A, XS+4

MOVC A, @A十DPTR

ORL A,#80H

MOV HXS+4, A

MOV A, XS+5

Page 103: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

夕夕

MOVC A, @ A+DPTR

ORL A, #80H

MOV HXS+5, A

MOV A, XS+6

MOVC A, @A+DPTR

ORL A, #80H

MOV HXS+6, A

MOV A, XS+7

MOVC A, @ A+DPTR

ORL A, #80H

MOV HXS+7, A

RET

PASSI : MOV HXS, # OEEH ;左侧显示 “PASS"

MOV HXS+1,#OFEH

MOV HXS+2,#OD7H

MOV HXS+3,#OD7H

AJMP PAXS

PASS2: MOV HXS + 4, # OEEH ;右侧显示 “PASS"

MOV HXS+5,#OFEH

MOV HXS+6,#OD7H

MOV HXS+7, #OD7H

PAXS : ACALL DISPLAY

MOV ZAN, # 50 ;延时is

XSPAS: ACALL YAN20MS

DJNZ ZAN, XSPAS

RET

ENDS

END MAIN

Page 104: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

附 录

附录A MASM51伪指令格式及编程风格

MASM51.EXE软件是美国Intel公司的产品,用于对51系列单片机汇编语言进行编译的

编译工具。其伪指令相对来说比较丰富,除了其它编译软件所具有的ORG, DB, DW, DS,

EQU, END等伪指令外,还具有XSEG, BSEG, DSEG, CSEG, ENDS等伪指令。其编程风格类似于80X86汇编语言,程序中包含地址标号定义段、位定义段、数据定义段和代码段,使

得程序设计员编制程序时,对于直接地址以及位的使用不必再死记某地址或某位的具体含

义,而代之以直接使用其变量名,编制程序时快速,编制的程序易读、结构清晰,且利于修

改。

一、伪指令

1.设置起始地址ORG (Origin)

其一般形式为:ORG NNNN

其中ORG是该伪指令的操作码助记符,NNNN是16位的二进制操作数。前者表明为后继源程序经汇编后的目标程序存放位置,后者则给出了存放的起始位置。

ORG伪指令总是出现在每段源程序或数据块的开始。它可使程序员把程序、子程序或数据块存放在存储器的任何位置。

2.定义字节DB (Define Byte) 其一般格式为

<标号>: DB <项或项表>

如: ORG 1000H

SEGI: DB 87H, 9EH,‘1’, 2,,‘ASCII'

则:( IOOOH)二87H (1001H)二9EH (1002H)=31H

(1003H)=32H (1004H)=41H (1005H)=53H

(1006H)二43H (1007H)=49H (1008H)=49H

3.定义字DW (Define Word)

其一般格式为:

(标号>: DW <项或项表>

DW的基本含义与DB相同,但DB用于定义8位数据,而DW则定义16位数据。在编

译程序时,机器会自动按高位字节在前、低位字节在后的格式排列。

4.预留存储区DS (Define Storage) 其一般格式为:

<标号:> DS <表达式>

该指令功能是由标号指定单元开始,定义一个存储区,以备源程序使用。存储区内预留

Page 105: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

101

的存储单元数由表达式的值决定。如:

ORG 40H

TIME:DS 4

HIGH: DS 8

即从40H开始保留4个存储单元给TIME,从44H单元开始保留8个存储单元给HIGH

5.为标号赋值EQU (Equate) 其一般形式为:

‘标号:> EQU ( rm或表达式) 其功能为把un或表达式的值赋予本语句的标号,故又称为等值语句。

6.源程序结束END

其一般形式为:

<标号:) END

该语句是一个结束标志,它告诉编译程序,该程序段已结束。END语句必须放在整个程序之后,若该语句出现在代码段中间,则编译程序将不汇编END之后的语句。

7.地址标号定义段标志XSEG

该指令用于定义地址或标号时,把地址、标号定义单独作为一段。

8.位定义段标志BSEG

该指令用于定义位时,把定义的位标志单起一段。

9.数据定义段标志DSEG

该指令用于定义内存变量时,把定义的内存变量单独作为一段。

10.代码段标志CSEG

该指令的作用为把程序代码单独作为一段。

11.段结束ENDS

该指令的功能为结束段定义。

二、编程风格

MASM51所支持的汇编语言格式类似80X86格式,它使得所设计的程序结构清晰,编程

简洁、思路明快;编制的程序格式严谨、易于阅读;后期修改程序时,若变量地址需要变动,对于程序段中使用的变量,则不需改动,只需改动前面的变量定义即可完成,即程序修

改工作量大大减小,提高了效率,减少了出错机会。

其格式为:

XSEG ;地址标号段

ORG OEAOOH

PA: DS 2

PC: DS 1

ENDS

BSEG ;位定义段

ORG 0

FLAG: DS 1

TEST: DS I

Page 106: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

102

ENDS

DSEG ;数据定义段

ORG 0

TIME: DS 8

DATA: DS 8

NUM: DS 8

SING : DS 6

PAI: DS 2

ORG 22H

KAI: DS 2

ENDS

CSEC ;程序代码段

ORG OOOOH

IJMP: MAIN

中断人口区

MAIN: 主程序

ENDS

END

在上述程序段中,(PA)二OEAOOH, (PA + I) = OEAOI H, (PC) = OEA02H。经过XSEG

段的定义后,在以后使用PA, PC时,可如下操作:

MOV DPTR,#PA

MOV DPTR,#PA+I

moll DFIR,#PC

对于直接位地址OOH, 01H,可如下操作:

JB TEST, rel

JNB FLAG, rel

对于直接单元地址OOH, 08H, 09H, 22H,可如下操作:

MOV A, TIME

MOV DATA,A

MOV NUM, DATA+1

MOV B, KAI

也就是说,对于直接地址位、直接寻址单元操作时,不必在程序中书写直接地址,只需

使用变量,这就不需要编程人员死记某个单元的具体含义,使得工作效率提高、出错机会减少。当编程过程中发现单元冲突或某些特殊原因,需要重新安排内存的使用时,不需对整个

程序进行大的改动,只需修改前面的定义即可。同样提高了效率、减少了出错机会 (甚至不

出错)。

Page 107: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

附录B MCS-51单片机的OBJ和HEX代码文件格式

及HEX代码文件转换为OBJ代码文件的方法

一、OBE和HEX代码文件格式

单片机汇编语言在经过编译软件编译后,形成目标代码文件。目标代码文件有OBJ代码

文件、HEX代码文件和BIN代码文件 (OBJ, HEX, BIN为文件的扩一展名),其中OBJ代码文

件与HEX代码文件是ASCII码文件、BIN代码文件为二进制文件。

ASCII码文件即文件内容为ASCII码,可通过DOS的TYPF:命令显示在屏幕上或打印在打印机上。二进制文件不能直接显示或打印,只能通过二进制编辑工具如PCTOOLS查看。

如单片机汇编语句LCALL 1220H经编译形成ASCII码文件后,显示为12 12 20。用PCTOOLS

查看为31 32 3132 32 30;若经编译形成二进制代码文件,只能用PCTOOLS等二进制编辑工

具查看、编辑,用PCTOOLS查看为1212 20, 下面介绍这三种文件的格式。

1. OBJ代码文件格式

OBJ代码文件为单行文件,即从文件开始到文件结束为止,除了有效代码外,中间没有

任何回车、换行标志及其它多余符号,仅在文件开头有a个字符的说明标示。

其格式为:SSSSEEEEDDDDDDDD .................. DDDD

其中SSSS为代码开始存放的起始地址 (对51系列单片机恒为0000), EEEE为最后一个

代码的单元地址 (有些编译软件形成的OBJ文件此地址为最后一个代码所在单元的下一单元

地址,即代码个数),OBJ代码文件中包括有效代码 (有效代码为程序中的汇编语句编译形

成的代码)和无效代码 (无效代码为程序中没有使用的程序空间,恒为00) o DDDDDD....... --DDDD的长度为 (EEEESSSS) * 2,即从SSSS地址开始到EEEE地址结束,中间没有间隔。 2. HEX代码文件格式

HEX代码文件为多行文件,文件内容仅为有效代码,文件格式为 (每行):

:NNAAAAXXDDDD...... DDJJ

其中NN为本行中有效代码的个数,AAAA为本行代码的起始地址,XX为类型标示 (数

据标示为00), DDDD...... DD为有效代码,ii为校验码。DDDD... DD的长度为NN *2o

3.BIN文件格式

BIN文件为二进制文件,每个字节存放一个代码 (OBJ和HEX文件每两个字节存放一个代码),没有开始与结束地址标志。文件内容可以说是与程序存储空间一一对应,即为内存

影像文件。

二、FIEX文件转换为OBJ文件的方法

对于某些单片机仿真器来说,只能接受OBJ代码文件。并且编译工具不能把您的汇编程

序编译为OBJ文件格式 (由于某些伪指令不能被识别),但是可以编译为HEX文件格式。此时,修改程序为可行方案,但工作量是个不得不考虑的问题,且易在修改中造成严重错误;

当然也可以用编辑工具把HEX文件修改为OBJ文件,但同样存在工作量及出错问题。所以

有一个工具能够把HEX文件转换为OBJ文件是非常理想的。

Page 108: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

104

既然了解了HEX文件与OBJ文件的格式,就可编写一个小程序进行这个转换。其方法

是根据HEX文件每行中给出的代码地址,把有效代码放人指定单元,未使用的单元清零即

可。

#include <stdio. h>

#include <stdl山.h>

#define N 16394

#define M 45

#define TRUE I

int chang ( char ch) {

int num;

if ( ch>= 0'&&ch<= 9')

num=(int) (ch一‘0');

else if (ch>= ‘A'&&ch<=‘F,)

num二(int) (eh 一 ‘A'+10);

else

printf("Num error.\n" ); exit (0);

return ( num);

void main (void)

chars [ N ]= !0',0',0',0'};

char sl [M],s2 [M],infile [ 341,outfile [ 341;

int i, j,start;

int II;

FILE * in, * out;

printf("Enter the infile name>”); scanf(“%S11,infile);

printf("Enter the outfile name>”);

scanf(“%S ",outfile );

if((in=fopen ( infile, "r" ))==NULL) 1

printf("Can not open infile‘%S '.\n'},infile ); exit (0);

Page 109: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

105

if((out= fopen (outfile, "w"))==NULL){

printf("Can not open outfile‘%S'.\n,outfile );exit (0);

printf("Start change, wait a moument please!”);for (i二4; i<N; i++)

s「i礁= 0';

fscanf(in,“%S11,s1 );

do

for(i==0; i<45; i++)

s2 [i]=sl仁i];

start=(long) (chang(sl [31)‘.16+chang (s1 [4]));start二(long)((start‘16+chang (sl [5]))‘16+chang (sl [6]));start=( long) ( start‘2+S);

11=(chang (s1〔1])‘16+chang (s1 [2]))‘2;for (i==start, j=9; i<start+11;i++,J++)

s「i]二s1 [j];fscanf(in,“%s",SO;

}while((sl[1]!== 0' Ilsl [2]!= 0')&&!fed ( in));

if((s2[1〕!= ‘I’)&&(s2 [2]!= o'))

s [4]=s2 [3);

s [5]二s2 [4];

s [6)=s2 [5];

s [7]=s2 [2];{

else

s [4]=s2 [3];

s [5]=s2 [4];

s [6〕=s2 [51+1;

s [7-=s2 [2];

if (s [6]>‘F')

s [6]= F';

Page 110: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

106

s [5]=s红5]+1; if(s仁5]> ‘F,)

s [5]=‘F';

s [4]=s [4]+1;

} } {

for(i=0; i<start+11;i++)

fprintf (out,“% c�,s[il); }

fprintf (out,“\32");

Hose(in);

fclose (out);

附录C 单片机实验系统结构简介

本单片机实验系统是承德石油高等专科学校开发的。

本实验系统以提供给学习单片机的人员一个良好的学习、实验环境为宗旨,是基于实验

的目的而开发的,它必须与仿真器连接在一起进行实验。或者在系统开发完毕,并且程序固

化插人EPROM插座后,作为一个独立的系统使用。

实验系统结构见图F3-5(各电路模块用虚框括了起来)。

本实验系统中包含了:单片机最小系统,LED发光二极管电路,LED数码管显示及驱动

电路,用户布线区,开关电路,4行6列键盘,8279, 8155, 8255, 8253, A/D, D/A,串/

并,并/串等电路和复位电路。本实验系统可独立进行的实验包括:LED显示实验,键盘实

验,中断实验,定时/计数器实验,简单UO接口实验,8279键盘显示实验,8255并行输人

输出实验,815510/CTC/RAM扩展实验,8253定时/计数器实验,ADC0809模/数转换实验,

DAC0832数/模转换实验,7415164串/并转换实验等十多种实验。与其它电路组合后可完成

大量实验。另外,本系统还可组成一个独立的应用系统,大大加快了应用系统的研制、开

发。

为了实验方便,实验系统中各个电路的数据线已经连接完毕,不需要实验者自己再连

线。但是,为了让本系统能够作为一个最小系统来使用,系统的地址线和数据线与其它电路

没有直接连通。当使用者需要时,可通过跳线器连接 (不需连线)。系统中的各部分独立电

路的电源、片选、复位以及各种控制信号线没有连接,需要使用人员在用到时自己连接,可

通过跳线或导线连接。这样做的目的,是为了让实验人自己尽可能多的动手连接电路,提高

动手能力,达到实验的预期目的。

各部分电路的连线图如下 (0表示未接线,.表示已接线):

Page 111: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

107

(1) LED发光二 L1 L2 L3 L4 L5 L6 L7 L8 L4 LIO L11 L12

极管显示电路:本系统 击 击 击 击 击 击 击 击 击 击 击 击._,,._ _ ‘二 ‘_ .半叭二阵,’浏阵电二仁狱」卜讯二林嗽‘半冲户仁叭洲阵认公拱嗽-半.叭公沁,\

提供了12只发光二极 }”{”}”1”}”}”}、’}”{”!”{”}管及驱动电路,输人端 }}}一}1!}}}}}!}}}}}!}}}1IlkOX 12

为高电平时发光二极管 匕匕二一介 止一一上二一{一匕上下土亮。

图F3-1发光二极管及驱动电路

(2) LED数码管显示及驱动电路:本系统提供了8个数码管及相应驱动电路,从左至

右分别为LEDI一LED8。数码管的段控和位控分别由一个74LS541加以驱动。

DO o-犷介布 i8 — 一 一一 一 — 一一一一一一一一~一一一 一 — 一— 一一 DIO~‘翎 M 卜 " 一一一一一一一一一,-F-一一一一一一,I-- ‘一一,4一一一一一一,4~一一一一一,-1-- 一 一 -I"一一 一-一一卜一一一~一 I

篡一 5‘16l5一一可十一 1!一一洲-一Ii一一十一-可伟一吊一`,!{ 码 :一'- 61 二斤4一一一一一口丁厂一一门下有一一一丁们丁一一一下甘下一一丁汀r }}} 控 ·l.r}-y ,价万一一一一门寸侧寸一一丁卞川卞一一门寸卞廿一一一州寸什 -一门寸廿十--一下廿村一— 廿十廿一一-1 I}{{ 制 {Q I I令一一一一廿十廿十一一叶什州一一丫村十 }}日}

D70= i (M -- 一一一,斗斗十斗+十十一 十 I}}}}}}

E0-"=ghl I I ! I I I I I I I

Do 0---f=4 -一一一一一‘ ..j } I I -1 T I 一 I !一一- -r~一丁一一一一了一一「一一-T T-

D1o-一‘月 ol 一一一一一一一= I- -} I-} F- i F-- i 1--i I---}

11一‘41 " l6S} 15一一一一 } 1 ! } F - fl, ·_ F】 ·石石,一一一一一~一 一一一一— -一一~一 } } I t 控 :。一'I :I11一一一一一一一一一一 — 一 于 1 1 制 。-o1 It扣~一一一一一一一~一一一一 一 I }

D70---f rn l- ~一一一一一一一一一一一一一一一-一一一一一 一 一

Eo--14兰 』

图F3-2 LED数码管及驱动电路

(3)逻辑电平开 SI S2 S3 S4 SS S6 S7 S8 S9

关电路:本系统提供了 占 人 人 人 人 上 人 人 人

9只开关S1一S9,开关 宁足丫足丫足甲足罕足甲又?呈宁足?R

上方为逻辑电平输出 !牡仁呈上 甲上甲上yl川 y1 y1 }‘一三,。

端,开关向上拨输出高 } 1 } } } } { I }{电平,向下拨输出低电

平 图F3-3逻辑电平开关电路

(4)复位电路: Q+5V YO Y1 ;, ,. � Y7

该电路为T-作时需要复 冷 151141 131 121 111 101 91”}

位的芯片提供复位信 } 「一~一一一一一一习

号。使用时需把该电路 下艺立刃 J ‘一 “ !的电源接通,把需要复 日,kO ,1,1云l烈 丫丫 1

位信号的芯片的相应管 生 0: 0P25 P?6品 } .a

脚接至本电路的输出即 复位电路 味碗路可。

图F3-4 复位及译码电路

Page 112: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

108

洲:! 1}}I I' I I}.}I!一{ ;N,UL正五目LJ , } n n }}nnnLJ.'{留

口 圈

Page 113: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

109

(5)译码电路:该译码电路的译码信号来自于P25, P26, P27,则YO一Y7译码输出为

0000一1FFF, 2000一3FFF, 4000一5FFF, 6000~7FFF, 800()一9FFF, A000一BFFF, COO()一

DFFF, E000一FFFF,

附录D 实验线路举例

(一)说明:

(1)所举例的实验电路已经在本系统做好。

(2)所举例的实验线路以及实验中的线路中,凡打 “.”标记的信号本系统已经连接完

毕,使用者不需连接。凡打 “O”标记的信号尚未连接,需由使用者进行连接。

(3)本系统提供了40列x6行的用户布线区,使用者如果需要另加线路,或本系统提

供的信号插孔不足时,可在此布线区连线。

(二)单片机最小系统

urr。一一 、C GNDh -. ._. .--- 131 v,)np ‘ 一-一 一一一- - 目— -一一一一--,--- 一一= 1A12 !

"CC n3110052S Ik0X1 19X2 18引 一 图F4-1单片机最小系统

(三)8279键盘显示实验 该实验利用8279进行键盘和显示实验。按下述方法连线;

(1)把IRQ用跳线器连接。 (2) OUTBO一OUTB3及OUTAO一OUTA3接至LED数码管的段控驱动器7415541的输人

(74IS541的输入自左至右为E, A...G, Dp)o (3) 8279的电源8279VCC和8279译码用74LS138的电源VCC用跳线器连接;接通8279

的片选CS至地址译码输出。

(4) 8279译码用的741S138的输出YO一Y7接至LED数码管的位控驱动器74LS541的输

人,并接至键盘的行输入。

(5) 8279的RLO一RL7接至键盘的列输出。

(6) 8279的RESET接至复位电路的输出。

Page 114: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

110

(7) LED数码管驱动器74L9541的控制端 (最左侧的插孔)接地。

INTO___II只叙Affrz#!74LS5411 1Id 7 .吧 月二州 曰 IRQ SLI片索一一一-— ~一一~酬tS Y 1卜r寸 引 }

,, I--1 I SLL11 enn 瓜厂一一一一一一一一门、 。} 1-1一一AI插I 接LED数码管位控 o于 ff CS SL3 _! 卜冷一创 卜一驱动器74LS541 0----C RD BD牟=一一一一一,月E1 ’卜哭一月。】 及键盘行线 奋一‘一一--G WR RLO一 ‘-,y tt .P ----一一-I一 1

.一- ,- 一AO RLI— r= 1 E3 Pr 一一一」 I

.‘一一 - >CLK — 、 一 】 Y7P=~一一1 I

一 RESET .丁一—

;二 SHIFT0 CTRL /S-RL7 68 ‘一‘键”线 图F42 8279键盘显示实验

(四)8255并行接口实验线路及81551/0/RAM实验线路

r,ee l皿 4r分于丁ee ee.巴二, 34 ___ __‘ 12爪井芯丁-~-下下月 21 _ I厂一门 1 户‘weee一一一一一一月PAO DO 一一-.DO DO.一一一‘州A”U 尸A 一一-— 一一州 1

1 11- ~一-一一一24 PA I D1V--:!-~一一.D) DI +f-一一一-1 All 1 PA 11 ==--- — 一一钊 】

县 W,一一一一-一一--? r}PA7 D7 h=‘一一一. D7 D7 a一 一-LL4AD7 PA71} 一一一— 一 一= 1 I

I 1=-一一一-一一一='4PB! WR1==一一一.WR WR.一一==q WR PBI F- 一一一- 一一=i I

I P一一一一一一一一 6}1 ki-) i I---一书 RD RD 卜-一二日 RD 一一一 一‘钊 n 1

I“ V-一一 ~一~ a . AO P‘一一一-0 AO C-一一一=-I 10 / M } -一一一一一 -一刊 I-I

I r'- esee一- 0I· AI I0一一一。AI ALE.一一上日ALE F--— 一一-l I T I

I c 1} ., I _ RRTP"-一一一-o CS o一一---q CE _' I t n】 】

321三12 CS -一 RST RESET PC5 5 6uLO PC7 图F4-3 8255并行接口实验及8155vo/RAM实验线路

实验时根据需要把图中的控制信号 (8155为RST, IO/M, 8255为RST)、片选信号丽以及电源VCC连接 (VCC为跳线)完毕,而并行口PA, PB, PC根据需要进行连接。

Page 115: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

111

(五)8253定时/计数器实验线路 8253 DAC0932

DO 9寸DO ·:。 、-- 7 。一 一 DI e-- 7 DI o,,和 -1-0 ---<, 户lsbu‘0 ‘“‘ UU’u不 、 Dlt一一6 Dl l F一 6- r.ATFn二匕-n ’一 ”,‘ ;_一,二1__,

’s--令 CLKO--} .卜-4 ,。 .卜一4· OUTI 1 .卜-it. 1。ut2 0} ti 一 万 夕巴‘下,一“ .卜一兰.: ’0“一 _- 3 . GATE I 64‘一 ·卜一行.: 卜一 2 CLKI<; IS -0 .~言 Rfh- 9一一.-o 07~ 当D7 ni M 17 _ ~力D16 22j GATE2_. 16 o D7- "msbDl7 v,f 8 - RD - - C= i.。 。 甲‘.五 -

。 } 2}3c CLK2 -"----0 CS 0-7二 ' CS AO e- 19二 呈 17 Xfer ILE-- 19 --+5V A 1 0-巫 W R2廿-T-6 WR

C S o-? 1c— 一一一W RI 7-J 图F4-4 8253定时/计数器实验及D/A转换实验

8253的数据线已经连接好,用户在使用时仅需把电源VCC、片选信号CS接通,并根据

需要连接CLK,输人、门控GATE *和输出OUT ,即可进行实验。

(六)D/A转换实验

DAC0832的数据线和控制信号已经连接好,用户在做D/A转换实验时,需要接通电源

VCC、连接片选CS}

另外,由于电源的限制,本系统未加运算放大器芯片,用户在进行D/A转换实验时,

需要在用户布线区搭接运放电路,以便对DAC0832输出的信号进行放大。

(七)A/D转换实验:

本系统的A/D转换芯片为ADC0809,其数据线已经连接完毕,地址线也已连通,控制

信号ALE, START, ENABLE已经由丽币、丽 与片选丽组合后以跳线的方式连到了ADC0809

的旁边,A/D转换使用的时钟信号CLOCK也已经由74LS74对ALE信号分频后接到附近,转

换结束信号EOC已由74L504反相以跳线的形式拉到ADC0809附近,用户使用时只需连通跳

线即可。

ADC0809

李忿74LS74 74LS74Q C[,K Q CLK ALEQ D Q D 图F4-5 A/D转换实验

Page 116: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

112

用户在进行A/D转换实验时,①需要接人模拟量到八个模拟输入通道之一;②接通片

选信号CS;③把转换结束信号EOC的跳线接通;④接通转换时钟信号跳线CLK;⑤接通电

源跳线VCC.

(八)串行通信实验

本系统上提供了一片串并转换电路74LS164用于进行串行 一74LS164 .植 ,,。‘、、二心 * 。入 ,J,。.,J。 、 * ,二 ,,.‘、、 比 ‘ 二 二 。vn一 ]三‘ QO一,- o输出的通信实验。·74LS164是一片串人并出的芯片,数据位一 RXD F丁一夸全 渐」~一 L一一“三B t’三‘ 一

位一位传人 ,待 8位数据全部传人后 ,一并送 出。 一

田 自可 5k11田 太 共 }!- 4# 14 苗 除知 的 由 i4 t&中 捅 信 字 t14. 耸 TXD。一--一‘‘CLK _ 10 用尸 pi利用今 心 斤 进 仃 毕 厅 ,VL阴 甲 仃牺 山遇 1a头组 。升 ’““‘ 一 “八 ·止竺一~

出的数据接到LED数码管的段控驱动器,LED数码管的位控 ”cc.一-毛MR ’立二二:-5E动}w u呆恒但m地用寸4#0 m显不。 一一一一止塑止三}

用户需要连接的信号有:电源VCC、串行信号TXI〕及

撇、并出数据。 图F4-6串行通信实验

附录E 常用芯片的引脚号和信号名称

一、共阴极LED数码管管脚配置图及74LS541管脚配置图,功能图,功能表

GND

g f a b

!。}!}) GI -T-20- VCC A(一一 — _r- -1 AO- 一 G2 AI— — YO I 。,n I v I It B lb AI- - YO — — YI IU且 ““ ‘一} 一 I _厂. 1_ - - 丫1 - — — . I } 1

一 .up __ _ 一 。 I } !

..... .- - . A7— — I } n }n I . 性 ⋯ A7一 - - Y7 I- 一 ! !

c aGN c ap GND}10 11 - Y7 G1--cGND G2 一一_ 匡0 I口 图F5-2 74LS541管脚

图F5-1共阴极LED a,二二 图F5-3 74LS541功能图 一--- 一、价’”一一 配置图 ~‘““ ’-一 一‘分““目 数码管管脚配置图 74LS541功能表

二、74LS273, 74LS373管脚配置图及功能图、功能表

CLR !一、‘-'20- Y,,,, DO

00- - 07 DI— — QO I %-LK - L}v1 DOse we D7 — — 01 I n v v } n I

Dl - - D6 — 一 I I I

nI- - 06 . — — I 1 , .I , I

02- - 05 _ — — ’ ! I I

D2- - D5 — — 。 I I t n1 n !

D3- — D4 D7— 一 I I I n3- - 04 CLK - — Q7 I , 八 v}- I

GND- 10一 11- CLK CLR-Q一一一, L一一---.-I - I

图F5-4 74LS273管脚配置图 图F5-5 功能图 功能表

Page 117: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

1了了

OE - I k--/ 20- W广 DO一 ,-一一 一 00— — Q7 Dl- - Qo I "0一 "一 " I C I DOse se D7 — 一 QI ! n I , }, !

DI- - D6 -— — I } I

01 - - 06 ·— — I n I n I n I

02- 一 OS — — . I { I

D2se se D5 — 一 _ I n I v I nn I

D3 - D4 D7 - — I } I

n3- - 04 G— — Q7 I , v v }二 I

GND- 10.- 11- G OE一 L --一一 - I

图F5-6 74IS373管脚配置图 图F5-7功能图 功能表

三、74LS138译码器管脚图、功能图、功能表

A- 1 U 16- Vcc A- — 一 YO , V 。。 。— . ,U EI E2A E2 B C B A YO一Y7

B- - YO B- " 之卜- Y1 一

仁ee se Y1 n_ ~ 0 X X X X X 1

E2A 。 一 . X 1 X X X X 1

E2B一 ee o. 一 。 X X 1 X X X 1 “ 。 — — . E1— 0--

Eles se _>- - 1 0 0 0 0 0 YO =0

Y7一 - 一 。。‘一 一 . 。 · : : : : 且,— — E2A - --a 习一 ; 于 { : : : :

GND— 8 9- Y6 E2B-o一一一z"-Y7 1一 0一 0一 1 1 1一 Y7=0

图F5-8 74IS138译码管脚图 图F5-9功能图 功能表

四、74LS244(单向驱动器)与74LS245(双向驱动器)管脚配置图、功能图、功能表

IG - I U 20 - VCC IAI一 一- — JAI一 - 2G IA2 - — lyl G A Y 2Y4一 - IYI IA3- — IY2 _ __ , . ‘. 1 X 高 阳 JA2一 一 2A4 IA4 - 卜-IY3 ‘ ” ,朴 2Y3一 - IY2 2A1一一一止 — IY4

_ _ 一--- 一 0 1 1 IA3 - - 2A3 2A2- — 2Y1

2Y2 - - IY3 2A3- -- 2Y2

IM一 - 2A2 2A4 - — 2Y3 0 0 0 2Y1一 - IY4 IG - C - 2Y4 — ’一

GND-- !10一 11- 2A1 2G ---C

图F5-10 74IS244管脚配置图 图F5-11功能图 功能表

DIR - 1 v 20- Vac AO— 一一 —

AO— — 百 AI一一‘ — BO G DIR A B Al- - BO — — BI , 、, 官, *,

。‘ I X 高 阴 高 阳 一 一 BI - — 一

0 0

- 一 ‘,_ _ 0 1 一 - 一 。 A7— 一 U

A7- - G一一C _ B7 —

GNDee 10 11— B7 DIR-

图F5-12 74IS245管脚配置图 图F5-13功能图 功能表

五、四2输入与非门74LS00、四2输入或非门74LS02、六反相器74LS04、六高压输出

缓冲器74LS07管脚图

Page 118: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

114

一 v - 一 、J - IA一 -一一, - Vrr" I A一 ---, — V户广

IB- 'I & I f-- 4B IB} }}& } .一一 4B

IY一 -J }cC}一 4A Iy } J }改 }.一 4A

2A ! } ‘一 4Y 2A - .- , 一 4Y

2B- ~ 'I a !r '- 3B 2B一 'I& I r- - 3B

2Y一 一~J I ac!一 3A 2Y- ,一一/ I& I'~es 3A

GND一一一一立了一,y GND, 一一兰了一3Y

图F5-14 74LS00管脚图 图F5-15 74LS02管脚图

IA -Lnl尸一-}VCC IAIiI L尸一- VII 1Y 」II一 6A IY一 一 -二 I I 11to 6A

2A- ,( -I L ‘ ‘一 6Y 2A一 }II L一 6Y

2Y- ,es,~es习 .,J I L r- 5A 2Y - 」】L r- 5A

3A} .1 I l_ L.一 5Y 3A- }]} L-一一 5Y

3Ywe ------司 J.!一 4A 3Y- we 日 I III -}} 4A

GND一 ‘一-州- 4Y GND- 一 4Y

图F5-16 74LS04管脚图 图F5-17 74LS07管脚图

六、四2输入或门74LS32、双上升沿D触发器74LS74管脚图

J一 又二厂一一一 _ 飞互二7一一-一-

IA一 二二一 — Vcc ]RD一 一一-I — Vcc

IBse ' 习 r-一~一 4B ID- 』 _J竺.众RD 一- 一 2RD

IV一 一一J {一 AA Irase ' I I RDt6 DI 一 ,n

2A ---... - } I向一 AV 1SD.......‘一 'In n 1 1 1 1- IUD

2B-.... 'I> I I r-- 3B ly一 { fin n1'一一 2SD

2Y一 -. I> II} } 3A IQ一 } ‘-一 2Q

GND- 'se 一 3V GND- L-一 一 it-,

图F5-18 74IS32管脚图 图F5-19 74IS74管脚图

七、四运放LM124/LM224/LM324管脚图

v 三

IOUT一 一, r-,一 40UT

IIN一- 」一 !111 一1' 41N一

I 十r y+ ! 电W,范围:早电W 3~30V

I IN+ ---t兰 }I +r- 41N十 7i7 r4, :AS V十- 一 v- __ , 、, 二

「,.-, r---1 ’ 工作温度: LM124 一55℃一+12590

21N十一 1 ! -}- 31N+ LM224 一25℃一 8590

21N-- 卜 11 11 +h--31N- LM324 O'C、十7090

20UT ~一 .‘~-一 30UT

图F5-20 LM124/224/324管脚图

Page 119: MCS一51单片机接口及应用 实验和训练指导idl.hbdlib.cn/book/00000000000000/pdfbook2/018/017/92295.pdf本实验和训练指导共包括五章:第一章为dice仿真开发系统键盘操作使用说明;第二

115

八、显示驱动集成电路ICM7218B管脚图及使用说明

井一输出 图F5-21 ICM7218B管脚图

参 考 文 献

1何立民主编.单片机应用技术选编 (一).北京:北京航空航天大学出版社,1993

2 何立民主编 单片机应用技术选编 (二) 北京:北京航空航天大学出版社,1993