附录A实验附录A实验实验一MCS-51单片机及其开发系统(仿真器)的认识实验二MCS-51指令系统实验三MCS-51指令系统综合练习实验四中断实验实验五显示器与定时中断实验六串行通信实验七键盘扫描实验八A/D转换实验九D/A转换附录A实验实验一MCS-51单片机及其开发系统(仿真器)的认识一、实验目的(1)了解MCS-51单片机开发常用工具。(2)了解仿真器构成、功能及连接。(3)掌握MCS-51开发软件(汇编器)安装、功能及基本操作。(4)掌握源程序的编辑、汇编、运行(包括连续执行、单步执行和跟踪执行)。(5)掌握汇编语言指令与机器语言指令之间的对应关系。(6)掌握ORG、DATA、BIT等伪指令的作用。(7)掌握在特定仿真开发系统下浏览、修改特殊功能寄存器、内部RAM、外部RAM单元的方法。(8)理解MCS-51单片机在复位期间及复位后有关引脚的状态、特殊功能寄存器的初值。附录A实验二、实验器材仿真器及附件(电源、仿真头、联机通讯电缆)、直流稳压电源(最好是单片机专用电源)、逻辑笔、数字万用表各一套。附录A实验三、实验电路图附A-1EA/VPALE/PU189C52C133pFC233pF+5VU27407U37407R1270×812345611101234561011R28.2kC310FR3510RSTR42.0kabfcgde1234567abcdefg8dpdp910VDY13.6864MHZ12456U4A74LS21INT0TMROUT6TMRIN3RESET4U58155HP3.7P3.6RSTRSTA01A12A23Vss4SDA5SCL6WP7Vcc8U624WC02P3.4P3.5+5V++5V1918917161213141512345678111020X1X2RESETRD/P3.7WR/P3.6INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7TXD/P3.1RXD/P3.0GNDP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7PSENVCC3139383736353433322122232425262728293040AD0AD1AD2AD3AD4AD5AD6AD7A15A14ALE+5VAD0AD1AD2AD3AD4AD5AD6AD7A15A14ALEP3.6P3.712131415161718198910711AD0AD1AD2AD3AD4AD5AD6AD7CERDWRIO/MALEPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC521222324252627282930313233343536373839125+5V附录A实验表附A-1名称型号封装数量备注CPU89C52(或89C52X2)DIP401驱动器7407DIP1424输入与门74LS21DIP141共阳八段LED数码管1晶振3.6864MHz1按键9或17DIP40插座4DIP14插座3DIP8插座1~2可选RS232电平转换芯片MAX232DIP161可选并行口扩展芯片8155DIP401可选I2C总线EEPROM存储器24WC02DIP81可选附录A实验该实验电路具有如下一些特点。1.结构简单该电路所需元器件少,费用低,它几乎能完成“单片机原理与应用”课程所必须的基本实验项目,如:(1)复位期间、复位后各引脚状态测试。(2) I/O端口及禁止ALE引脚脉冲输出实验。(3)中断、定时/计数实验。(4)定时器T2可编程时钟输出实验。(5) LED显示及驱动实验。(6)键盘接口实验。(7)串行通讯实验。附录A实验2.可扩充性强例如,增加RS232与TTL电平转换器件(如MAX232芯片)后,即具备RS232电平转换功能,使该电路串行口能与其他串行设备(如PC机)进行串行通讯。增加8155并行口扩展芯片后即具备并行口扩展功能和256字节外部RAM,即可进行外部RAM存取实验。增加I2C总线EEPROM存储器(如24WC02、24WC32)或日历时钟芯片PCF8563后,即可进行I2C总线设备存取实验。增加SPI总线接口器件,如EEPROM存储器或IDS4000系列语音芯片后即可进行SPI总线存取实验。附录A实验3.安装焊接方便实验前,先在万能板上焊好两个40引脚、三个14引脚IC插座、LED数码管、晶振和复位电路,并用导线段按原理图连接关系将电阻、电容、复位按钮、LED和IC引脚连接好。LED电源引脚、IC电源引脚连一起,作为实验电路板(目标板)的电源输入端VCC,接 +5V;所有地线引脚连在一起,作为实验电路板的地线GND,并用导线将实验电路板电源输入端VCC、地线GND分别接到直流稳压源 +5V和地线上。仿真时,仿真头插入目标板上40引脚的CPU(即U1)插座内。当然也可以将该实验电路(包括可选芯片、必要插座、接线头——如电源插座、串行通信插座)做成印制板。附录A实验四、实验内容1. PC机—仿真器—目标板(用户板)的连接(1)联机通讯口。目前多数仿真器不带键盘、LED显示器,需与PC机配套使用。单片机仿真开发设备一般以串行方式与PC机通讯,通过联机通讯电缆将仿真器联机通讯口与PC机串行口(COM1或COM2)相连。(2)仿真插座。通过仿真电缆将仿真器与仿真头连在一起(有些仿真器、仿真头的插座没有采用防反插技术,连接时务必注意插座、插头方向)。作为特例,图2给出了E6000、E2000、E51系列仿真器与POP8X5X仿真头之间的连接方式,即仿真电缆一端与仿真器相连,另一端与仿真头相连。仿真头直接插入用户板上的CPU插座内。附录A实验图附A-2401202134芯电缆仿真器仿真头20芯电缆附录A实验(3)电源插座。通过仿真器上的电源插座给仿真器提供工作电源,与仿真器电源(作为仿真器附件之一)相连。由于目标板上功耗不确定,因此多数仿真机(头)不给用户板提供电源,必须给用户板外接工作电源(一般为 +5V,具体数值与目标板上元器件工作电压有关,但外接电源电压不得超过5V+5%,否则可能损坏单片机应用系统中74系列逻辑电路芯片)。附录A实验2.仿真软件安装及操作仿真软件也称为汇编器。仿真器只有在仿真软件的支持下才能完成源程序的编辑(目前多数仿真软件均具有源程序编辑功能)、汇编(编译)、运行及调试。仿真软件功能强弱直接关系到单片机应用系统的开发效率,一套功能齐全、性能良好、符合用户操作习惯的单片机开发系统,会使单片机开发项目由难变易、由繁变简、由不可能变可能,收到事半功倍的效果。不同仿真开发软件的功能、操作方式不尽相同,用户只能依据开发商提供的《使用说明书》或《用户指南》来安装、操作仿真开发软件。附录A实验3.汇编语言源程序编辑、运行及调试输入、编辑、汇编、运行(连续、单步执行)如下程序段:;变量定义区XVARDATA30HYVARDATA38HP10BITP1.0ORG0000HLJMPMAINORG0100HMAIN:附录A实验MOVSP,#9FHMOVA,#55HMOVXVAR,AMOVR0,#XVARMOV@R0,#01HINCR0MOV@R0,#02HMOVR1,#YVARMOVA,@R0MOV@R1,APUSHAcc;在此处设置断点PUSHPSWMOVA,#0AAHSETBRS0CLRRS1MOVR0,#5AHMOVR1,#0A5HPOPPSW附录A实验POPACCINCR1DECR0MOVA,@R0MOV@R1,ACLRP10SETBP1.0CLRP10MOV90H,#00HMOV90H,#55HMOV90H,#0FFMOVP1,#00HMOVP1,#55HMOVP1,#0FFHSJMP$END附录A实验(1)找出每条指令的机器码,并与第3章指令码表对照,指出每一指令的功能、寻址方式、操作数书写形式。(2)在单步执行过程中,每执行一条命令后,观察并记录有关寄存器、内存单元的变化情况。设置断点后,再连续执行,记录30H、31H、38H单元内容,与复位后的内容进行比较,由此得出什么结论?(3)修改ORG100H指令后的地址,重新汇编,观察程序代码在程序存储器中存放位置的变化情况。附录A实验4.复位期间及复位后有关引脚状态、寄存器初值按下复位按钮不放,用逻辑笔测出并记录各I/O引脚的电平;复位后,再用逻辑笔测出I/O口引脚电平;读出复位后,各特殊功能寄存器的初值,并与表2-4进行比较。修改特殊功能寄存器、内部RAM及外部RAM单元内容,观察复位后相应单元内容有无变化,即可了解复位对特殊功能寄存器、内部RAM、外部RAM的影响。注:由于8XC5XCPUP1~P3口引脚输出级电路采用准双向结构,上拉电阻大,电流小,对地线短路电流小,即I/O引脚具有“线与”功能,而P0漏极开路,也具有“线与”功能。因此,在测量I/O引脚电平、电压操作过程中,即使逻辑笔、表笔将两根I/O引脚短路也不会损坏I/O口(但不允许将I/O引脚与电源VCC短路)。附录A实验实验二MCS-51指令系统一、实验目的(1)理解MCS-51指令系统中常用指令功能和使用方法。(2)掌握汇编语言程序的输入、编辑、运行、调试方法。附录A实验二、实验器材仿真器及附件、图附A-1所示实验电路板、直流稳压电源各一套。注:对于具备“软件模拟”运行方式的仿真开发系统,如WAVE系列的仿真开发软件。本实验可以不用仿真器、实验电路板等硬件设备,在“软件模拟”状态下运行调试即可。附录A实验三、实验内容1.寻址方式代码源程序指令源操作数寻址方式MOVR0,#4FH立即数寻址MOVA,#55H立即数寻址MOV@R0,A寄存器寻址MOVR1,4FH直接寻址MOVA,@R1寄存器间接寻址MOVCA,@A+DPTR变址寻址SETBP1.1位寻址附录A实验2.高128字节内部RAM与低128字节内部RAM之间的数据传送(执行前,先将高128字节内部RAM中的80H单元置为特定数值,如55H,以便验证)代码源程序指令说明MOVR0,#80H;将高128字节内部RAM地址80H传到R0中MOVA,@R0;将高128字节内部RAM80单元内容传到A中MOV30H,A;把存放在A中数据传到内部RAM30H单元中附录A实验3.外部RAM与内部RAM之间的数据传送(执行前,先将内部RAM30H单元置为特定数值,如0AAH,以便验证)代码源程序指令说明;将内部RAM数据传送到外部RAM中MOVA,30H;将内部RAM30单元内部传送到A中MOVDPTR,#1000HMOVX@DPTR,A;把存放在A中数据传到外部RAM1000H单元;将外部RAM数据传送到内部RAM中MOVDPTR,#1000HMOVXA,@DPTR;把外部RAM1000H单元内容传到A中MOV31H,A;把数据传送到内部RAM31H单元中附录A实验4.把存放在程序存储器中的数表读到内部RAM中执行下列程序段后,验证数表中的数码是否已传送到内部RAM30H~39H单元中。代码源程序指令说明MOVDPTR,#TAB;将表头地址传送到DPTR中MOVR0,#30HMOVR1,#00H;计数器初值00传送到R1中附录A实验LOOP:MOVA,R1MOVCA,@A+DPTRMOV@R0,A;把数表内容逐一传送到30H开始的内部RAM中INCR1INCR0CJNER1,#0AH,LOOP;R1不等于0AH时,循环;数表ORG1000HTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H附录A实验5.算术运行指令假设16位(双字节)被加数、加数分别存放在内部RAM的30H~33H中,和存放在内部RAM的40H~42H单元中(数据存放规则是低字节存放在低地址、高字节存放在高地址中)。附录A实验代码源程序指令说明MOVA,30H;把被加数低8