哈工大单片机实验报告_第1页
哈工大单片机实验报告_第2页
哈工大单片机实验报告_第3页
哈工大单片机实验报告_第4页
哈工大单片机实验报告_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件实验在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。实验一 清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。二、实验内容 把200020FFh的内容清零。三、程序框图四、实验过程(1)实验中定义R0为循环次数,利用定义了初值的数据指针DPTR不断加1指向需要被清零的外部数据存储器单元。(2)再利用MOVX语句,将外部存储器指定内容清零。(3)用CJNE比较语句判断循环是否结束。五、实验结果及分析 问题回答:清零前2000H20FFH中为内存里的随机数,清零后全变为0。

2、六、实验源程序;清零程序ORG 0000HMOV DPTR,#2000HMOV R0,#0FFHORG 0660HMAIN:MOV A,#00HMOVX DPTR,AINC DPTRDJNZ R0,MAINEND实验二 拆字程序一、实验目的掌握汇编语言设计和调试方法。二、实验内容把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。三、程序框图四、实验过程(1)定义数据指针DPTR为2000H,将其中内容送入累加器A中,利用高低四位交换语句SWAP可将高四位移至低四位,再用语句ANL与0FH进行与操作取出高四位

3、送入2001H低位(2)再次让数据指针DPTR为2000H,将其中内容送入累加器A中,直接与0FH相与取出低四位送入2002H低位。五、实验结果及分析问题回答:将ANL A,#0FH改为ORL A,#0F0H可以实现将高位置为1。六、实验源程序;拆字程序 ORG 0000HMAIN:MOV DPL, #00H MOV DPH, #20H MOVX A, DPTR SWAP A ANL A, #0FH INC DPTR MOVX DPTR, A MOV DPL,#00H MOVX A, DPTR ANL A, #0FH INC DPTR INC DPTR MOVX DPTR, A END实验三

4、拼字程序一、实验目的进一步掌握汇编语言设计和调试方法。二、实验内容把2000h、2001h的低位分别送入2002h高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。三、程序框图四、实验过程(1)首先利用数据指针DPTR 取出2000H中的内容给累加器A,交换高低位后再进行与操作取出2000H中的低位,但在A 中是位于高位,将其送入B中。(2)再利用数据指针取出2001H 中的内容送给累加器A,直接进行与操作取出其低位数据。(3)再用或ORL语句将2000H和2001H的高低四位组合在一起送入2002H中,从而实现两个数低四位组合。五、实验结果及分析问题回答:本实验运行程序后2002H

5、内容为0CEH,即2000H单元中低四位“C”作为2002H的高四位,2001H的低四位“E”作为2002H的低四位。六、实验源程序;拼字程序 ORG 0000HAJMP MAINORG 0680HMAIN: MOV DPL, #00HMOV DPH, #20HMOVX A, DPTRANL A, #0FHSWAP AMOV B, AINC DPTRMOVX A, DPTRANL A, #0FHORL A, BINC DPTRMOVX DPTR, AEND实验四 数据区传送子程序一、实验目的掌握RAM中的数据操作。二、实验内容把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的

6、RAM区。三、程序框图四、实验过程实验要求将一段内存中数据移动到另一段内存中,这个程序在开始定义源RAM首址为0000H,目的区首址为0030H,但是在进行搬移的子程序中选择将INC语句置于开始,所以结果是把0001H单元开始20H个字节的内容送到0031H开始的连续数据单元中。(1)先把初始地址分别放入源地址寄存器和目的地址寄存器,因为转移区的长度定义的较小,所以就是只利用了R3作为数据转移循环条件。(2)每进行一次转移地址寄存器向下加一,由于转移区较短所以整个程序的源RAM和目的RAM区的指针加1 的操作只需要对R3、R5进行。 五、实验结果及分析 问题回答: R4、R5定义的目的地址单元

7、中转移之前为随机数,转移后内容与以R2、R3开始的的源地址单元中20个字节内容相同,即实现了数据的传送。六、实验源程序 ORG 0000HAJMP MAINORG 07B0HMAIN: MOV R7, #20H MOV R6, #00H MOV R2, #00H MOV R3, #00H MOV R4, #00H MOV R5, #30HLOOP: INC R3INC R5 MOV DPL,R3MOV DPH, R2MOVX A, DPTRMOV DPL, R5MOV DPH, R4MOVX DPTR, A CJNE R3, #021H, LOOP END实验六 查找相同数个数一、实验目的熟悉

8、汇编语言编程。二、实验内容在2000200Fh中查出有几个字节是零,把个数放在2100h中。三、程序框图四、实验过程(1)实验中利用R0放置需查找段长度,即设置其值为10H,设置R1初值为00H,用于存放等于零数据的个数。(2)从2000H单元开始,程序中利用等于零跳转指令JZ,实现找到0则R1加一计数的功能,每次检查完一个单元R0减1,指针下移,直到R0等于0结束循环。循环终止后,将R1内容存入2100H中即可。五、实验结果及分析问题回答:若需查找0FFH,只需将语句JZ LOOP1改为CJNZ R0, #0FFH, LOOP1即可,即数据等于0FFH时跳转到计数+1的程序段进行计数。六、实

9、验源程序;查找相同数个数 ORG 0000H LJMP MAIN ORG 0AA0HMAIN: MOV DPL, #00H MOV DPH, #20H MOV R0, #10H MOV R1, #00HLOOP: MOVX A, DPTR JZ LOOP1 DEC R0 INC DPTR SJMP LOOP2LOOP1: INC R1 DEC R0 INC DPTRLOOP2: CJNE R0, #00H, LOOP MOV DPL, #00H MOV DPH, #21H MOV A, R1 MOVX DPTR, AEND实验七 无符号双字节快速乘法子程序一、实验目的掌握MCS-51汇编语言程

10、序设计方法。二、实验内容将(R2 R3)和(R6 R7)中双字节无符号整数相乘,乘积送R4 R5 R6 R7中。三、程序框图四、实验过程本程序是利用单字节的乘法指令MUL,根据下面的公式实现双字节数的乘法。(R2 R3)(R6 R7)= (R2)28+(R3)(R6)28+(R7)= (R2)(R6)216+(R2)(R7)+(R3)(R6)28+(R3)*(R7)将乘数与被乘数高低字节拆开分别相乘,然后再将每个高字节因子向前移动8位进行调整,进行加权求和。利用ADDC语句可实现带进位的加法运算。得到的最终结果存入R4、R5、R6、R7寄存器中。五、实验结果及分析寄存器R2、R3、R6、R7分

11、别输入01、10、11、10,运行程序,即进行0110H1110H的运算,得到结果为H存放在R4、R5、R6、R7寄存器中,故R4、R6中的内容是00H和21H。六、实验源程序;无符号双字节快速乘法子程序ORG 0970HMAIN: MOV R2, #00HMOV R3, #02HMOV R6, #00HMOV R7, #05HMOV A, R3MOV B, R7MUL ABXCH A, R7MOV R5, BMOV B, R2MUL ABADD A, R5MOV R4, ACLR AADDC A, BMOV R5, AMOV A, R6MOV B, R3MUL ABADD A, R4XCH

12、A, R6XCH A, BADDC A, R5MOV R5, AMOV F0, CMOV A, R2MUL ABADD A, R5MOV R5, ACLR A MOV ACC.0, CMOV C, F0ADDC A, BMOV R4, ASJMP $END实验八 多分支程序一、实验目的掌握汇编语言的编程。二、实验内容编写程序,根据送入的数据转移运行。三、程序框图四、实验过程实验中利用散转指令JMP A+DPTR实现程序的多分支跳转,这里A为变址寄存器,DPTR为基址寄存器。跳转到不同分支的运行结果由LED进行显示,每个分支对应的数码管上显示不同的数字。显示数字由数字七段码送至I/O口显示。在显

13、示程序中利用循环左移加延时子程序调用,实现数字循环显示的效果。编程中需要注意的是,A需乘以2即左移一位再作为变址寄存器,这是程序中由于分支跳转语句为2个字节所致。五、实验结果及分析实验中可以看到选择不同的数字进入不同分支,LED管上会出现不同数字的循环左移显示。问题回答:如需将循环速度减慢,只要将延时子程序初值变大,或增加循环层数,或者再增加一段循环语句即可,如可进行以下修改:改为DELAY:MOV R3,#0FFHMOV R2,#0FFHDL1:MOV R4,#0FFHDL1:MOV R3,#0FFHDL2:NOPDL2:MOV R4,#0FFHNOPDL3:NOPDJNZ R4,DL2NO

14、PDJNZ R3,DL1DJNZ R4,DL3RETDJNZ R3,DL2ENDDJNZ R2,DL1RET END若将0字循环改为4字循环只需同时将0字七段码0C0H改为4字七段码99H即可。六、实验源程序ORG 0000HLJMP MAINORG 0DA0HLJMP SOX0ORG 0A10HMAIN: MOV 20H, #03H ;每次实验,这里可以改为0、1、2和3MOV A, 20H ;取预置数据MOV DPTR, #LOOP ;散转表起始地址RL A ;A 乘以 2JMP A+DPTR ;散转指令LOOP:AJMPLOOP1AJMPLOOP2AJMPLOOP3AJMPLOOP4LO

15、OP1: MOV 21H, #0C0H ;0字的7段码SJMPSOX0LOOP2:MOV 21H, #0F9H ;1字的7段码SJMPSOX0LOOP3: MOV 21H, #0A4H ;2字的7段码SJMPSOX0LOOP4: MOV 21H, #0B0H ;3字的7段码SOX0: ;循环显示程序 MOV A, 21H ;取来7段码 MOV R0, #0DCH ;显示器段地址 MOV R1, #0DDH ;显示器位地址 MOVX R0, A ;将7段码输出 MOV A, #01H ;最右边的位发光SOX1:MOVX R1, AMOV R2, #20H ;准备延时LCALL DELAY ;调用

16、延时子程序RL A ;左移显示的位SJMP SOX1 ;无穷循环DELAY:MOV R3,#0FFHDL1:MOV R4,#0FFHDL2:NOPNOPDJNZ R4,DL2DJNZ R3,DL1RETEND实验十电脑时钟(定时器、中断器综合实验)一、实验目的熟悉MCS-51定时器,串行口和中断初始化编程方法,了解定时器的应用实时程序的设计与调试技巧。二、实验内容编写程序,从本实验系统键盘上输入时间初值,用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。三、程序框图四、实验步骤1、LED环境在“P.”状态下按“0EV/UN”,装载实验所需的代码程序。在“P.”状态下键

17、入0030,然后按“EXEC”进入该实验项目的运行。2、PC环境在与PC联机状态下,编译、连接、下载PH51se10.asm,用连续方式运行该程序。3、在键盘上输入时间初值,按执行键EXEC执行,数码管上实时显示时间值。4、按“暂停图标”或实验箱上的“暂停按钮”,系统无条件退出该程序运行返回监控状态。五、实验分析及结果如何修改程序使定时器工作方式改变(实现12小时制)问题回答:因为程序中有十进制调整,所以就将程序中“CJNE A,#24H,DONE ;24小时到吗?”改为“CJNE A,#12H,DONE ;12小时到吗?”六、实验源程序;电脑时钟(定时器、中断综合实验) ORG 0000H

18、SJMP CHK00 ORG 000BH LJMP CLOCK;INT_T0 ORG 0030HCHK00: MOV SP,#60H LCALL LEDPCHK0: LCALL LCK0 ;键扫,显示子程序 LCALL PTDS0 ;显示缓冲区放数子程序 MOV TMOD,#01H ORL IE,#b ;EA=1, IT0=1 MOV TL0,#0 MOV TH0,#4ch ;定时中断初始化 MOV 23H,#00H SETB TR0 ;开定时LOO5: LCALL DIS;SSEE ;显示 LCALL PTDS0 SJMP LOO5PTDS0: MOV R0,#79H MOV A,22H A

19、CALL PTDS MOV A,21H ACALL PTDS MOV A,20H ACALL PTDS RET;-PTDS: MOV R1,A ;拆送显示缓冲区 ACALL PTDS1 MOV A,R1 SWAP APTDS1: ANL A,#0FH MOV R0,A INC R0 RET;-CLOCK: MOV TL0,#0B7H MOV TH0,#3CH ;恢复初值 PUSH PSW PUSH ACC SETB 0D3H ;保护 INC 23H ;0.1秒加1 MOV A,23H CJNE A,#20,DONE ;1秒到吗? MOV 23H,#00H ;清0.1秒单元 MOV A,22H

20、INC A ;秒加1 DA A MOV 22H,A ;十进制调整 CJNE A,#60H,DONE ;60秒到吗? MOV 22H,#00H ;秒单元清零 MOV A,21H INC A DA A ;分加1.十进制调整 MOV 21H,A CJNE A,#60H,DONE ;60分到吗? MOV 21H,#00H ;分单元清零 MOV A,20H INC A DA A ;时加1.十进制调整 MOV 20H,A CJNE A,#24H,DONE ;24小时到吗? MOV 20H,#00H ;时单元清零DONE: POP ACC ;退栈 POP PSW RETI;-SSEE: SETB RS1 ;

21、换工作区 MOV R5,#05HSSE2: MOV 30H,#20H MOV 31H,#7EH MOV R7,#06HSSE1: MOV R1,#0DDH MOV A,30H MOVX R1,A ;字位送入 MOV R0,31H MOV A,R0 MOV DPTR,#DDFF MOVC A,A+DPTR ;取字形代码 MOV R1,#0DCH MOVX R1,A ;字形送入 MOV A,30H ;右移 RR A MOV 30H,A DEC 31H MOV A,#0FFH MOVX R1,A ;关显示 DJNZ R7,SSE1 ;6位显示完了吗? DJNZ R5,SSE2 ;5次显示完了吗? C

22、LR RS1 RET;-DDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH;-X3: MOV R4,A MOV R0,#50H MOV A,R0 MOV R1,A MOV A,R4 MOV R1,A CLR A POP DPH POP DPL MOVC A,A+DPTR INC DPTR CJNE A,01H,X30 dec r1 clr a MOVC A,A+DPTRX31: MOV R0,A INC DPTR PUSH DPL PUSH DP

23、H RETX30: DEC R1 MOV A,R1 SJMP X31;-X2: MOV R6,#50HX0: ACALL XLE JNB ACC.5,XX0 DJNZ R6,X0 MOV R6,#20H MOV R0,#50H MOV A,R0 MOV R0,A MOV A,R0 MOV R7,A MOV A,#10H MOV R0,AX1: ACALL XLE JNB ACC.5,XX1 DJNZ R6,X1 MOV A,R7 MOV R0,A SJMP X2XX1: MOV R6,A MOV A,R7 MOV R0,A MOV A,R6XX0: RET;-XLE: ACALL DIS AC

24、ALL KEY MOV R4,A MOV R1,#48H MOV A,R1 MOV R2,A INC R1 MOV A,R1 MOV R3,A MOV A,R4 XRL A,R3 MOV R3,04H MOV R4,02H JZ X10 MOV R2,#88H MOV R4,#88HX10: DEC R4 MOV A,R4 XRL A,#82H JZ X11 MOV A,R4 XRL A,#0EH JZ X11 MOV A,R4 JZ X12 MOV R4,#20H DEC R2 SJMP X13X12: MOV R4,#0FHX11: MOV R2,04H NOP NOP MOV R4,03

25、HX13: MOV R1,#48H MOV A,R2 MOV R1,A INC R1 MOV A,R3 MOV R1,A MOV A,R4 JB ACC.5,X113 JB ACC.4,X113 MOV DPTR,#LS3 MOVC A,A+DPTRX113: RET;-LS3: DB 07H,04H,08H,05H,09H,06H,0AH DB 0BH,01H,00H,02H,0FH,03H,0EH DB 0CH,0DH;-DIS: PUSH DPH PUSH DPL SETB RS1 MOV R0,#7EH MOV R2,#20H MOV R3,#00H MOV DPTR,#LS0LS2:

26、 MOV A,R0 MOVC A,A+DPTR MOV R1,#0DCH MOVX R1,A MOV A,R2 inc R1 MOVX R1,ALS1: DJNZ R3,LS1 CLR C RRC A MOV R2,A DEC R0 JNZ LS2 movx r0,a dec r0 cpl a movx r0,a CLR RS1 POP DPL POP DPH RET;-LS0: DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H,83H,0C6H DB 0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH;-KEY:

27、SETB RS1 MOV R2,#0FEH MOV R3,#08H MOV R0,#00HLP1: MOV R1,#0DDH MOV A,R2 MOVX R1,A RL A MOV R2,A inc r1 MOVX A,R1 CPL A ANL A,#0FH JNZ LP0 INC R0 DJNZ R3,LP1XP33: MOV A,#20HXP3: mov r2,a clr a mov r1,#0ddh movx r1,a mov a,r2 CLR RS1 RET;-LP0: CPL A JB ACC.0,XP0 MOV A,#00H SJMP LPPXP0: JB ACC.1,XP1 MO

28、V A,#08H SJMP LPPXP1: JB ACC.2,XP2 MOV A,#10H SJMP LPPXP2: JB ACC.3,XP33 MOV A,#18HLPP: ADD A,R0 sjmp xp3;-LEDP: MOV 50H,#7EH MOV A,#10H MOV R0,#79HLEDS:MOV R0,A INC R0 CJNE R0,#7EH,LEDS INC A MOV R0,A RET;-LCK0: LCALL X2 JB ACC.4,LDFC LCALL X3 DB 79H,7EH SJMP LCK0LDFC: CJNE A, #16H,LCK0 MOV A, 7AH

29、SWAP A ORL A, 79H MOV 22H, A CJNE A, #60H,LE09LE09: JNC LE24 MOV A, 7CH SWAP A ORL A, 7BH MOV 21H, A CJNE A, #60H,LE15LE15: JNC LE24 MOV A, 7EH SWAP A ORL A, 7DH MOV 20H, A CJNE A, #24H,LE21LE21: JNC LE24 RET;-LE24: CLR 8CH LJMP CHK00;- END实验十一 二进制转换到BCD一、实验目的将给定的一个二进制数,转换成二进制编码的十进制(BCD)码。二、实验内容掌握简单

30、的数值转换算法,基本了解数值的各种表达方法。三、程序框图四、实验过程本程序中需要转换的二进制数为F4H。由于八位内存存储的最大数据为FFH即十进制的255,故所转换的十进制数只有百位、十位和个位。百位的BCD码即待转换二进制数除以100得到的商,余数保存;用余数除以10得到十位BCD码,所得余数即为个位BCD码。将转换后BCD码三位装入20H-22H内存即可。五、实验结果及分析0020H-0022H单元中中存放的244即为二进制数F4H转换后得到的BCD码。六、实验源程序;待调整数A=0F4HORG 0000HLJMP MAINORG 100HMAIN:CLR AMOV R5,AMOV R6,

31、AMOV A,#0F4HMOV B,#64HDIV ABMOV 20H,AMOV A,BMOV B,#0AHDIV ABMOV 21H,AMOV 22H,BSJMP $END实验十四键盘扫描显示实验一、实验要求在上一个实验的基础上,利用实验系统提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。实验程序可分成三个模块。键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。显示模块:将显示单元的内容在显示器上动态显示。主程序:调用键输入模块和显示模块。二、实验目的掌握键盘和显示器的接口方法和编程方法。掌握键盘扫描和LED八段码显示器的工作原理

32、。三、实验说明本实验系统自带一个84的键盘,在判断有键按下后,要有一定的延时,防止键盘抖动。四、程序框图五、实验步骤1、在联机状态下,编译、连接、下载、连续运行PH51se14.asm,利用实验系统的显示设备、键盘实现按键的输入并送至显示设备输出。2、按“暂停图标”,系统无条件退出该程序运行返回监控状态。六、实验源程序*;MCS-51系列单片机仿真实验系统软件实验项目;键盘扫描显示实验;*OUTBIT equ 0ffddh ;位控制口/键扫口OUTSEG equ 0ffdch ;段控制口IN equ 0ffdeh ;键盘读入口LedBuf equ 60h ;显示缓冲 org 0Start: m

33、ov sp,#40h mov LedBuf+0,#0c2h ;显示Good mov LedBuf+1,#0a3h mov LedBuf+2,#0a3h mov LedBuf+3,#0a1h mov LedBuf+4,#0ffh mov LedBuf+5,#0ffhMLoop: call DisplayLED ;显示 call GetKey ;扫描键盘并读取键值 jb acc.5,MLoop jb acc.4,MLoop anl a,#b ;显示键码 mov dptr,#LedMap movc a,a+dptr mov LedBuf+5,a sjmp MLoopDelay: ;延时子程序 mov

34、 r7,#0DelayLoop: djnz r7,DelayLoop djnz r6,DelayLoop retDisplayLED: mov r0,#LedBuf mov r1,#6 ;共6个八段管 mov r2,#b ;从左边开始显示Loop: mov dptr,#OUTBIT mov a,#0 movx dptr,a ;关所有八段管 mov a,r0 mov dptr,#OUTSEG movx dptr,a mov dptr,#OUTBIT mov a,r2 movx dptr,a ;显示一位八段管 mov r6,#1 call Delay mov a,r2 ;显示下一位 rr a mo

35、v r2,a inc r0 djnz r1,Loop retGetKey: call ScanKey mov r4,a mov r1,#48h mov a,r1 mov r2,a inc r1 mov a,r1 mov r3,a mov a,r4 xrl a,r3 mov r3,04h mov r4,02h jz Key1 mov r2,#88h mov r4,#88hKey1: dec r4 mov a,r4 xrl a,#82h jz Key2 mov a,r4 xrl a,#0eh jz Key2 mov a,r4 jz Key3 mov r4,#20h dec r2 sjmp Key4

36、Key3: mov r4,#0fhKey2: mov r2,04h mov r4,03hKey4: mov r1,#48h mov a,r2 mov r1,a inc r1 mov a,r3 mov r1,a mov a,r4 jb acc.5,Exit jb acc.4,Exit mov dptr,#KeyTable movc a,a+dptrExit: retScanKey: setb RS1 mov r2,#0feh mov r3,#08h mov r0,#00hLoopS: mov r1,#Low(OUTBIT) mov a,r2 movx r1,a rl a mov r2,a inc

37、 r1 movx a,r1 cpl a anl a,#0fh jnz Scan inc r0 djnz r3,LoopSReTKey3:mov a,#20hTKey3: mov r2,a clr a mov r1,#Low(OUTBIT) movx r1,a mov a,r2 clr RS1 retScan: cpl a jb acc.0,TKey0 mov a,#00h sjmp EndLoopTKey0: jb acc.1,TKey1 mov a,#08h sjmp EndLoopTKey1: jb acc.2,TKey2 mov a,#10h sjmp EndLoopTKey2: jb

38、acc.3,ReTKey3 mov a,#18hEndLoop:add a,r0 sjmp TKey3LedMap: ;八段管显示码 db 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h db 080h,090h,088h,083h,0c6h,0a1h,086h,08ehKeyTable: ;键码定义 db 07h,04h,08h,05h,09h,06h,0ah,0bh db 01h,00h,02h,0fh,03h,0eh,0ch,0dh end硬 件 实 验硬件实验部分可使学生能进一步掌握单片机系统扩展和输入输出程序的设计方法,熟悉对扩展系统的软件、硬件设计,

39、调试方法和技巧。实验一 P1口亮灯实验一、实验目的(1)学习P1口的使用方法;(2)学习延时子程序的编写。二、实验内容P1口作为输出口,接八个发光二极管,编写程序,使发光二极管循环点亮。三、程序框图四、实验电路五、实验过程连接电路,编写程序,然后观察LED灯的显示情况。此程序运用定时器中断实现计数定时功能。使用中断时,需设置中断控制字TMOD,使定时器1工作于中断方式,然后设置延时子程序初值即TH1和TL1,利用ACALL语句即可申请中断。运行程序时,调用延时子程序,开启计数器,计数器满时发出中断返回中断处,等待下次开始,从而实现循环定时计数功能。六、实验结果及分析实验中LED灯管闪亮并维持一

40、定时间,按循环左移方式点亮。问题回答:若要增加LED灯闪亮时间,可以使延时子程序中计数器计数周期增长,即初值R6、R7值减小即可。改变亮灯方向,只需将RL A变为RR A即可。七、实验源程序 ORG 0790H MOV P1,#0FFH MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A SJMP LOOP DELAY: MOV R7,#0FFH LOOP1: MOV R6,#0FFH LOOP2: NOP NOP DJNZ R6,LOOP2 DJNZ R7,LOOP1 RET END实验三 P3.3口输入 P1口输出一、实验目的1.掌握P3口、P1口简单使用。2.学习

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论