1、- -?实验一应用系统开发过程演示?实验报告参考一实验目的1了解单片机应用系统的开发过程,获得感性认识。2了解开发箱/开发板的使用方法3了解仿真软件的根本功能和使用方法。二 仿真软件开发调试环境: 1.英国 Labcenter electronics 公司的Proteus EDA工具软件, 2. 美国Keil公司的Vision集成开发环境.二实验环境一 EL型微机教学实验系统:1. 设备:精议达盛科技EL-MUT3多CPU单片机/微机实验实训系统2. 软件:精议达盛科技8051调试软件4.0版二实验电路一 EL型微机教学实验系统实验电路二 仿真软件实验电路:.二 仿真软件开发调试环境:Prot
2、eus 工具软件下, 1.新建立计 选取元件 AT89C51,RES,LED-RED 在工作区放置元件,地线,电源电阻RES阻值200,模式DIGITAL 连线 2. 源程序设计,生成目标文件代码 “SourceAdd/RemoveFiles新建源程序文件D:J08XLY1.ASM “SourceSY1.ASM在文本编辑器编写源程序 通过“SourceBuildAll编译源程序,生成目标程序。 4. 调试仿真 “DebugStart/Restart进入调试 此时Debug菜单下可翻开存放器窗,调试代码窗,观察单步执行时, 数据存储器窗相关存放器窗口中有关存储单元中数据的变化。 美国Keil公司
3、的Vision集成开发环境 参见教科书P12.例如步骤。.三. 操作步骤:一EL型微机教学实验系统操作步骤 1. 连线:P1.0P1.7接LED1LED8 2. 新建汇编语言源文件 3. 另存为D:J08XSY1.ASM 4. F3编译生成目标文件,F5进入调试: 工具栏上“R翻开存放器窗,“H翻开反汇编窗口 F8,单步执行,观察相关存放器窗口中有关存放器中数据的变化。四. 源程序(括号中为EL型微机教学实验系统中的程序)ORG 0000H (ORG 4000HSJMP MAIN(LJMP MAIN)ORG 0040 H(ORG 4100H)MAIN:MOV A,#0FEHLOOP:MOV P
4、2,AMOV P1,ALCALL D_1sRL AAJMP LOOP;以下为延时子程序D_Is:MOV R6,#100;1sD10ms:MOV R5,#40:10msDL:MOV R4,#123N0PDJNZ R4,$DJNZ R5,DLDJNZ R6,D10msRETEND思考题1. EL型微机教学实验系统中,F3.F4,F5,F7,F8,F9功用。答:F3 汇编编译,F4 运行到光标F5 调试 F7 跟踪执行F8 单步执行F9 运行2. EL型微机教学实验系统中,工具栏上“H,“R,“I,“E标签的功用。答: “H 反汇编窗口“R 存放器窗口“I 部存储器窗口 “E 外部存储器窗口3. 以
5、上调试用的操作功能在仿真软件Proteus, Vision中的相应何在?答:在仿真软件Proteus中在Vision中“汇编编译是菜单项“SourceBuil dAll, Project Built target“调试的快捷键是“Ctrl+F12”Ctrl+FU 或菜单项 “DebugStart/Restart Debugging Debug-start/stop Debug“单步执行 F10F10“跟踪执行 F11F11“运行到光标 Ctrl+F10Ctrl+F10“模拟运行 Alt+F10F5调试过程中相关的观察窗,“Debug下拉菜单中: 菜单项View中:反汇编窗口 Source Co
6、dedisasambly windows存放器窗口 Register,SFR MemoryRegisters windows部存储器窗口Internal MemoryMemory windows外部存储器窗口 External Memory 实验二片上资源认知实验=实验报告参考2一、实验目的1了解单片机芯片的片上资源。2掌握Vision软件的单步命令及片上根本资源观察方法。 二、实验步骤1建立一个工程,参加下面程序:程序1程序2ORG 0000HORG 0000HM AIN:MOV A,#0FEH MAIN:MOV R0,#30HLOOP:MOV P2,AMOV R2,#10HRL A MOV
7、 DPTR,#TABAJMP LOOPMOV A,#0HENDLOOP:PUSH ACCMOVC A,A+DPTRMOV R0,AINC R0POP ACCINC ADJNZ R2,LOOPENDTAB:65,74,88,98,92,85,91,55,73,842执行ProjectBuil1 target命令,生成目标文件HEX 该段程序生成7个字节的代码74H,FEH,F5H,A0H,23H,0l H,02H,在代码窗口观察这些指令代码。3按F10,执行单步命令:1程序1在存放器区观察A、PC的变化。在PeripheralsIO PortsPort 2窗口观察P2口状态的变化。在部RAM区观
8、察地址0xA0处的容即P2口锁存器。修改程序并验证。2程序2在存放器区观察PC、A、R0、R2的变化观察ROM向RAM数据传送的过程。观察执行指令PUSH,POP时,入栈和出栈操作过程。三、实验记录实验1指令开场第二轮第三轮PCAP2ORG 0000H00000000M AIN: MOV A,#0FEH0002FEPCAP2PCAP2LOOP: MOV P2,A0004FE0004FD0004FB RL A0005FD0005FB0005F7AJMP LOOP000200020002实验记录表中数据为十六进制修改后指令开场第二轮第三轮PCAP2ORG 0000HM AIN: MOV A,#03
9、HPCAP2PCAP2LOOP: MOV P2,A RL AAJMP LOOP实验2 实验记录 执行前四条程序得存放器初值:(R0)=30H,R2=10H, (DPTR)=13H, (A)=00H 执行指令后的相关存放器A, SP, PC和数据存储器的变化指令执行指令后的相应存储器(RAM30H3FH)的变化第一轮第二轮(PC)(PC)PUSH ACC(SP)=08H, (08)=00H,000BH(SP)=08H,(08)=01H,000BHMOVC A,A+DPTR(A)=5AH000CH(A)=64H000CHMOV R0,A(30H)=5AH000DH(30H)=64H000DHINC
10、 R0(R0)=31H000EH(R0)=32H000EHPOP ACC(A)=00H, (SP)=07H0010H(A)=01H, (SP)=07H0010HINC A(A)=01H0011H(A)=02H0011HDJNZ R2,LOOP(R2)=0FH0009H(R2)=0EH0009H栈操作:PUSH ACC: (SP)=(SP)+1, (SP)=(ACC) POP ACC: (ACC)=(SP), (SP)=(SP)-1用uVision观察, ROM中地址0013H开场16B个地址的值:13H14H15H16H17H18H19H1AH1BHACH1DH1EH1FH20H21H22H5
11、A644E57585C455F5B565B47584D4363执行程序后用uVision观察RAM中刷新得到新数据30H31H32H33H34H35H36H37H38H39H3AH3BH3CH3DH3EH3FH5A644E57585C455F5B565B47584D4363实验三指令与寻址方式认知实验一. 实验目的1 了解单片机根本指令和寻址方式。2 掌握Vision环境中查看指令操作结果的技巧。二. 实验步骤1 建立一个工程,参加以下程序:ORG 0000H;主程序段开场地址:0000HMAIN:MOV R7,#16; (R7)=16MOV A,#00H; (A)=0MOV R0,#30H;
12、 (R0)=30H LP:MOV R0,A; (30H)=0INC R0; (R0)= (R0)+1=31HINC A; (A)= (A)+1=1DJNZ R7,LP; (R7)= (R7)+1, (PC)=LP(LP是符号地址,指向LP标号行)SJMP ; 跳出LP循环体,执行SJMP 死循环。END; 汇编程序完毕三. 实验记录1 汇编、连接该程序,生成可执行文件。利用单步、执行到光标处2种方法运行程序观察程序运行的结果.1) 在Vision环境下,新建工程SY3,选择单片机类型;2) 用80C51指令新建上面的汇编文件,另存为SY3.ASM.;3) 在SY3工程窗的Souce group
13、中参加AddSY3.ASM文件;。4) 用projectBuild target 汇编成目标文件,没有语法错误后,即用DebugStartStop Debug Session,进入调试环境:a) Registers 窗口观察存放器A,R0的变化,b) 在Memory窗口观察部RAM30H3FH中存储数据的变化。5) 单步执行F10,各语句的运行结果,描述在各语句的分号后。6) 执行到光标Ctrl+F10,得到该程序运行结果。光标置于SJMP $, 点击DebugRun to LineCtrl+F10, 在Memory窗口观察到部RAM30H3FH中存储数据为00H0FH。2 分析程序的功能,研
14、究观察以下指令的寻址方式及其操作效果:a) MOV A, #00H; 源操作数,目标操作数寻址方式分别为立即寻址和存放器寻址方式,运行结果:(A)=0b) MOV R0, A; 源操作数,目标操作数寻址方式分别为存放器寻址和存放器间接寻址寻址方式, 运行结果:(R0)=(A)-(30H)=(A)c) DJNZ R7, LP 本指令是判零不为零转移指令,为相对转移寻址方式,执行情况:R7-1=?,假设不为零,转移到标号行LP,不然,执行下一条指令。d) INC R0 该指令操作数为存放器寻址方式。执行结果为,R0=R0+1四. 收获和体会进一步熟悉了nVission仿真软件的新建工程,新建汇编文
15、件,及汇编得到目标文件,并在仿真系统中用单步执行观察各条指令执行的情况,用执行到光标,观察到程序运行结果。通过实验,进一步认识立即寻址,存放器寻址,相对寻址,存放器间接寻址的意义。实验四程序设计与硬件仿真实验一. 实验目的1 了解单片机根本程序构造,掌握查表程序设计方法2 掌握在pVision环境中分析程序及操作结果。3 掌握硬件仿真及简单键盘和显示接口程序设计与调试的方法二. 实验容1 平方值查表程序设计2 .简单按键与显示电路构建和相应的程序设计三. 、实验步骤1 容1 用nVision建立工程,参加程序,调试运行,观察运行结果。程序1:查平方表程序 P130- word.zl- -ORG
16、 0000HMOV R2,#8MOV R0,#30HMOV A,R2ADD A,#03HMOVC A,A+PCMOV R0,ASJMP $TAB:DB 0,1,4,9,16,25,36,49,64,81END- word.zl- -2 容2 用proteus:新建工程,设计电路如图(选择元件,放置元件,连线 ),新建ASM文件,参加工程,调试运行程序2:简单键盘和并口显示程序- word.zl- -KEY_NUM EQU 30HMDEQU 31HORG 0000HLJMP MAINORG 0040HMAIN:MOV SP,#5FH;初始化MOV P1,#0FFHMOV P2,#0FFHMOV
17、P0,#0FFHMOV P3,#0FFHMOV MD,#00HMOV DPTR,#LED_CODE_P0M0D0:MOV A,MDLCALL DISP0;显示PLCALL DELAYLCALL DELAYM0:LCALL KEYMOV A,KEY_NUMMOVC A,A+DPTR MOV P2,A ;LED2显示数据JMP M0DELAY:MOV R6,#0F0HDL1:MOV R7,#0F0HDJNZ R7,$DJNZ R6,DL1RETKEY:MOV A,P3 ;扫描键入数据ANL A,#0FHMOV KEY_NUM,ALCALL DELAYMOV A,P3ANL A,#0FHCJNE A
18、,KEY_NUM,KEYCPL AANL A,#0FHMOV KEY_NUM,ARETDISP0:MOV P0,#8CH ;显示功能号PUSH ACCMOVC A,A+DPTRMOV P2,APOP ACCRETLED_CODE_P0:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB 80H,90H,88H,83H,0C6H,0A1H,86H,8EHEND- word.zl- -四. 简单键盘和并口显示五. 实验记录程序1查表程序。通过指令MOVC A,A+PC;MOV R0,A,将指令MOV R2,#8中的立即数作为基数查平方表得值64,送部RAM 30H存
19、放。程序2简单键盘状态与相应显示程序。改变P3口按钮情况,通过查表程序查出显示码,在P2口输出七段码管显示相应的数:0,1,2f实验五 中断实验一. 实验目的1. 了解单片机中断系统工作原理,掌握中断程序构造。2. 掌握在仿真环境和开发板环境下,中断程序调试方法。二. 实验容1. 仿真软件下用外部中断依次点亮P2口8引脚相连接的发光二极管的程序调试;2. 仿真软件下用外部中断控制P1口低四位连接的发光二极管显示P1口低四位连接的开关状态的程序调试。3. 用单片机试验箱实现外部中断控制P1口低四位连接的发光二极管显示P1口低四位连接的开关状态的程序调试。三. 实验程序和实验电路图1. P2口8引
20、脚连接的发光二极管依次点亮程序+5VINT0P2口图1发光二极管依次点亮汇编程序:ORG 0000HLJMP MAINORG 0003HMOV P0,ARL ARETI ORG 0040HMAIN:MOV SP,#5FHMOV A,#0FEHSETB EASETB EX0SETB IT0SJMP $END+5VINT0 8031GNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7脉冲输出端子图2. 发光二极管显示开关状态中断实验接线图2. P1口低四位连接的发光二极管显示P1口低四位连接的开关状态的程序仿真环境汇编程序:ORG 0000HLJMP MAINORG 0003H;
21、INT0入口地址LJMP INSER;跳转到中断子程序ORG 0100H;主程序起始地址MAIN:SETB EX0;INT0中断允许 SETB IT0 ;IT0=1为下降沿触发 SETB EA;开总应许HERE:SJMP HERE;没中断重复执行ORG 0200H;下面程序的起始地址INSER:MOV A,#0F0H;A初始化 MOV P0,A;高4位做输入 MOV A,P0;读开关状态到A CPL ASWAP A;半字节交换 MOV P0,A;开关状态在P1低4位输出 RETI;返回到打断处 END试验箱环境汇编程序:- word.zl- -ORG 4000hLJMP MAINORG 400
22、3HLJMP INSERORG 4100H MAIN: SETB EX0 SETB IT0 SETB EA HERE:SJMP HERE ORG 4200HINSER:MOV A,#0F0H MOV P1,A MOV A,P1 SWAP A MOV P1,A RETI END- word.zl- -四. 实验记录1. 在程序1发光二极管依次点亮实验中:a. 点击仿真窗口电路图的按钮,P2口8引脚连接的发光二极管依次点亮。b. 单步执行至SJMP $,不再执行下一条程序,光标置于其他行,用执行到光标处,也没有反响,只有执行到光标时按与INT0引脚连接的按钮,才实现中断效劳,另一个发光二极管点亮,2. 在程序2发光二极管显示开关状态中,a. 点击仿真窗口电路图的按钮,P1口低四位相连的发光二极管显示当前高四位相连的开关通电状态。b. 单步执行至HERE:SJMP HERE,不再执行下一条程序,光标置于其他行,用执行到光标处,也没有反响,只有执行到光标时按与INT0引脚连接的按钮,才实现中断效劳,另一个发光二极管点亮,五. 收获与体会1. 通过中断实验,进一步认识中断调用和入口地址的含义2. 初步掌握了中断效劳程序的编写方法。进一步熟悉仿真环境和开发板试验箱环境下,单片机程序的编写,汇编,调试,单步执行,执行到光标和代码窗,存放器窗的利用。+3.- word.zl