当前位置:文档之家› 单片机实验报告

单片机实验报告

单片机实验报告姓名:姚竞华班级:电自094学号:09401300420实验一存储器读写一、实验目的:1、寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作;3、学习简单程序的基本调试方法。

二、实验内容将70H-7FH16个字节单元的数据复制到片外存储器2000H开始的地址单元中,程序清单如下:ORG 0000HSJMP STARTORG 0030HSTART: MOV R1,10H ;一共16个数据MOV R0,#70H ;原数据首地址MOV DPTR,#2000H; 片外存储单元首地址MOV 70H,#00H;送入原始数据,把70H-71H中分别送入00H-0FHMOV 71H,#01HMOV 72H,#02HMOV 73H,#03HMOV 74H,#04HMOV 75H,#05HMOV 76H,#06HMOV 77H,#07HMOV 78H,#08HMOV 79H,#09HMOV 7AH,#0AHMOV 7BH,#0BHMOV 7CH,#0CHMOV 7DH,#0DHMOV 7EH,#0EHMOV 7FH,#0FHLOOP: MOV A,@R0;循环送入2000H-200FHMOVX @DPTR,AINC R0INC DPTRDJNZ R1,LOOPEND三、调试结果实验二数据排列一、实验目的掌握汇编语言分支结构的应用。

二、实验内容将R0、R1、R2中的数据从大到小排列,并分别从放在70H-71H中。

程序清单如下:ORG 0000HSJMP STARTORG 0030HSTART: MOV R0,#02H;分别向R0-R1中写入数据MOV R1,#05HMOV R2,#03HMOV A,R0SUBB A,R1;R0-R1JC SUB1LOOP1: MOV A,R0SUBB A,R2;R0-R2JC SUB2MOV A,R1SUBB A,R2;R1-R2JC SUB3AJMP OVER; R0>R1>R2SUB3: CLR CMOV A,R1XCH A,R2MOV R1,AAJMP OVER; R0>R2>R1SUB2: CLR CMOV A,R0XCH A,R2MOV R0,AMOV A,R1XCH A,R2MOV R1,AAJMP OVER;R2>R0>R1SUB1: CLR C ;清除C位MOV A,R0;R0与R1互换XCH A,R1MOV R0,AAJMP LOOP1;重新开始比较OVER: MOV 70H,R0MOV 71H,R1MOV 72H,R2END三、试验结果实验三I/O端口操作一、实验目的1、掌握I/O端口读写等基本汇编指令2、掌握单片机最小系统硬件电路设计及仿真软件PROTUES 仿真、调试等基本操作方法。

二、实验仪器设备1、PC机,1台2、keil软件开发系统3、仿真软件PROTUES三、实验内容编写一段汇编程序,使与单片机P0.3口相连接的发光二极管循环点亮,亮灭时间必须大于0.5秒(肉眼能清晰分辨二极管的亮灭变化)。

要求用PROTUES软件完成仿真电路设计,并进行功能验证。

程序清单如下:ORG 0000HSJMP STARTORG 0030HSTART: MOV P0,#0FFH;先初始化,暗灯LOOP1: CPL P0.3;点亮ledACALL DELAY;调用延时子程序,延时0.6秒SJMP LOOP1;循环点亮DELAY: MOV R5,#50L2: MOV R6,#100L1: MOV R7,#100DJNZ R7,$DJNZ R6,L1DJNZ R5,L2RETENDPROTUES仿真结果如下:在上面程序的基础上完成P0口输出的二极管跑马灯。

程序清单如下:ORG 0000HSJMP STARTORG 0030HSTART: MOV P0,#0FEH;点亮P0.0LOOP1:MOV A,P0;左移位RL AMOV P0,AACALL DELAY;调用延时子程序,延时0.6秒SJMP LOOP1;循环点亮DELAY: MOV R5,#50L2: MOV R6,#100L1: MOV R7,#100DJNZ R7,$DJNZ R6,L1DJNZ R5,L2RETENDPROTUES仿真结果如下:实验四十字路口交通灯一、实验目的1、掌握ISP在线调试的方法;2、掌握硬件实验箱的使用方法;3、熟悉汇编程序基本格式与编程方法二、实验仪器设备1、PC机2、PROTUES仿真环境。

三、实验内容编写十字路口交通灯控制程序,控制红、黄、绿交通指示灯的亮灭,模拟十字路口交通灯控制。

参考程序如下:ORG 0000HLJMP STARTORG 0030HSTART: MOV A,#11HACALL DISPACALL DE3SLLL: MOV A,#12HACALL DISPACALL DE10SMOV A,#10HACALL DISPMOV R2,#05HTTT: MOV A,#14HACALL DISPACALL DE02SMOV A,#10HACALL DISPACALL DE02SDJNZ R2,TTTMOV A,#11HACALL DISPACALL DE02SMOV A,#21HACALL DISPACALL DE10SMOV A,#01HACALL DISPMOV R2,#05HGGG: MOV A,#41HACALL DISPACALL DE02SMOV A,#01HACALL DISPACALL DE02SDJNZ R2,GGGMOV A,#03HACALL DISPACALL DE02SJMP LLLDE10S: MOV R5,#100JMP DE1DE3S: MOV R5,#30JMP DE1DE02S: MOV R5,#02DE1: MOV R6,#200DE2: MOV R7,#126DE3: DJNZ R7,DE3DJNZ R6,DE2DJNZ R5,DE1RETDISP: CPL AMOV P0,ARETEND四、实验操作步骤用keil软件编写交通灯控制程序。

编译通过后生成16进制文件(.HEX),加载到PROTUES中仿真验证。

结果如下:实验五8279显示器接口一、实验目的1、掌握数码管显示的基本原理;2、掌握8279键盘显示器接口芯片的使用方法3、提高汇编应用程序编程方法与技巧。

二、实验仪器设备1、单片机实验箱、51单片机最小系统电路板、串口调试线、PC机2、MCS51集成开发环境三、实验原理1、8279的使用方法首先掌握两个口地址,命令口地址0CFE9H。

数据口地址:0CFE8H。

命令口地址主要是CPU将初始化指令或控制指令对8279完成相关设置。

数据口地址完成显示数据字形码的传送。

DDD为1XX时允许清除显示器,清除命令需要16us的时间,在此期间CPU不能向8279写入命令。

四、实验内容编写数码管显示程序,用两个数码管显示两个数字。

完成程序的编写并下载到EL实验箱上进行验证。

实验清单如下:CSEG AT 0000HLJMP STARTCSEG AT 4100HSTART: MOV DPTR,#0CFE9H;命令口地址清零初始化MOV A,#0D1HMOVX @DPTR,ANOPNOPNOPNOPNOPNOPNOPNOP;延时16us,保证清零完成MOV A,#80H;选择第一个数码管显示MOVX @DPTR,AL1: MOV R4,#00HMOV A,R4L2:LCALL DIS;调用显示子程序INC R4CJNE R4,#0AH,L2SJMP L1DIS: PUSH DPL;显示子程序PUSH DPHPUSH ACCMOV DPTR,#SEGTAB;查表A值MOVC A,@A+DPTRMOV DPTR,#0CFE8H;数据口地址,显示A中的数值MOV R5,#50LOOP2: MOV R6,#200LOOP1: MOV R7,#100LOOP3: MOVX @DPTR,ADJNZ R7,LOOP3DJNZ R6,LOOP1DJNZ R5,LOOP2POP ACCPOP DPHPOP DPLRETSEGTAB: DB 3FH,06H,5BH,4FH,66H;共阴极数码管段表0-9DB 6DH,7DH,07H,7FH,6FHEND五、实验操作步骤1、硬件连线,用串口线将PC机与实验箱连好。

将单片机51最小系统板插入实验箱并固定好,打开实验箱电源,观察51系统板的电源指示灯点亮表示开发板已装好。

2、点击进入MCS51,弹出通讯对话框,选择“确定”并立即按下实验箱复位键,进入MCS51集成开发环境,观察屏幕底部是否有提示信息显示“通讯已连接”。

3、将数码管显示程序输入,并保存在C:/MCS51目录下,文件后缀名为.ASM,并编译检查是否有语法错误。

4、编译通过后,点击“调试”按钮。

调试方法分别有单步运行、全速运行、断点调试等,分别用这些方法进行程序调试,掌握单片机应用程序ISP在线调试的基本方法与技巧。

相关主题