单片机控制实验

上传人:j****9 文档编号:47840109 上传时间:2018-07-05 格式:PDF 页数:15 大小:325.45KB
返回 下载 相关 举报
单片机控制实验_第1页
第1页 / 共15页
单片机控制实验_第2页
第2页 / 共15页
单片机控制实验_第3页
第3页 / 共15页
单片机控制实验_第4页
第4页 / 共15页
单片机控制实验_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《单片机控制实验》由会员分享,可在线阅读,更多相关《单片机控制实验(15页珍藏版)》请在金锄头文库上搜索。

1、单片机控制实验指导书 单片机控制实验 1 实验一 汇编语言程序设计简单应用 一、实验目的 掌握汇编语言程序设计方法。 二、实验内容 1查找相同数据的个数,统计出在 7000H700FA 数据区中“00”的个数,并显示在数码 管上。 2编写一个加法程序,并上机调试。 3多分支程序:散转 8032 片内 20H 中内容。 三、实验步骤 1查找相同数据的个数 (1)在 Keil 中建立新项目 proj01。 (2)新建文件“FNDASM” (即查找程序) 。 (3)添加 FINDASM 到项目 proj01。 (4)编译调试。 (5)观察寄存器的值的变化。 2编写一个加法程序要求 (1)首地址为 2

2、000H。 (2)加数与被加数地址为 2300H 与 2301H。 (3)和数放入 50H 中。 3多分支程序:散转 8051 片内 20H 中内容。 (1)新建文件“selectASM” (即分支程序) (2)添加 selectASM 到项目 proj01。 (3)编译调试。 (4)观察寄存器的值的变化。 四、回答问题 1.在查找相同个数实验中, 在查找相同字节的部分, 主要用什么设计方法?关是哪一条指令? 2.在多分支程序实验中,若想出现“8”字循环,或“P”字循环,如何修改? 五、程序清单 查找相同数个数 源文件名:Find.asm ORG 0160H FIND:MOV SP,#60H

3、MOV R0,#IOH MOV R1,#OOH MOV DPTR,#7000H FIND1:MOVX A, DPTR CJNE A,#OOH,FIND2 INC R1 FIND2:INC DPTR DJNZ RO,FINDI MOV A,R1 MOV RO,#79H ANL A,# OFH MOV RO,A INC R0 MOV A, R1 SWAP A ANL A,#OFH MOV RO,A INC RO单片机控制实验指导书 单片机控制实验 2 MOV A,#10H MOV R4,#04H FIND3:MOV RO,A INC RO DJNZ R4,FIND3 FIND4:LCALL DIS

4、P SJMP FIND4 DISP:SETB OD4H MOV R1,#7EH MOV R2,#20H MOV R3,#00H DISP1:MOV DPTR,#OFF21 H MOV A,R2 MOVX DPTR,A MOV DPTR,#DATAI MOV A,RI MOVC A,A+DPTR MOV DPTR,# OFF22H MOVXDPTR,A DISP2:DJNZ R3,DISP2 DECRI CLRC MOV A,R2 RRCA MOV R2,A JNZ DISPI MOV A,#OFFH MOV DPTR,# OFF22H MOVX DPTR,A CLR OD4H RET DATA

5、1:DB OCOH,0F9H,OA4H,0B0H,99H,92H,82H,OF8H,80H 9OH DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,OCH.89H,ODEH 多分支程序 源文件名:select.asm ORG O250H MJUP:MOV A,2OH MOV DPTR,#TABADDR RL,A JMP A+DPTR TABADDR:SJMP DISPO SJMP DISP1 SJMP DISP2 SJMP DISP3 DISPO:MOV 20H,# OCOH LJMP MJUP1 DISPl:MOV 20H,#OF9H LJMP MJUP1 DISP2:M

6、OV 20H,#OA4H LJMP MJUP1 DISP3:MOV 20H,#OBOH MJUP1:MOV A,20H MOV R0,#22H MOV R1,#21H MOVX R0,A MOV A.#O1H MJUP2:MOVX R1,A MOV R2,#20H LCALL DELY RL A SJMP MJUP2 DELY:PUSH 02H DELY1:PUSH 02H DELY2:PUSH 02H DELY3:DJNZ R2.DELY3 POP 02H DJNZ R2,DELY2 POP 02H DJNZ R2,DELY1 POP 02H DJNZ R2,DELY RET END单片机控

7、制实验指导书 单片机控制实验 3 实验二 并行 I/O 接口及定时器的使用 一、实验目的 1应用Proteus绘制电路原理图; 2掌握I/O口简单使用; 3学习延时程序的编写与使用; 4学习定时器的使用; 5学习Proteus与Keil的联合调试。 二、实验内容 1用并行I/O口的P1.0设置其高低电平,控制发光二极管的状态。电路原理图如图1所示。 图1 实验1电路原理图 2p1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。电路原理图如 图 2 所示。 说明:P1 口为准双向口,P1 口的每一位都能独立地定义为输入位或输出位。作为输入 位时,必须向锁存器相应位写入“1” ,该

8、位才能作为输入。为使发光二极管循环点亮,需要 有一定的延时,现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。 在系统时间允许的情况下可以采用后一种方法。 本实验系统晶振为 12.00MHZ,则一个机器周期为(1212.000)us,即(11.00)us。 现要写一个延时 0.1s 的程序,可大致写出如下: MOV R7,#X (1)单片机控制实验指导书 单片机控制实验 4 DEL1:MOV R6,#200 (2) DEL2:DJNZ R6,DEL2 (3) DJNZ R7,DEL1 (4) RET 上面 MOV、DJNZ 指令均需两个机器周期,所以每执行一条指令需要 10.5

9、us,现求出 X 值: 11.0 + X(10.5 + 20010.5 + 10.5) = 0.110 指令(1) 指令(2) 指令(3) 指令(4) 所需时间 所需时间 所需时间 所需时间 X=(0.11010.256)/(10.256+20010.256+10.256)=248D=F8H XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P2.7/A15 28

10、P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 U1 80C51 PACKAGE=DIL40 CLOCK=12MHz DBG_FETCH=0 C1 1n C2 1n X1 CRYSTA

11、L C3 22p R1 1k R2 220R D1 LEDRED R3 220R D2 LEDRED R4 220R D3 LEDRED R5 220R D4 LEDRED R6 220R D5 LEDRED R7 220R D6 LEDRED R8 220R D7 LEDRED R9 220R D8 LEDRED 图2 实验2电路原理图 3使用 TIMER0 的方式 0 控制 2 中的二极管循环点亮,延时时间为 0.2S。 三、实验步骤 1在proteus中按图1、图2绘制电路原理图; 2在keil中编写以下程序; 3在keil中设置联合调试参数 4调试观察结果及现象。 四、解答问题单片机控

12、制实验指导书 单片机控制实验 5 1发光二极管亮的条件是什么? 2计算此程序中延时时间。 3计算机定时器的计数初值。 4设置 TIMER0 分别工作在方式 1、2、3 下,程序如何修改? 五、程序清单 1: ORG 0 START:CLR P1.0 LCALL DELAY SETB P1.0 LCALL DELAY LJMP START DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END 2: ORG 00H START: MOV A,#0FFH CLR C MOV R2

13、,#08H LOOP: RLC A MOV P1,A CALL DELAY DJNZ R2,LOOP MOV R2,07H LOOP1: RRC A MOV P1,A CALL DELAY DJNZ R2,LOOP1 JMP START DELAY: MOV R7,#0F8H DEL1: MOV R6,#200 DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 RET END 3: ORG 00H AJMP START ORG 080H MOV TMOD,#00H START: CLR C MOV A,#0FFH MOV R2,#08 LOOP: RLC A MOV P1,A M

14、OV R3,#100 CALL DELAY DJNZ R2,LOOP MOV R2,#07 LOOP1: RRC A MOV P1,A MOV R3,#100 CALL DELAY DJNZ R2,LOOP1 JMP START DELAY: SETB TR0 AGAIN: MOV TL0,#(81922000) MOD 32 MOV TH0,#(81922000)/32 LOOP2: JBC TF0,LOOP3 JMP LOOP2 LOOP3: DJNZ R3,AGAIN CLR TR0 RET END单片机控制实验指导书 单片机控制实验 6 实验三 并行 I/O 接口及计数器的使用 一、实

15、验目的 1应用Proteus绘制电路原理图; 2学习计数器的使用; 3学习Proteus与Keil的联合调试。 二、实验内容 1在 T0 每输入脉冲 3 次使 P1 的 LED 做 BCD 码加 1 的变化,P2.3-P2.0 为个位(8421 码) , P2.7-P2.4 为十位(8421 码) 。电路原理图如图 1 所示。 C1 1nF X1 CRYSTAL C2 1nF C3 22uF Resistor Resistor R1 1k D1 LEDRED Resistor Resistor R2 220 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号