实验一、查表程序(MOVC A,@A+DPTR)

合集下载

单片机原理与应用第四章作业答案

单片机原理与应用第四章作业答案

4-9 试计算片内RAM区40H~47H单元中8个数据的平均值,结果存放在4Ah中;说明:先对8个数求和,结果放在30h,31h;然后用右移3次求平均。

ORG 0000HSJMP MAINORG 0030HMIAN: MOV R0,#40HMOV R1,#30HMOV 30H,#00HMOV 31H,#00HMOV R2,#8CLR CL1: MOV A,@R1ADDC A,@R0MOV @R1,AINC R0INC R1MOV A,@R1ADDC A,#00HMOV @R1,ADEC R1DJNZ R2,L1INC R1L2: MOV R2,#03HMOV A,@R1RRC AMOV @R1,AINC R1MOV A,@R1RRC AMOV @R1,ADEC R1DJNZ R2,L2DEC R1MOV 4AH,@R1SJMP $4-10 在起始地址为2100H,长度为64H的数表中查找ASCII码’F’,如果有,将其值送到1000H单元,如果没有,将0FFH送1000H单元.ORG 0000HSJMP MAINORG 0030HMAIN: MOV R2,#64MOV DPTR,#2100HL2: MOVX A,@DPTRCJNE A,#’F’,L1MOV DPTR,#1000HMOV A,#00HMOVX @DPTR,ASJMP LASTL1: INC DPTRDJNZ R2,L2MOV A,#0FFHMOVX @DPTR,ALAST: SJMP $4-11 试编写将片内40H~60H 单元中的内容传送到外部RAM以2000h为首地址的存放区域中,并将原数据全部清零。

ORG 0000HSJMP MAINORG 0030HMIAN: MOV R0,#40HMOV DPTR,#2000HMOV R1,#20HL1: MOV A,@R0MOVX @DPTR,AMOV @R0,#00HINC R0INC DPTRDJNZ R1,L1SJMP $4-12 编写,内部RAM50H‐59H 10个单元内容的平均值,并存放在5AH单元。

作业习题 寻址方式和指令

作业习题 寻址方式和指令

寻址方式和指令习题一、选择题1、MOVX A,@DPTR指令中源操作数的寻址方式是()(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址2、ORG 0003HLJMP 2000HORG 000BHLJMP 3000H当CPU响应外部中断0后,PC的值是()(A)0003H (B)2000H (C)000BH (D)3000H3、执行PUSH ACC指令,MCS-51完成的操作是()(A)SP+1 SP (ACC)(SP)(B)(ACC)(SP)SP-1 SP(C)SP-1 SP (ACC)(SP) (D)(ACC)(SP)SP+1 SP4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=()(A)2000H (B)2001H (C)2002H (D)2003H5、51执行完MOV A,#08H后,PSW的哪一位被置位()(A)C (B)F0 (C)OV (D)P6、下面条指令将MCS-51的工作寄存器置成3区()(A)MOV PSW,#13H (B)MOV PSW,#18H(C)SETB PSW.4 CLR PSW.3 (D) SETB PSW.3 CLR PSW.47、执行MOVX A,@DPTR指令时,MCS-51产生的控制信号是()(A)/PSEN (B)ALE (C)/RD (D)/WR8、MOV C,#00H的寻址方式是()(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址9、ORG 0000HAJMP 0040HORG 0040HMOV SP,#00H当执行完上面的程序后,PC的值是()(A)0040H (B)0041H (C)0042H (D)0043H10、对程序存储器的读操作,只能使用()(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令二、判断题1、MCS-51的相对转移指令最大负跳距是127B。

()2、当MCS-51上电复位时,堆栈指针SP=00H。

《单片微型计算机与接口技术》思考题与习题解答01

《单片微型计算机与接口技术》思考题与习题解答01

《单片微型计算机与接口技术》思考题与习题解答第0章基础知识0.1 将下列十进制数转换为十六进制数:64,98,80,100,125,255。

0.1 40H,62H,50H,64H,7DH,FFH0.2 将下列十六进制无符号数转换为十进制数:32CH,68H,I)5H,100H,B78H,3ADH。

O.2 812,104,213,256,2936,9410.3 写出下列十进制数的原码和补码,用8位或16位数填人表1中(要求用十六进制数表示)。

表10.3,9350H,CF42H。

O.4 机器数的真值分别为:27,233,-128,-8,14717,31467,-27824,-124780.5 用补码运算完成下列算式,并指出溢出OV和进位CY:(1) 33H+5AH (2) -29H-5DH (3) 65H-3EH (4) 4CH-68HO.5 (1) 33H+5AH=8DH,OV=1,CY=O (2) -29H-5DH=7AH,OV=0,CY=1(3) 65H-3EH=27H,OV=0,CY=1 (4) 4CH-68H=E4H,0V=O,CY=O0.6 将表2中的十进制数按要求转换,用十六进制数填入。

表2O.60.7 写出下列ASCII码表示的十六进制数(如313035H为105H):374341H,32303030H,3841353DH。

0.7 ASCIl码表示的十六进制数分别为:105H,7CAH,200¨。

H,8A50H第1章 MCS-51单片机1.1 什么是嵌入式系统?其控制核心有哪几种类型?1.1 见绪论1.2 单片微型计算机与微处理器在结构上和使用中有什么差异?单片机和DSP在使用上有什么差别?1.2 单片微型计算机是包含CPU、存储器和I/O接口的大规模集成芯片,即它本身包含了除外部设备以外构成微机系统的各个部分,只需接外设即可构成独立的微机应用系统。

微机处理器仅为CPU,CPU是构不成独立的微机系统的。

MCS-51系列单片机指令系统共有111条指令,其中有49条单字节指令、45条双字节指令和17条三字节指令。

MCS-51系列单片机指令系统共有111条指令,其中有49条单字节指令、45条双字节指令和17条三字节指令。
这5条指令的功能是把累加器A中的内容与源操作数所指的数据相互交换。
XCH A,Rn ;(A)←→(Rn)累加器与工作寄存器Rn中的内容互换
XCH A,@Ri ;(A)←→((Ri))累加器与工作寄存器Ri所指的存储单元中的内容互换
XCH A,data ;(A)←→(data)累加器与直接地址单元中的内容互换
[8]. 十进制调整指令(1条)
在进行BCD码运算时,这条指令总是跟在ADD或ADDC指令之后,其功能是将执行加法运算后存于累加器A中的结果进行调整和修正。
DA A
XCHD A,@Ri ;(A 3-0 )←→((Ri) 3-0 )累加器与工作寄存器Ri所指的存储单元中的内容低半字节互换
SWAP A ;(A 3-0 )←→(A 7-4 )累加器中的内容高低半字节互换
[9]. 16位数据传送指令(1条)
这条指令的功能是把16位常数送入数据指针寄存器。
PUSH data ;(SP)+1→(SP),(data)→(SP) 堆栈指针首先加1,直接寻址单元中的数据送到堆栈指针SP所指的单元中
POP data ;(SP)→(data)(SP)-1→(SP), 堆栈指针SP所指的单元数据送到直接寻址单元中,堆栈指针SP再进行减1操作
[8]. 交换指令(5条)
MOV Rn,data ;(data)→(Rn) 直接寻址单元中的内容送到寄存器Rn中
MOV Rn,#data ;#data→(Rn) 立即数直接送到寄存器Rn中
MOV Rn,A ;(A)→(Rn) 累加器A中的内容送到寄存器Rn中
[3]. 以直接地址为目的操作数的指令(5条)
这组指令的功能是把源操作数指定的内容送到由直接地址data所选定的片内RAM中。有直接、立即、寄存器和寄存器间接4种寻址方式:

单片机原理及应用练习题及参考答案

单片机原理及应用练习题及参考答案

单片机原理及应用练习题及参考答案1、关于MCS-51的堆栈操作,正确的说法是( )A、先入栈,再修改栈指针B、先修改栈指针,再出栈C、先修改栈指针,在入栈D、以上都不对答案:C2、已知(A)=59H,(R0)=30H,(30H)=6CH,执行指令XCHD A,@R0后,R0的内容为():A、59HB、30HC、6CHD、5CH答案:D3、当RS1RS0=10时,Rn的地址是():A、08H~0FHB、00H~07HC、18H~1FHD、10H~17H答案:D4、单片机应用程序一般存放在()。

A、RAMB、ROMC、CPUD、寄存器答案:B5、OV(PSW.2)的定义是()A、溢出标志位B、用户标志位C、进位标志位D、寄存器组选择位E、辅助进位标志位F、奇偶标志位答案:A6、RST引脚功能是()A、外部程序存储器读选通信号B、访问程序存储控制信号C、+5 V电源D、复位信号答案:D7、汇编结束指令是():A、ENDB、EQUC、ORGD、BIT答案:A8、执行下面一段程序; MOV SP, #60H MOV A, #10H MOV B, #01H PUSH A PUSH B POP A POP B A , B的内容是:(A)= (B)=A、(A)=00H (B)=10HB、(A)=01H (B)=10HC、(A)=01H (B)=12HD、(A)=00H (B)=13H答案:B9、INTEL 8051 CPU是()位的单片机.A、16B、4C、8D、32答案:C10、ANL C, bit 是()A、数据传送指令B、算术运算指令C、逻辑运算指令D、控制转移指令E、位操作指令答案:E11、下列指令能使累加器A低4位不变,高4位置F的是()A、ANL A,#OFHB、ANL A,#OFOHC、ORL A,#OFHD、ORL A,#OF0H答案:D12、指令MOVC A,@A+DPTR 源操作数的寻址方式是():A、寄存器寻址B、直接寻址C、立即数寻址D、寄存器间接寻址E、变址寻址F、相对寻址G、位寻址答案:E13、8031单片机的内部主要组成部分不包含():A、CPUB、I/O接口C、ROMD、定时计数器答案:C14、已知(A)=50H,(R0)=30H,(30H)=6CH,执行指令MOV A,@R0后,A的内容为():A、50HB、30HC、6CHD、00H答案:C15、一个具有4K字节的程序放在首地址为5000H的存贮区,则末地址为():A、5F00HB、5FFFHC、6000HD、6FFFH答案:B16、INC direct 是()A、数据传送指令B、算术运算指令C、逻辑运算指令D、控制转移指令E、位操作指令答案:B17、已知(A)=88H,(PSW)=80H,执行指令SUBB A,#66H后PSW的内容为():A、C4HB、04HC、C0HD、00H答案:B18、哪个不是常用的晶振频率():A、11.0592MHzB、12MHzC、3MHzD、6MHz答案:C19、( )指令是MCS-51指令系统中执行时间最长且长达8 us的。

单片机实验

单片机实验

实验一数据传送指令的使用及编程方法1.片内RAM的数据传送【实验程序】源程序单元内容ORG 0000HLJMP MAINORG 0030HMAIN:MOV R0,#40H R0MOV R1,#41H R1MOV A,R0 AMOV 30H,A 30HMOV 20H,30H 20HMOV A,#30H AMOV @R0,A 40HMOV A,30H AMOV R7, A R7MOV A,@R0 AMOV R7,A R7MOV DPTR,#0A702H DPTRMOV 30H,R7 30HMOV 20H,@R0 20HMOV 21H,#10H 21HMOV @R0,21H 10HMOV @R1,#01H 41HSJMP $END【实验要求】(1)理解源程序中每条数据传送指令的操作含义,将结果填入每个单元的相应“内容”中。

(2)单步运行源程序,逐条检查“内容”是否正确。

2.外部RAM的数据传送。

【实验程序】源程序单元内容ORG 0000HLJMP MAINORG 0030HMAIN:MOV DPTR,#1A33H DPTRMOV A,#80H AMOVX @DPTR,A 1A33HMOV A,#00H AMOV P2,#1AH P2MOV R0,#34H R0MOV R1,#35H R1MOVX @R0,A 1A34HMOVX A,@DPTR AMOVX @R1,A 1A35HMOVX A,@R0 AMOVX A,@R1 ASJMP $END【实验要求】(1)理解源程序指令含义,指出各存储单元的内容,写在右边的“内容”中。

(2)单步运行源程序,逐条验证分析结果。

3.片内特殊功能寄存器(SFR)的数据传送【实验程序】源程序ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP,#60H ;设栈指针MOV R0,#30H ;#30H送R0(0区)MOV P1,#0EFH ;#EFH送P1口(直接地址为90H)MOV @R0,P1 ;将P1内容送R0所指单元MOV C,P1. 1 ;将P1口的D1位内容送CMOV P1. 7,C ;将CY的内容送P1. 7PUSH PSW ;保护0区寄存器MOV PSW,#08H ;选择1区寄存器MOV R0,#40H ;#40H送1区寄存器R0(08H)MOV @R0,P1 ;P1口内容送1区R0所指单元POP PSW ;恢复0区寄存器SJMP $END【实验要求】(1)理解源程序指令含义,并参照注释写出结果。

单片机数码管静态显示实验程序(汇编)_共2页

单片机数码管静态显示实验程序(汇编)_共2页

单片机数码管静态显示实验程序org 00hnum equ p0;p0口连接数码管clr p2.0;mov dptr ,#tabclr amov r2,#0loop:movc a,@a+dptrmov num ,aacall delay_200msinc r2mov a,r2cjne r2,#15, loopmov r2,#0clr aajmp looptab :DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EHdelay_200ms:mov r3,#20delay:acall delay_10msdjnz r3,delayret;;;;;;;;;;;;;;;;非中断精确delay_1ms:MOV R7 ,#249signed:nopnopdjnz R7 ,signed 1MS定时程序;循环部分;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4机器周期ret;2+249*4+2=1000us;返回指令2机器周期可以精确定时1MS,假设外部晶振是12M;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;非中断精确10MS 定时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mov r6,#9;2个机器周期用2usdelay_10ms_sined: ;9次循环共用 9(1ms+4us)=9036us acalldelay_1msdjnz r6,delay_10ms_sinedMOV r6 ,#240;2个机器中期用 2ussigned_10ms :;循环部分 4机器周期共240次nopnopdjnz r6 ,signed_10msret;返回指令要2us;2us+9036us+240*4us+2us = 10ms 即可精确定时10ms ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;非中断精确定时 1s;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;delay_1s:mov r5,#99delay_1s_signed:acall delay_10msdjnz r5,delay_1s_signed mov r5 ,#9signed_1s:acall delay_1msdjnz r5 ,signed_1smov r5 ,# 140signed_1s_:nopnopdjnz r5,signed_1s_;两个机器周期2us;循环指令周期为4us,加上延时10ms;(10ms+4us)*99 = 990.396ms;两个机器周期2us;循环指令周期为4us,加上延时1ms;(1ms+4us)*9 = 9ms+36us;机器周期2us;一次循环4us共有140次。

《单片机应用技术》答案

《单片机应用技术》答案

《单片机应用技术》习题答案第一章1-1选择1.计算机中最常用的字符信息编码是( A )A ASCIIB BCD码C 余3码D 循环码2.要MCS-51系统中,若晶振频率屡8MHz,一个机器周期等于(A ) μsA 1.5B 3 C3.MCS-51的时钟最高频率是( A ).A 12MHzB 6 MHzC 8 MHzD 10 MHz4.以下不是构成的控制器部件(D ):A 程序计数器、B指令寄存器、C指令译码器、D存储器5.以下不是构成单片机的部件(D )A 微处理器(CPU)、B存储器C接口适配器(I\O接口电路) D 打印机6.下列不是单片机总线是(D )A 地址总线B 控制总线C 数据总线D 输出总线7.-49D的二进制补码为.( B )A 11101111B 11101101C 0001000D 111011008.十进制29的二进制表示为原码(C )A 11100010B 10101111C 00011101D 000011119. 十进制0.625转换成二进制数是( A )A 0.101B 0.111 C10 选出不是计算机中常作的码制是( D )A 原码B 反码C补码 D ASCII1-2填空题原码、反码和补码000111013.十进制数-29的8位补码表示为.11100011CPU、存储器和I\O接口三部分组成.EA必须接地.6.输入输出设备是计算机与外部世界交换信息的载体..110100018.-49D的二进制补码为.11101101ASCII10.计算机中的数称为机器数,它的实际值叫真值。

1-3判断题1.我们所说的计算机实质上是计算机的硬件系统与软件系统的总称。

(√)2.MCS-51上电复位时,SBUF=00H。

(×)。

SBUF不定。

3.使用可编程接口必须处始化。

(√)。

4.8155的复位引脚可与89C51的复位引脚直接相连。

(√)5.MCS-51是微处理器。

(×)不是。

51单片机中查表指令的使用

51单片机中查表指令的使用

个偏移量,以补偿数据表首址与MoVc A,@A+PC后面下! 一条指令地址的差值。也就是说,基址加变址A+Pc中, !
PC虽然不能改变,但可将A中的数据进行调整(加上偏 移量),就能实现准确查表。实际应用中,使用MOVC A,@”Pc指令编写程序时,调整偏移量有以下几种处理 方法:
1.子程序法。将查表指令写成子程序,子程序后紧 跟着安排数据表。

MOV DPTR, #TABLE
MOV A, @A+DPTR

‘ ●



TABLE:DB……·

在实际的单片机应用系统中,往往需要扩展外部数!
据存储器或输入输出接口(如键盘和数码显示等)。在!
这种情况下,程序中就要用到数据指针DPTR,要将其指;
向外RAM地址(或键盘与显示器地址),利用Movx;
式。用MOVC A,@A+DPT财旨令查表,因为数据指针DPTR
是16位的,故数据表可安排在64KB的ROM的任意地址范l
围内。使用时只要将数据指针DPTR(基址寄存器)指向I
欲查数据表的首地址,将累加器A(变址参数寄存器)I
赋以要查表的数据,就可实现查表功能,查得的数据存l
在累加器A中。通用的程序如下:
A,@DPTR和MOVx@DPTR,A指令与外RAM进行数据交换。;
若此时还需要查表(如数码显示程序,需查找七段显示;
器的段码),使用MoVc A,@A+DPTR指令就不太方便。;
数据指针DPTR既要指向内部程序存储器RoM的数据表首;
址,又要指向外部RAM或其他接口的地址,这虽然可用;
堆栈等方法来实现,但比较麻烦。在这种情况下最好使!
应用设计
5 1单片机中查表指令的使用

单片机答案

单片机答案

实验一;1、把R1中内容传送至R0中org 0000hmov r1,#22hmov a,r1mov r0,a;2、把内部数据存储器20H单元中的内容传送至内部数据存储器30H单元中 mov 20h,#33hmov 30h,20h;3、把外部数据存储器20H单元中的内容传送至内部数据存储器20H单元中 mov dptr,#20hmov a,#66hmovx @dptr,aclr amovx a,@dptrmov 20h,a;4、把外部数据存储器20H单元中的内容传送至内部数据存储器20H单元中 mov dptr,#2000hmovx @dptr,aclr amovx a,@dptrmov 20h,a;5、把外部程序存储器2000H单元中的内容传送至内部数据存储器20H单元中mov dptr,#2000hclr amovc a,@a+dptrmov 20h,asjmp $org 2000htab: db 88hend6.把外部数据存储器2050H单元、2060H单元中的内容相互交换。

mov dptr,#2050hmov a,#55hmovx @dptr,amov dptr,#2060hmov a,#66hmovx @dptr,aclr amovx a,@dptrpush accmov dptr,#2050hmovx a,@dptrmov dptr,#2060hmovx @dptr,apop accmov dptr,#2050hmovx @dptr,a;8、应用MOVC A,@A+dptr指令求累加器A的平方值Y(设Y<=255),并把结果送至R7中保存。

org 0000hljmp mainorg 0030hmain: mov a,#3h ;查3的平方值mov dptr,#tab ;指向平方表的表头movc a,@a+dptr ;查表指令sjmp $tab:db 0,1,4,9,16,25,36,47,64,81,100,121,144,169,196,255;平方表end实验二;1、将(R2R3)和(R4R5)中的双字节无符号数相加,结果存放在40H和41H单元中。

单片机的查表程序

单片机的查表程序

在单片机开发过程中。

一些非线性的控制过程。

最适合做一个表格来。

时时改变系统的参数。

达到控制的目的.最常的如产生正弦的的程。

就是建一个大的数组时时改变输出的8位字节送给外部DA.由DA生成一个完整的正弦波.当然了.LED显示也是一个例子。

通过建一个数组来实现段码的点亮点灭.下面就是一个LED表——-digits[0]#define SEG_a 0x01#define SEG_b 0x02#define SEG_c 0x04#define SEG_d 0x08#define SEG_e 0x10#define SEG_f 0x20#define SEG_g 0x40#define SEG_dot 0x80unsigned char digits[10]= {(SEG_a|SEG_b|SEG_c|SEG_d|SEG_e|SEG_f), // 0(SEG_b|SEG_c), // 1(SEG_a|SEG_b|SEG_d|SEG_e|SEG_g), // 2(SEG_a|SEG_b|SEG_c|SEG_d|SEG_g), // 3(SEG_b|SEG_c|SEG_c|SEG_f|SEG_g), // 4(SEG_a|SEG_c|SEG_d|SEG_f|SEG_g), // 5(SEG_a|SEG_c|SEG_d|SEG_e|SEG_f|SEG_g), // 6(SEG_a|SEG_b|SEG_c), // 7(SEG_a|SEG_b|SEG_c|SEG_d|SEG_e|SEG_f|SEG_g), // 8(SEG_a|SEG_b|SEG_c|SEG_d|SEG_f|SEG_g) // 9};C查表就太简单了temp2 = digits[ show_data[i]];一句搞定,C中还有一个switch语句也是一个很好的用查表语句C51汇编就相对麻烦一点。

不过MCS-51指令系统中有专用的查表指令:MOVC A,@A+DPTR和MO V A,@A+PC。

单片机实验指导书

单片机实验指导书

目录实验一P1口输入、输出实验 (2)实验二继电器控制实验 (8)实验三音频控制实验 (11)实验四程序调试 (14)实验五5LED静态串行显示实验 (16)实验六6LED动态扫描显示实验 (21)实验七查询式键盘实验 (28)实验八阵列式键盘实验 (36)实验九计数器实验 (47)实验十定时器实验 (49)实验十一外部中断实验 (54)实验一P1口输入、输出实验一、实验目的1、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。

三、实验内容及步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。

1、使用单片机最小应用系统1模块。

关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。

3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加P1_A.ASM源程序,进行编译,直到编译无误。

4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。

发光二极管单只从右到左轮流循环点亮。

实验(二):用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。

程序读取开关状态,并在发光二极管上显示出来。

1、用导线分别连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。

2、添加 P1_B.ASM源程序,编译无误后,运行程序,拨动拨断开关,观察发光二极管的亮灭情况。

向上拨为熄灭,向下拨为点亮。

四、流程图及源程序1.流程图2.源程序:(一)实验一ORG 0000HLJMP STARTORG 0030HSTART: MOV A, #0FEHMOV R2,#8OUTPUT: MOV P1,ARL AACALL DELAYDJNZ R2,OUTPUTLJMP STARTDELAY: MOV R6,#0MOV R7,#0DELAYLOOP:;延时程序DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPRETEND(二)实验二KEYLEFT BIT P1.0 ;定义KEYRIGHT BIT P1.1LEDLEFT BIT P1.2LEDRIGHT BIT P1.3ORG 0000HLJMP STARTORG 0030HSTART: SETB KEYLEFT ;欲读先置一SETB KEYRIGHTLOOP: MOV C,KEYLEFTMOV LEDLEFT,CMOV C,KEYRIGHTMOV LEDRIGHT,CLJMP LOOPEND五、思考题(1)对于本实验延时子程序Delay: MOV R6,0MOV R7, 0DelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET如使用12MHz晶振,粗略计算此程序的执行时间为多少?六、电路图实验二继电器控制实验一、实验目的1、学习I/O端口的使用方法2、掌握继电器的控制的基本方法3、了解用弱电控制强电的方法二、实验说明现代自动控制设备中,都存在一个电子电路的互相连接问题,一方面要使电子电路的控制信号能控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路和电气电路提供良好的电气隔离,以保护电子电路和人身的安全。

单片机查表程序设计

单片机查表程序设计

$INCLUDE(C8051F020.INC)BIT_COUNT DATA 07FHTIMER DATA 07EHTIMER1 DATA 07DHTEN DATA 07CHDA TA_IN DATA 020HDA TA_OUT DATA 021HDA TA_OUT1 DA TA 022HDA TA_OUT2 DA TA 023HDA TA_OUT3 DA TA 024HDA TA_OUT4 DA TA 025HCLK BIT P1.6DAT BIT P1.7ORG 0000HJMP STARTORG 0100HSTART: mov WDTCN, #0deh ; disable watchdog timer mov WDTCN, #0adhmov OSCXCN, #67h ; enable external crystal; oscillator at 22.1184MHzclr A ; wait at least 1msdjnz acc, $ ; wait ~512usdjnz acc, $ ; wait ~512usosc_wait: ; poll for XTLVLD-->1mov a, OSCXCNjnb acc.7, osc_waitorl OSCICN, #08h ; select external oscillator as; system clock sourceorl OSCXCN, #80h ; enable missing clock detectorCP1INIT: mov CPT1CN, #080h ; Comparator 1 Control Registermov A, #010h ;CPT1CNdjnz ACC, $ ;CPT1CN wait at least 20usanl CPT1CN, #not(30h)mov EIP1, #040hMOV TIMER,#50PORTINIT:mov XBR2, #044hmov P0MDOUT, #001hDELAY0: MOV TIMER1,#255DELAY1: DJNZ TIMER1,DELAY1DJNZ TIMER,DELAY0ANL P5,#00HMOV DA TA_OUT,#10100100BCALL SENDORL P5,#80HMAIN://MOV R0,0X00//SUBB CPT1CN,R0//JNZ MAINMOV A,CPT1CN ;等待有键按下,发送读键盘指令ANL A,#40HJNZ MAINMOV DA TA_OUT,#00010101B ;CALL SENDCALL RECEIVEANL P5,#80HCALL SEARCHMOV A,R2ANL A,#0FHMOV DATA_OUT2,AMOV A,R2SW AP AANL A,#0FHMOV DATA_OUT1,AMOV A,R3ANL A,#0FHMOV DATA_OUT4,AMOV A,R3SW AP AANL A,#0FHMOV DATA_OUT3,AMOV DATA_OUT,#10100100BCALL SENDMOV DATA_OUT,#11001011BCALL SENDMOV DATA_OUT,DATA_OUT1CALL SENDMOV DATA_OUT,#11001010BCALL SENDMOV DATA_OUT,DATA_OUT2CALL SENDMOV DATA_OUT,#11001001BCALL SENDMOV DATA_OUT,DATA_OUT3MOV DATA_OUT,#11001000BCALL SENDMOV DATA_OUT,DATA_OUT4CALL SEND//MOV B,#10//MOV A,DATA_IN//DIV AB//MOV TEN,A//MOV DATA_OUT,#10100001B//CALL SEND//MOV DATA_OUT,#10100001B//CALL SEND//MOV DATA_OUT,#10000001B//CALL SEND//MOV DATA_OUT,TEN//CALL SEND//MOV DATA_OUT,#10000000B//CALL SEND//MOV DATA_OUT,B//CALL SENDANL P5,#80HWAIT: MOV A,CPT1CN ;等待按键放开ANL A,#40HORL A,#00HJZ W AITJMP MAINSEND: MOV BIT_COUNT,#8 ;发送字符子程序ANL P5,#00HCALL LONG_DELAYSEND_LOOP:MOV C,DA TA_OUT.7MOV DA T,CSETB CLKMOV A,DA TA_OUTRL AMOV DA TA_OUT,ACALL SHORT_DELAYCLR CLKCALL SHORT_DELAYDJNZ BIT_COUNT,SEND_LOOPCLR DATRETRECEIVE:MOV BIT_COUNT,#8 ;接收字符子程序CALL LONG_DELAYRECEIVE_LOOP:SETB CLKCALL LONG_DELAYMOV A,DATA_INRL AMOV DA TA_IN,AMOV C,DATMOV DA TA_IN.0,CCLR CLKCALL SHORT_DELAYDJNZ BIT_COUNT,RECEIVE_LOOPCLR DA TRETLONG_DELAY: MOV TIMER,#150 ;延时约200US DELAY_LOOP: DJNZ TIMER,DELAY_LOOPRETSHORT_DELAY: MOV TIMER,#20 ;延时约20US SHORT_LP: DJNZ TIMER,SHORT_LPRETSEARCH: MOV DPTR,#TABLEMOV A,DATA_INRL AMOV B,AMOVC A,@A+DPTRMOV R2,ACLR AMOV A,BINC AMOVC A,@A+DPTRMOV R3,ARETTABLE:DW 8000H,8001H,8002H,8003HDW 8004H,8005H,8006H,8007HEND。

单片机技术高级复习题

单片机技术高级复习题

单片机技术高级复习题一、填空题(1)片内外硬件部分1.MCS—51单片机的CPU主要功能为(运算)和(控制)。

2.MCS-51单片机有5个中断源,分别是(外中断0 )、(外中断1)、(定时器 0 )、(定时器 1)、(串口中断)。

3.8051单片机有两种复位方式,既上电复位和手动复位,复位后PC = (0000H),PSW = (00H),SP =(07H),P0 = P1 = P2 = P3 = (FFH)。

4.寄存器PSW中的RS1和RS0的作用(选择当前积存器工作组)。

5.寄存器PSW中的RS1和RS0的作用是(选择当前工作寄存器组)。

6.寄存器PSW中的RS1和RS0的内容为0,1是选择(1工作寄存器组)。

7.51系列单片机P3口第二功能中,外中断0,定时器0分别是(P3.2 P3.4)引脚。

8.当振荡频率为12MHz时,单片机的一个机器周期为(1 s)9.单片机有两个定时器T0、T1,定时器的工作方式由(TMOD)寄存器决定,定时器的启动与溢出由(TCON)寄存器控制。

10.ADC0809是(8位模/数转换)芯片,DAC0832是(8位数/模转换)芯片11.MCS-51单片机的串行口通讯的波特率是指(每秒传送的二进制数的位数)(2)指令与程序部分1.MOVC A,@A+DPTR是(查表)指令,MOVX A, @DPTR是( 内外数据传送)指令。

2.长转移指令操作码是(LJMP),长调用指令操作码是(LCALL) 。

3.当A=05H, R0=30H时,(30H)=00H,执行MOV @R0, A指令后,A=(05H),R0=(30H),(30H)=(05H)。

4.A=05H,DPTR=1000H时,执行MOVX @DPTR,A指令后,是将A中数据05H传送到(片外1000H )单元。

5. MCS-51单片机指令系统有7种寻址方式,其中MOV A,#DATA 为(立即数)寻址;MOV A, Rn 为 ( 寄存器) 寻址; MOV C, bit 为 (位 ) 寻址。

单片机原理与应用技术第三章课后答案更新版

单片机原理与应用技术第三章课后答案更新版

3-11若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。

试分析执行下列程序段后上述各单元内容的变化。

MOV A,@R1 ;(A)=60H 其余不变MOV @R1,40H ;(30H)=40H 其余不变MOV 40H,A ; (40H) =60H 其余不变MOV R1,#7FH ;(R1)=7FH 其余不变3-12下列程序段汇编后,从3000H开始的各有关存储单元的内容将是什么?地址是3000H的单元存放‘S’的ascii码53H地址是3001H的单元存放‘T’的ascii码54H地址是3002H的单元存放‘A’的ascii码41H地址是3003H的单元存放‘R’的ascii码52H地址是3004H的单元存放‘T’的ascii码54H地址是3005H的单元存放34H地址是3006H的单元存放32H地址是3007H的单元存放00H地址是3008H的单元存放40H地址是3009H的单元存放00H地址是300AH的单元存放90H3-13若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20H)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指出CY、AC、和OV的值。

(1)MOV A,@R0 ; (A)=2CH 其余不变(2)ANL 40H,#0FH ;(40H)=0CH(3)ADD A,R4; AC=1,OV=0,CY=1,(A)=22H(4)SWAP A ;(A)=8EH(5)DEC @R1 ; (20H)=0EH(6)XCHD A,@R1 ;(A)=EFH,(20H)=08H3-14若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、42H单元中的内容各为多少?M OV A,50H ;(A)=40HMOV R0,A ;(R0)=40HMOV A,#00H ;(A)=0MOV @R0,A ;(40H)=0MOV A, 3BH ;(A)=(3BH)MOV 41H,A ;(41H)=(3BH)MOV 42H,41H ;(42H)=(3BH)3-18设自变量X为一无符号数,存放在内部RAM的VAX单元,函数Y存放在FUNC单元。

单片机查表指令

单片机查表指令

单⽚机查表指令单⽚机具有两条查表指令,⽤于从 ROM 中读出预存的数据: MOVC A, @A + PC MOVC A, @A + DPTR 其中前⼀条指令的⽤法,⽐较难,使⽤的时候,需要计算⼀个“偏移量”。

不了解“指令的字节数”的⼈,都不清楚应该如何计算。

第⼀条指令 第⼀条指令中,Rn代表的是R0-R7。

第⼆条指令中,direct就是指的直接地址,⽽第三条指令中,就是我们刚才讲过的。

第四条指令是将⽴即数data送到A中。

下⾯我们通过⼀些例⼦加以说明: MOV A,R1 ;将⼯作寄存器R1中的值送⼊A,R1中的值保持不变。

MOV A,30H ;将内存30H单元中的值送⼊A,30H单元中的值保持不变。

MOV A,@R1 ;先看R1中是什么值,把这个值作为地址,并将这个地址单元中的值送⼊A中。

如执⾏命令前R1中的值为20H,则是将20H单元中的值送 ⼊A中。

MOV A,#34H ;将⽴即数34H送⼊A中,执⾏完本条指令后,A中的值是34H。

以寄存器Rn为⽬的操作的指令 MOV Rn,A MOV Rn,direct MOV Rn,#data 这组指令功能是把源地址单元中的内容送⼊⼯作寄存器,源操作数不变。

以直接地址为⽬的操作数的指令 MOV direct,A 例: MOV 20H,A MOV direct,Rn MOV 20H,R1 MOV direct1,direct2 MOV 20H,30H MOV direct,@Ri MOV 20H,@R1 MOV direct,#data MOV 20H,#34H 以间接地址为⽬的操作数的指令 MOV @Ri,A 例:MOV @R0,A MOV @Ri,direct MOV @R1,20H MOV @Ri,#data MOV @R0,#34H ⼗六位数的传递指令 MOV DPTR,#data16 8051是⼀种8位机,这是唯⼀的⼀条16位⽴即数传递指令,其功能是将⼀个16位的⽴即数送⼊DPTR中去。

音乐盒实验报告

音乐盒实验报告

音乐盒设计报告音乐盒设计报告目录音乐盒摘要 (3)一、原理说明 (3)二、系统框图及工作原理 (3)1、硬件设计及设计框图 (3)1.1硬件仿真 (3)1.2硬件实现 (4)1.2.1小小系统原理图 (4)1.2.2单片机控制部分 (4)1.2.3音频输出部分 (6)2、软件设计 (6)三、元件清单用价格 (6)四、设计总结及体会 (6)五、参考文献 (7)附录A:单片机汇编程序 (7)附录B:元件清单及价格 (12)音乐盒摘要用一块AT89S52组成的最小系统作为控制中心,编好程序烧录进单片机里,使I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。

输出信号通过三极管放大,由一个蜂鸣器来表现信号的输出。

一、 原理说明接通电源时,启动计数器T0,产生一定频率的脉冲,通过P1.0口输出,经过滤波电容滤波后输入第一个三极管的基极,经过第一个三极管放大后信号输入第二个三极管,最终经过两个三极管放大输出到蜂鸣器。

二、 系统框图及工作原理1、 硬件设计及设计框图1.1硬件仿真用proteus 进行仿真,原理图如下:1.2硬件实现1.2.1最小系统原理图1.2.2 单片机控制部分1)振荡与时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机必须在时钟的驱动下才能进行工作。

根据硬件电路的不同,单片机可以有邮件管理员时钟方式,即内部时钟方式和外部时钟方式。

本电路采用的是外部时钟方式。

在由多片单片机组成的系统中,为了单片机之间的时钟信号的同步,应当引入唯一的公用脉冲信号作为各单片机的振荡脉冲。

这时,外部的脉冲信号是经过XTAL2引脚注入的。

如上图所示:2)单片机的复位及复位电路① 复位状态计算机在启动运行时都需要复位,复位使中央处理器CPU 和系统中的其他器件都处于一种初始状态,并从这个初始状态工作。

MCS-51系列单片机有一个复位引脚RST 。

在MCS-51系列单片机的RST 引脚上输入一个高电平信号,该高电平信号至少要维持两个机器周期以上的时间,单片机被复位。

判断题

判断题

()1.MCS—51单片机的指令格式中操作码与操作数之间必须用“,”分隔。

×()2.MCS—51指令MOV A,#40H,表示将立即数40H传送至A中。

√()3.MCS—51指令MOV A,@R0 ;表示将R0指示的地址单元中的内容传送至A中。

√()4.实现DPTR减1操作的指令是DEC DPTR。

×()5.MCS—51的数据传送指令是把源操作数传送到目的操作数,指令执行后,源操作数改变,目的操作数修改为源操作数。

×()6.将37H单元的内容传送至A的指令是:MOV A,#37H。

×()7.MCS—51单片机,CPU对片外RAM的访问只能用寄存器间接寻址的方式,且仅有4 条指令。

√()8.指令MOV R0,R7是正确的。

×()9.指令MOV R3,@R1是错误的。

√()10.指令MOVX @R2,A是正确的。

×()11.指令ACALL SUB1(SUB1是子程序名)操作数的寻址方式是直接寻址。

×()12.执行乘法指令MUL AB需要4μS。

×()13.无条件转移指令LJMP addr16称长转移指令,允许转移的目标地址在128KB 空间范围内。

×()14.MCS—51指令系统中,指令CJNE A,#data, rel的作用相当于SUBB A,#data与JNC rel的作用。

×()15.MCS—51指令系统中,指令JNB bit,rel是判位转移指令,即表示bit=1时转。

×()16.80C31单片机的PC与DPTR都在单片机内部,因此指令MOVC A,@A+PC与指令MOVC A,@A+DPTR执行时只在单片机内部操作,不涉及片外存储器。

×()17.查表指令使用MOVC A ,@A+DPTR 时,表可以存放在任何位置。

√()18.相对转移指令SJMP $ 汇编后,偏移量rel为0FEH。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验名称:一、查表程序日期:2011.4.24得分:
同组人:(不填)指导教师:马惠兰
一、实验目的
1.熟悉Keil uvision3单片机仿真软件的使用方法。

2.熟练掌握单片机实验操作步骤。

3.熟练掌握用MOVC A , @A+DPTR和MOVC A , @A+PC进行查表的程序设计方
法和编程技巧。

4.掌握Keil uvision3对寄存器和SFR赋值和查看数据的命令和方法。

二、实验设备
PC机一台
三、实验内容
根据累加器A中的自变量,查表求1~20的平方数,平方高位数存放在寄存器R6中,平方低位数存放在寄存器R7中。

四、实验原理
本次实验采用查表指令MOVC A , @A+DPTR实现上述字数据查表。

因为最大的自变量20的平方数是400,为了查表后验证方便,自变量1~20对应的平方数用伪指令DW定义,并且定义为压缩BCD码。

查表指令MOVC A , @A+DPTR只能进行字节查表,要查找一个字数据,必须进行两次查表。

利用指令MOVC A , @A+DPTR查表,表可以存放在任何位置,查表前只需要将表的首地址用MOV指令送DPTR、累加器A中必须是要查找数据在表中的偏移地址即可,查找到的数据存放在累加器A中。

编程时,首先将表的首地址送DPTR,累加器A中的自变量减1形成要查找数据在表中的序号,序号乘2得到表内偏移地址,将该偏移地址暂存到寄存器R6中,用MOVC A , @A+DPTR指令进行第一次查表,得到该自变量的平方高8位在累加器A 中,并与R6进行交换,这样查找的平方高位数存放在寄存器R6中,累加器A中是第一次查表时的表内偏移地址;累加器A再加1,得到要查找的平方低位数在表内的偏移地址,再用MOVC A , @A+DPTR指令进行第二次查表,累加器A得到该自变量的平方低8位,送寄存器R7。

据此实验原理编写的实验源程序清单见附页。

五、实验步骤
1.在F盘下为工程建立文件夹张三1;
2.新建工程项目文件张三1.uv2,保存在文件夹张三1中,并为工程选择目标器件为
AT89S52;
3.编辑源程序,建立源文件张三1.ASM,保存在文件夹张三1中;
4.将源文件张三1.ASM添加到工程项目组中;
5.设置调试环境,选择调试模式为软件模拟;
6.加载运行程序,根据预先设计的数据记录表格记录实验数据;
7.实验数据经过实验指导教师检查正确后,实验结束。

实验数据记录见附页。

六、实验结果分析
记录的实验数据经过验证,全部正确,说明源程序设计正确、实验步骤正确。

七、心得体会
1.。

2.。

3.。

4.。

5.。

相关文档
最新文档