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

实验报告(单片机实验报告)

实验报告(单片机实验报告)
实验报告(单片机实验报告)

1 双字节无符号数加法

例1: 双字节无符号数加法(R0 R1)+(R2 R3) → (R4 R5),

R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节。已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h)

假设其和不超过16位。请编程。

org 0000h

Ljmp start

org 0050h

start:

mov R0,#93h

mov R1, #79h

mov R2,#25h

mov R3, #0a4h

mov A,R1

ADD A,R3

mov R5,A

mov A,R0

ADDC A,R2

mov R4,A

ss: jmp ss

end

2双字节无符号数减法

例2: 双字节无符号数相减(R0 R1)-(R2 R3) → (R4 R5)。R0、 R2、R4存放16位数的高字节, R1、 R3、 R5存放低字节,已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h);请编程。同学自己可以设置被减数与减数数值

org 0000h

Ljmp start

org 0050h

start:

mov R0,#93h

mov R1,#79h

mov R2,#25h

mov R3,#0a4h

mov A,R1

CLR C

SUBB A,R3

mov R5,A

mov A,R0

SUBB A,R2

mov R4,A

ss: jmp ss

end

3双字节数乘以单字节数

例3: 利用单字节乘法指令,进行双字节数乘以单字节数运算。若被乘数为16位无符号数, 地址为M1(30H) 和M1+1(31H)(低位先、高位后), 乘数为8位无符号数, 地址为M2(32H), 积由高位到低位存入R2、 R3和R4三个寄存器中。

30H,31H,32H内容 12H,34H,56H ;

org 0000h

Ljmp start

org 0050h

start:

mov 30h,#12h

mov 31h,#34h

mov 32h,#56h

mov a,(30h)

mov b,(32h)

mul ab

mov R3,b

mov R4,a

mov a,(31h)

mov b,(32h)

mul ab

add A,R3

mov R3,A

mov A,b

ADDC A,#00h

mov R2,A

ss: jmp ss

end

4. 把8位二进制数转换为3位BCD

例4: 利用除法指令把累加器A中的8位二进制数转换为3位BCD 数, 并以压缩形式存放在地址M1、 M2单元中。

设A中放A8H ,M1、 M2单元地址是 30H,31H

org 0000h

Ljmp start

org 0050h

start:

mov A ,#0A8h

mov b,#64h

div Ab

mov (30h),A

mov A,b

mov b,#0Ah

div Ab

swap A

add A,b

mov (31h),A

ss: jmp ss

end

5双字节压缩BCD码加法

例6: 双字节压缩BCD码加法。

设R5(高)、 R4(低)为被加数; R3(高)、 R2(低)为加数, 相加和的结果存入: R6(万)、 R5(千、百)、 R4(十、个)。被加数98H,76H;加数 54H,32H

org 0000h

Ljmp start

org 0050h

start:

mov R5,#98h ;R5

mov R4,#76h ;R4

mov R3,#54h ;R3

mov R2,#32h ;R2

mov A,R4

add A,R2

DA A

mov R4,A

mov A,R5

ADDC A,R3

DA A

mov R5,A

mov A,#0h

mov R6,#0h

addc a,R6

mov R6,A

ss: jmp ss

end

6 利用DPTR取数据,并保持DPTR原数不变

例6: 若在外部ROM/EPROM中2000H单元开始依次存放0~9的平方值, 原来数据指针(DPTR)=3A00H, 请用查表指令取出2003H单元的数据后, 要求保持DPTR中的内容不变。

org 0000h

Ljmp start

start:

mov DPTR,#3a00h

push DPH

mov DPTR,#TABLE

mov a, #03h

movc a,@A+DPTR

pop DPH

ss: jmp ss

org 2000h

TABLE: DB 0,1,4,9,16,25,36,49,64,81

End

7 16 位数的算术左移

16 位数的算术左移。 16位数在内存中低 8 位存放在M1单元, 高 8 位存放在M1+1单元。 16位数是1234H ,M1为30H,M2为31H

org 0000h

ljmp start

org 0050h

start:

mov (30h),#34H

mov (31h),#12h

mov a,30h

mov b,#02h

mul ab

mov 30h,a

mov r1,b

mov a,31h

mov b,#02h

mul ab

add a,r1

mov 31h,a

ss:jmp ss

end

8 比较内部RAM I、J单元中A、B两数的大小

例 3: 比较内部RAM I、 J单元中A、 B两数的大小,设A、 B数均为带符号数, 以补码数存入I、 J中, 若A=B, 则使内部RAM的位K 置 1; 若A≠B, 则大数存M单元, 小数存N单元。

设内部RAM I、 J 是30H,40H;(A)=58H,(B)=97H

M单元=50H,N单元=60H,位K=00H

该带符号数比较子程序的比较过程示意图如图 3 ― 9 所示。

org 0000h

ljmp start

org 0050h

start:

mov (30h),#58h

mov (40h),#58h

mov a,30h

anl a,#80h

jnz m ;a<0

mov a,40h

anl a,#80h

jnz m2 ;b<0

mov a,(40h) ;两个数字都大于0的情况

subb a,(30h)

jz m3

jnc m1

jc m2

n1: ;两个数字都小于0的情况 mov a,(40h)

subb a,(30h)

jz m3

jnc m2

jc m1

m: mov a,40h

anl a,#80h

jnz n1 ;b<0

m1: mov (50h),(40h)

mov (60h),(30h)

jmp ss

m2: mov (50h),(30h)

mov (60h),(40h)

jmp ss

m3: mov (00h),#1

ss:jmp ss

end

9 双字节压缩BCD码转换成二进制码

例 2: 双字节压缩BCD码转换成二进制码子程序。

提示: 该转换的算法为: (d3d2d1d0)BCD=(d3×10+d2)×100+(d1×10+d0)

实现该算法的参考子程序如下:

入口: R5(千位、百位)、R4(十位、个位)为BCD码。

出口: R5R4(16 位无符号二进制整数)。

org 0000h

ljmp start

org 0050h

start:

mov r5,#10h

mov r4,#10h

ljmp BCD2B

org 2000h

BCD2B:

mov a,r5

anl a,#0F0h

swap a

mov b,#0ah;b>>10

mul ab

mov r3,a ;暂存相乘结果 mov a,r5

anl a,#0fh

add a,r3

mov b,#64h;b>>100

mul ab

mov r5,b

mov r3,a

mov a,r4

anl a,#0F0h

swap a

mov b,#0ah;b>>10

mul ab

mov r2,a ;暂存相乘结果 mov a,r4

anl a,#0fh

add a,r2

add a,r3

mov r4,a

ss: ljmp ss

end

10 冒泡排序

有8个数据存放在20H为首地址的内部RAM,进行升序排列编程,原始数据:39,27,13,44,78,22,6,51;设R7 为比较次数计数器,初始值为07H,F0为标志位,F0=0表明无互换发生,F0=1表明有互换发生

org 0000h

ljmp start

org 0050h

start:

mov (20h),#39;27h

mov (21h),#27 ; 1Bh

mov (22h),#13 ;0DH

mov (23h),#44 ;2CH

mov (24h),#78 ;4EH

mov (25h),#22 ; 16H

mov (26h),#6 ; 06H

mov (27h),#51 ;33H

a0: mov r0,#20h

mov r1,#1fh

mov r7,#07h

clr f0

clr c

a1:

mov a,@r0

inc r0

inc r1

mov b,a

subb a,@r0

jc a3

a2: mov a,b

xch a,@r0 mov @r1,a setb f0

a3: djnz r7,a1 jb f0, a0

ss: ljmp ss

End

11中断方式下定时器应用设计

设单片机的晶振为12MHz,,定时器0方式0工作,产生1ms定时,在P1.0引脚上输出周期为2ms的方波,中断方式完成,试设计程序。

org 000BH

LJMP INT

org 2000H

ljmp start

start:

mov TMOD ,#00H

mov th0 , #1ch

mov tl1 ,#18h

setb EA

setb ET0

setb TR0

sjmp $

INT: CPL p1.0 ;输出方波

MOV TH0,#1ch ;重新装入计数初值,如果是方式2就不需要重装。

MOV TL0,#18h

RETI

ss:jmp ss

end

12查询方式下定时器应用设计

设单片机的晶振为12MHz,,定时器0方式0工作,产生1ms定时,在P1.0引脚上输出周期为2ms的方波,查询方式完成,试设计程序。

org 2000H

ljmp start

start:

mov TMOD ,#00H

mov th0 , #1ch

mov tl1 ,#18h

mov a,#00h

mov IE ,#00H

setb TR0

loop: jbc tf0 ,loop1

sjmp loop

loop1:

clr tf0

CPL p1.0 ;输出方波

inc a

MOV TH0,#1ch ;重新装入计数初值,如果是方式2就不需要重装。

MOV TL0,#18h

sjmp loop

ss:jmp ss

End

13中断方式下定时器应用设计

设片内RAM的70H单元的初值为01H,要求每1秒钟将其内容左环移一位,采用定时器T1,采用定时方式1,晶振频率为6MHz。中断方式完成,试设计程序。

ORG 0000H

LJMP MAIN

ORG 001BH ;T1中断入口

LJMP INT ;转至INT处

ORG 2000H ;主程序

MAIN:

MOV TMOD,#10H ;T1工作于方式1

MOV TH1,#3CH ;设置计数初值

MOV TL1,#0B0H

SETB EA ;CPU开中断

SETB ET1 ;允许T1中断

SETB TR1 ;启动T1定时

MOV 70h,#01H ;将初值送入70H单元中MOV R0,#0AH ;设置软件计数器

HALT: SJMP HALT ;等待中断

INT: DJNZ R0,NEXT ;中断服务程序

MOV A,70H ;时间已到,将70H单元内容送A

RL A ;左环移一位

MOV 70H,A ;回送

MOV R0,#0AH ;重新设置软件计数器

NEXT:MOV TH1,#3CH ;重新设置计数初值 MOV TL1,#0B0H

RETI ;中断返回

ss:jmp ss

END

定时器实验报告

电子信息工程学系实验报告 课程名称:单片机原理及接口应用Array实验项目名称:51定时器实验实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP) 2、51单片机的相关寄存器设置 方式控制寄存器TMOD: TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。TMOD各位的含义如下: 1. 工作方式选择位M1、M0 3、51单片机定时器的工作过程(逻辑)方式一 方式1:当M1M0=01时,定时器工作于方式1。

T1工作于方式1时,由TH1作为高8位,TL1作为低8位,构成一个十六位的计数器。若T1工作于定时方式1,计数初值为a,晶振频率为12MHz,则T1从计数初值计数到溢出的定时时间为t =(216-a)μS。 4、51单片机的编程 使用MCS-51单片机的定时/计数器的步骤是: .设定TMOD,确定: 工作状态(用作定时器/计数器); 工作方式; 控制方式。 如:T1用于定时器、方式1,T0用于计数器、方式2,均用软件控制。则TMOD的值应为:0001 0110,即0x16。 .设置合适的计数初值,以产生期望的定时间隔。由于定时/计数器在方式0、方式1和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。 计数初值的计算方法如下,设晶振频率为fosc,则定时/计数器计数频率为fosc/12,定时/计数器的计数总次数T_all在方式0、方式1和方式2时分别为213 = 8192、216 = 65536和28 = 256,定时间隔为T,计数初值为a,则有 T = 12×(T_all – a)/fosc a = T_all – T×fosc/12 a = – T×fosc/12 (注意单位) THx = a / 256;TLx = a % 256; .确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断: ET0 = 1;EA = 1; 还需要编写中断服务函数: void T0_srv(void)interrupt 1 using 1 { TL0 = a % 256; TH0 = a / 256; 中断服务程序段} .启动定时器:TR0(TR1)= 1。 四、实验内容过程及结果分析: 利用protues仿真软件设计一个可以显示秒表时间的显示电路。利用实验板上的一位led数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为1s。刚开始led数码管显示9,每过一秒数码管显示值减一,当显示到0时返回9,依此反复。然后设计00-59的两位秒表显示程序。 (1)实现个位秒表,9-0

杭电《过程控制系统》实验报告

实验时间:5月25号 序号: 杭州电子科技大学 自动化学院实验报告 课程名称:自动化仪表与过程控制 实验名称:一阶单容上水箱对象特性测试实验 实验名称:上水箱液位PID整定实验 实验名称:上水箱下水箱液位串级控制实验 指导教师:尚群立 学生姓名:俞超栋 学生学号:09061821

实验一、一阶单容上水箱对象特性测试实验一.实验目的 (1)熟悉单容水箱的数学模型及其阶跃响应曲线。 (2)根据由实际测得的单容水箱液位的阶跃响应曲线,用相关的方法分别确定它们的参数。二.实验设备 AE2000型过程控制实验装置,PC机,DCS控制系统与监控软件。 三、系统结构框图 单容水箱如图1-1所示: Q2 图1-1、单容水箱系统结构图 四、实验原理 阶跃响应测试法是系统在开环运行条件下,待系统稳定后,通过调节器或其他操作器,手动改变对象的输入信号(阶跃信号),同时记录对象的输出数据或阶跃响应曲线。然后根据已给定对象模型的结构形式,对实验数据进行处理,确定模型中各参数。 图解法是确定模型参数的一种实用方法。不同的模型结构,有不同的图解方法。单容水箱对象模型用一阶加时滞环节来近似描述时,常可用两点法直接求取对象参数。 如图1-1所示,设水箱的进水量为Q1,出水量为Q2,水箱的液面高度为h,出水阀

h1( t ) h1(∞ ) 0.63h1(∞) 0 T V 2固定于某一开度值。根据物料动态平衡的关系,求得: 在零初始条件下,对上式求拉氏变换,得: 式中,T 为水箱的时间常数(注意:阀V 2的开度大小会影响到水箱的时间常数),T=R 2*C ,K=R 2为单容对象的放大倍数,R 1、R 2分别为V 1、V 2阀的液阻,C 为水箱的容量系数。令输入流量Q 1 的阶跃变化量为R 0,其拉氏变换式为Q 1(S )=R O /S ,R O 为常量,则输出液位高度的拉氏变换式为: 当t=T 时,则有: h(T)=KR 0(1-e -1)=0.632KR 0=0.632h(∞) 即 h(t)=KR 0(1-e -t/T ) 当t —>∞时,h (∞)=KR 0,因而有 K=h (∞)/R0=输出稳态值/阶跃输入 式(1-2)表示一阶惯性环节的响应曲线是一单调上升的指数函数,如图1-2所示。当由实验求得图1-2所示的 阶跃响应曲线后,该曲线上升到稳态值的63%所对应时间,就是水箱的时间常数T ,该时间常数T 也可以通过坐标原点对响应曲线 图 1-2、 阶跃响应曲线

单片机实验报告

PIC单片机原理与应用实验报告 学校: 学院: 班级: 姓名: 学号: 指导教师:

实验一I/O端口实验 一、实验目的 (1)掌握MPLAP IDE集成开发环境的基本操作。 (2)掌握单片机的I/O端口的设计方法。 (3)掌握在线调试器的使用方法。 (4)学会查阅相关数据手册。 二、实验仪器设备 (1)PC机一台; (2)MPLAP IDE开发软件一套; (3)PICkit3在线调试器一套; (4)APP009实验板一块; 三、实验要求 (1)设计发光LED灯闪烁程序,下载调试,验证功能。 (2)设计流水灯程序,或其他花样彩灯程序,下载调试,验证功能。 (3)设计按按键加1计数程序,下载调试,验证功能。 四、实验步骤 (1)连接在线调试器PICkit3、APP009实验板和计算机; (2)打开MPLAP IDE集成开发环境软件,点击Debugger>Select Tools>PICkit 3 选择调试工具; (3)点击Debugger>Settings,在Settings窗口中点击Power栏,选择由PICkit3向实验板供电; (4)完成实现发光LED灯闪烁实验; 程序代码: #include void delay(void); int main() { while(1) { TRISEbits.TRISE0 = 0; //RE0设置为输出(1输入,0输出); https://www.doczj.com/doc/0517625884.html,TE0 =1; //RE0=1输出高电平+5V,亮灯 delay(); //延时 https://www.doczj.com/doc/0517625884.html,TE0 =0; //RE0=0输出低电平0V,灭灯 delay(); //延时 } } void delay(void) { long int i; for (i=0;i<65000;i++); } 实验现象:将程序下载到实验板上,运行程序,LED闪烁,通过改变延时函数改变延时时间,进而可以改变LED闪烁的频率。

单片机实验报告 计算器

单片机原理及其应用实验报告基于51单片机的简易计算器的设计 班级:12电子1班 姓名:金腾达 学号:1200401123 2015年1月6日

摘要 一个学期的51单片机的课程已经随着期末的到来落下了帷幕。“学以致用”不仅仅是一句口号更应该是践行。本设计秉承精简实用的原则,采用AT89C51单片机为控制核心,4X4矩阵键盘作为输入,LCD1602液晶作为输出组成实现了基于51单片机的简易计算器。计算器操作方式尽量模拟现实计算器的操作方式,带有基本的运算功能和连续运算能力。并提供了良好的显示方式,与传统的计算器相比,它能够实时显示当前运算过程和上一次的结果,更加方便用户记忆使用。本系统制作简单,经测试能达到题目要求。 关键词:简易计算器、单片机、AT89C51、LCD1602、矩阵键盘

目录 一、系统模块设计......................................................................................... 错误!未定义书签。 1.1 单片机最小系统 (1) 1.2 LCD1602液晶显示模块 (1) 1.3 矩阵按键模块 (2) 1.4 串口连接模块 (1) 二、C51程序设计 (2) 2.1 程序功能描述及设计思路 (2) 2.1.1按键服务函数 (2) 2.1.2 LCD驱动函数 (2) 2.1.3 结果显示函数 (2) 2.1.4状态机控制函数 (2) 2.1.5串口服务函数 (2) 2.2 程序流程图 (3) 2.2.1系统总框图 (3) 2.2.2计算器状态机流程转换图 (3) 三、测试方案与测试结果 (4) 3.1测试方案 (4) 3.3 测试结果及分析 (7) 4.3.1测试结果(仿真截图) (7) 4.3.2测试分析与结论 (7) 四、总结心得 (7) 五、思考题 (8) 附录1:整体电路原理图 (9) 附录2:部分程序源代码 (10)

浙工大过程控制实验报告

实验一:系统认识及对象特性测试 一 实验目的 1了解实验装置结构和组成及组态软件的组成使用。 2 熟悉智能仪表的使用及实验装置和软件的操作。 3熟悉单容液位过程的数学模型及阶跃响应曲线的实验方法。 4学会有实际测的得单容液位过程的阶跃响应曲线,用相关的方法分别确定它们的参数,辨识过程的数学模型。 二 实验内容 1 熟悉用MCGS 组态的智能仪表过程控制系统。 2 用阶跃响应曲线测定单容液位过程的数学模型。 三 实验设备 1 AE2000B 型过程控制实验装置。 2 计算机,万用表各一台。 3 RS232-485转换器1只,串口线1根,实验连接线若干。 四 实验原理 如图1-1所示,设水箱的进水量为Q1,出水量为Q2,水箱的液面高度为h ,出水阀V2固定于某一开度值。根据物料动态平衡的关系,求得: 在零初始条件下,对上式求拉氏变换,得: 式中,T 为水箱的时间常数(注意:阀V2的开度大小会影响到水箱的时间常数),T=R2*C ,K=R2为单容对象的放大倍数,R1、R2分别为V1、V2阀的液阻,C 为水箱的容量系数。 阶跃响应曲线法是指通过调节过程的调节阀,使过程的控制输入产生一个阶跃变化,将被控量随时间变化的阶跃响应曲线记录下来,再根据测试记录的响应曲线求取输入输出之间的数学模型。本实验中输入为电动调节阀的开度给定值OP ,通过改变电动调节阀的开度给定单容过程以阶跃变化的信号,输出为上水箱的液位高度h 。电动调节阀的开度op 通过组态软件界面有计算机传给智能仪表,有智能仪表输出范围为:0~100%。水箱液位高度有由传感变送器检测转换为4~20mA 的标准信号,在经过智能仪表将该信号上传到计算机的组态中,由组态直接换算成高度值,在计算机窗口中显示。因此,单容液位被控对象的传递函数,是包含了由执行结构到检测装置的所有液位单回路物理关系模型 有上述机理建模可知,单容液位过程是带有时滞性的一阶惯性环节,电动调节阀的开度op ,近似看成与流量Q1成正比,当电动调节阀的开度op 为一常量作为阶跃信号时,该单容液位过程的阶跃响应为 需要说明的是表达式(2-3)是初始量为零的情况,如果是在一个稳定的过程下进行的阶跃响应,即输入量是在原来的基础上叠加上op 的变化,则输出表达式是对应原来输出值得基础上的增量表达的是,用输出测量值数据做阶跃响应曲线,应减去原来的正常输出值。 五、实验步骤 A 、熟悉用MCGS 组态的智能仪表过程控制系统 1、设备的连接和检查

单片机实验报告

单片机实验报告 班级:信科09-3 姓名:王艳辉 学号:08093581 指导老师:陈岱 完成时间:2012年1月8日

实验一 I/O接口P1、P3口实验 一,实验题目 1,用P1口做输出,接八只发光二极管,编写程序,使发光二极管循环点亮。 2,用P3口做输入口,接八个扭子开关,通过P1口在实验箱上LED 灯上输出,编写程序读取开关状态,将此状态,在发光二极管上显示出来。 二,实验目的 1.熟悉使用CPLD实验箱进行单片机实验的方法。 2.设计出符合实验要求的CPLD硬件电路。 3.学习单片机仿真开发软件Keil 51的使用方法。 4.学习MCS-51汇编语言编程方法。 5.学习Pl口的使用方法。 6.学习延时子程序的编写和使用。 三,实验准备 P1和P3口为准双向口,Pl、P3的每一位都能独立地定义为输出线或输入线,作为输入时,必须向锁存器相应位写入“l”,该位才能作为输入。803l中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写入过“0”,在需要时应写入一个“l”使它再成为一个输入。再来看一下延时程序的实现。现常用的有两种方法:一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。根据实验系统的工作主频,计算出延时0.1s的

时间常量,编制延时程序: MOV R7, #200 (1) DEl:MOy R6,#X (2) DE2:DJNZ R6,DE2 (3) DJNZ R7,DEl (4) 上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需1÷0.256us现求出X值: (X*1/0.256+1/0.256+l/0.256)*200+l/0.256=0.1*10^6。解出X=l26。代入上式可知实际延时约0.100O04s,近似符合要求。 四,实验步骤 (1)打开MAX+PLUSⅡ CPLD实验开发系统。 (2)点击File菜单Project子菜单之Name项,出现Project Name 对话框。为当前的实验选择恰当的路径并创建项目名称”E:\AT8031”。(3)点击File菜单之New项,出现对话框,为选择输入方式,选择Graphic Editor File。出现图形编辑窗口。 (4)双击空白编辑区,出现Enter Symbol 对话框。 (5)从Symbol Libraries项中选择mf子目录(双击),在prim子目录中选择输入脚input 和输出引脚output。 (6)在图形编辑窗口中的左侧点击连线按钮,并完成对电路的连线。(7)在引脚的PIN_NAME处左键双击使之变黑,键入引脚名称。

单片机实验报告2_lbs_v2.0

东南大学仪器科学与工程学院学院 实验报告 课程名:单片机应用系统设计 实验名称:单片机课程设计实验报告(二) 院(系):仪器科学与工程学院专业:测控技术与仪器

目录 一、硬件实验四显示器/键盘实验 (3) 二、硬件实验五串行口实验 (16) 三、硬件实验六计数器/定时器实验 (32) 四、硬件实验八 8255扩展 (39)

硬件实验四显示器/键盘实验 I、八段数码管显示实验 一、目的 1、了解数码管动态显示的原理; 2、了解用总线方式控制数码管显示。 二、内容 利用实验箱提供的显示电路,动态显示一行数据。 三、实验步骤 1、硬件连接 2、实验说明 注意:当用总线方式驱动八段显示管时,请将八段的驱动方式选择开关拨到“内驱”位置;当用I/O方式驱动八段显示管时,请将开关拨到“外驱”位置。

本实验箱提供了6位8段LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制,显示方式为动态显示。 8位段码,6位位码分别由两片74HC374输出,其中位码再经MC1413或ULN2003反相驱动。 本实验箱中,8位段码输出地址为0X004H,位码输出地址为0X002H。此处X是KEY/LED CS决定,参见地址译码。 做键盘和LED实验时,需将KEY/LED CS接到相应的地址译码上,以便用相应的地址来访问。例如KEY/LED CS接到CS0上,则段码地址为08004H,位码地址为08002H。 七段数码管的字形代码表如下表: 3. 分析并执行程序,观察并记录结果 四、提高要求 修改程序,显示1,2,3,4,5,6或A,B,C,D,E,F。

过程控制系统实验报告

实验一过程控制系统的组成认识实验 过程控制及检测装置硬件结构组成认识,控制方案的组成及控制系统连接 一、过程控制实验装置简介 过程控制是指自动控制系统中被控量为温度、压力、流量、液位等变量在工业生产过程中的自动化控制。本系统设计本着培养工程化、参数化、现代化、开放性、综合性人才为出发点。实验对象采用当今工业现场常用的对象,如水箱、锅炉等。仪表采用具有人工智能算法及通讯接口的智能调节仪,上位机监控软件采用MCGS工控组态软件。对象系统还留有扩展连接口,扩展信号接口便于控制系统二次开发,如PLC控制、DCS控制开发等。学生通过对该系统的了解和使用,进入企业后能很快地适应环境并进入角色。同时该系统也为教师和研究生提供一个高水平的学习和研究开发的平台。 二、过程控制实验装置组成 本实验装置由过程控制实验对象、智能仪表控制台及上位机PC三部分组成。 1、被控对象 由上、下二个有机玻璃水箱和不锈钢储水箱串接,4.5千瓦电加热锅炉(由不锈钢锅炉内胆加温筒和封闭外循环不锈钢锅炉夹套构成),压力容器组成。 水箱:包括上、下水箱和储水箱。上、下水箱采用透明长方体有机玻璃,坚实耐用,透明度高,有利于学生直接观察液位的变化和记录结果。水箱结构新颖,内有三个槽,分别是缓冲槽、工作槽、出水槽,还设有溢流口。二个水箱可以组成一阶、二阶单回路液位控制实验和双闭环液位定值控制等实验。 模拟锅炉:锅炉采用不锈钢精致而成,由两层组成:加热层(内胆)和冷却层(夹套)。做温度定值实验时,可用冷却循环水帮助散热。加热层和冷却层都有温度传感器检测其温度,可做温度串级控制、前馈-反馈控制、比值控制、解耦控制等实验。 压力容器:采用不锈钢做成,一大一小两个连通的容器,可以组成一阶、二阶单回路压力控制实验和双闭环串级定值控制等实验。 管道:整个系统管道采用不锈钢管连接而成,彻底避免了管道生锈的可能性。为了提高实验装置的使用年限,储水箱换水可用箱底的出水阀进行。 2、检测装置 (液位)差压变送器:检测上、下二个水箱的液位。其型号:FB0803BAEIR,测量范围:0~1.6KPa,精度:0.5。输出信号:4~20mA DC。 涡轮流量传感器:测量电动调节阀支路的水流量。其型号:LWGY-6A,公称压力:6.3MPa,精度:1.0%,输出信号:4~20mA DC 温度传感器:本装置采用了两个铜电阻温度传感器,分别测量锅炉内胆、锅炉夹套的温度。经过温度传感器,可将温度信号转换为4~20mA DC电流信号。 (气体)扩散硅压力变送器:用来检测压力容器内气体的压力大小。其型号:DBYG-4000A/ST2X1,测量范围:0.6~3.5Mpa连续可调,精度:0.2,输出信号为4~20mA DC。 3、执行机构 电气转换器:型号为QZD-1000,输入信号为4~20mA DC,输出信号:20~100Ka气压信号,输出用来驱动气动调节阀。 气动薄膜小流量调节阀:用来控制压力回路流量的调节。型号为ZMAP-100,输入信号为4~20mA DC或0~5V DC,反馈信号为4~20mA DC。气源信号 压力:20~100Kpa,流通能力:0.0032。阀门控制精度:0.1%~0.3%,环境温度:-4~+200℃。 SCR移相调压模块:采用可控硅移相触发装置,输入控制信号0~5V DC或4~20mA DC 或10K电位器,输出电压变化范围:0~220V AC,用来控制电加热管加热。 水泵:型号为UPA90,流量为30升/分,扬程为8米,功率为180W。

杭电自动化单片机实验报告

单片机原理与应用及 C51程序设计 实验报告 实验名称:单片机技术实验 实验一继电器控制输出实验 一、实验目的 1.掌握STC12C5A16S2单片机的最基本电路的设计; 2.了解单片机I/O端口的使用方法; 3.了解继电器和蜂鸣器控制电路以及小电压控制大电压的方法。

二、实验要求 1.利用STC12C5A16S2单片机的P1.2、P1.3口作按钮S9和S10输入,P1.0 和P1.1口作开关量输出,并分别控制一个5V的继电器和蜂鸣器。 2.当S9闭合时,P1.0控制继电器闭合并控制灯泡闪亮;当S9断开时,继 电器触电断开,灯泡不亮; 3.当S10闭合时,P1.1控制蜂鸣器闭合并发出声音;当S10断开时,蜂鸣 器不响。 三、电路 四、原理说明 Q1、Q2为9012三极管即PNP型,低电平导通,当S9或S10按下时,相应的IO口拉低,当P1.0或P1.1赋0时即可控制继电器的吸合活着蜂鸣器的发声。 五、程序代码 #include sbit L1=P1^1; sbit L2=P1^2; sbit L3=P1^3; sbit L0=P1^0;//定义位变量 void delay() { int i,j; for(i=0;i<250;i++) for(j=0;j<250;j++);//利用系统时钟,定义延时函数 }

void main () { int n=20; while(1) //不断循环检测 { if(L2==0) //判断S9输入 { while(n--) { L0=0; delay(); L0=1; delay(); //灯泡以2*delay为周期闪亮 } n=20; } if(L3==0) //判断S10闭合 { while(n--) { L1=0; delay(); L1=1; delay(); //蜂鸣器以2*delay为周期发声 } n=20; } } } 实验二 LED轮换点亮实验 一、实验目的 1.掌握STC12C5A16S2单片机的I/O电路设计; 2.学习SN74HC573数据锁存输出方法。 二、实验要求 1.利用SN74HC573对STC12C5A16S2单片机的P0进行扩展,驱动LED 控制输出; 2.编写程序,使P0.0~P0.7上的发光二极管循环点亮;P2.7控制 SN74HC573芯片的使能; 三、电路

单片机实验报告 二

单片机实验报告二 班级:信息工程(微波通信方向) 姓名:肖丽学号:1195111040 时间:2013.10.29地点:工学院单片机实验室 实验题目:第三章课后习题练习 一、实验目的 1. 掌握Keil集成开发环境基本使用方法; 2. 掌握学林51mini仿真器和下载(编程)器的基本使用方法。 二、实验主要仪器及环境: 硬件:学林51mini仿真器和下载(编程)器 软件:Keil Vision2、XLISP 三、实验内容 P85.6、8、P77有关的极值排序的程序 四、实验步骤 1.将P85.6修改存到自己的文件内,用软件仿真。 2.编写P85.8的程序,然后存到自己的文件里,用软件仿真。 3.编写P77有关的极值排序的程序,然后存到自己的文件里,用软件仿真。 五、实验流程框图、实验程序 P85.6已知程序执行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后, A=(80H);SP=(42H);(41H)=(50H);(42H)=(80H);PC=(001EH)。ORG 0000H MOV A,#02H MOV SP,#42H MOV 41H,#0FFH MOV 41H,#0FFH POP DPH POP DPL MOV DPTR,#3000H RL A MOV B,A MOVC A,@A+DPTR PUSH ACC MOV A,B INC A

MOVC A,@A+DPTR PUSH ACC SJMP $ ORG 3000H DB 10H,80H,30H,80H,50H,80H END P85.8试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数。并将查找到的结果存入41H单元。 ORG 0000H START: MOV 41H,#00H MOV R0,#20H MOV R2,#21H LOOP: MOV A,@R0 JNZ NEXT INC 41H NEXT: INC R0 DJNZ R2,LOOP

C51单片机定时器及数码管控制实验报告

理工大学信息工程与自动化学院学生实验报告 (201 — 201学年第1 学期) 课程名称:单片机技术

一、实验目的 1.掌握定时器T0、T1 的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 2.掌握LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别是外部中断请求0、外部中断请求1、定时器/计数器0 溢出中断请求、定时器/计数器0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器TCON 和SCON 中。当中断源请求中断时,相应标志分别由TCON 和SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在

同一优先级别中,靠部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器IE、IP、TCON (用六位)和SCON(用二位),分别用于控制中断的类型、中断的开/关和各种中断源的优先级别。中断程序由中断控制程序(主程序)和中断服务程序两部分组成:1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过interrupt m 进行修饰。在C51 程序设计中,当函数定义时用了interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按MCS-51 系统中断的处理方式自动把它安排在程序存储器中的相应位置。 在该修饰符中,m 的取值为0~31,对应的中断情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 其它值预留。 89C51 单片机设置了两个可编程的16 位定时器T0 和T1,通过编程,可以设定为定时器和外部计数方式。T1 还可以作为其串行口的波特率发生器。

《过程控制系统》实验报告

《过程控制系统》实验报告 学院:电气学院 专业:自动化 班级:1505 姓名及学号:任杰311508070822 日期:2018.6.3

实验一、单容水箱特性测试 一、 实验目的 1. 掌握单容水箱阶跃响应测试方法,并记录相应液位的响应曲线。 2. 根据实验得到的液位阶跃响应曲线,用相关的方法确定被测对象的特征参数T 和传递函数。 二、 实验设备 1. THJ-FCS 型高级过程控制系统实验装置。 2. 计算机及相关软件。 3. 万用电表一只。 三、 实验原理 图1 单容水箱特性测试结构图 由图 2-1 可知,对象的被控制量为水箱的液位 h ,控制量(输入量)是流入水箱中的流量 Q 1,手动阀 V 1 和 V 2 的开度都为定值,Q 2 为水箱中流出的流量。根据物料平衡关系,在平衡状态时02010=-Q Q (式2-1),动态时,则有dt dV Q Q = -21,(式2-2)式中 V 为水箱的贮水容积,dt dV 为水贮存量的变化率,它与 h 的关

系为Adh dV =,即dt dh A dt dV =(式2-3),A 为水箱的底面积。把式(2-3)代入式(2-2)得dt dh A Q Q =-21(式2-4)基于S R h Q =2,S R 为阀2V 的液阻,(式2-4)可改写为dt dh A R h Q S =-1,1KQ h dt dh AR S =+或()()1s 1+=Ts K s Q H (式2-5)式中s AR T =它与水箱的底面积A 和2V 的S R 有关,(式2-5)为单容水箱的传递函数。若令()S R S Q 01=,常数=0R ,则式2-5可表示为()T S KR S R K S R T S T K S H 11/000+-=?+= 对上式取拉氏反变换得()()T t e KR t h /01--=(式2-6),当∞→t 时()0KR h =∞,因而有()0/R h K ∞==输出稳态值/阶跃输入,当T t =时,()() ()∞==-=-h KR e KR T h 632.0632.01010,式2-6表示一阶惯性响应曲线是一单调上升的指数函数如下图2-2所示 当由实验求得图 2-2 所示的阶跃响应曲线后,该曲线上升到稳态值的 63%所对应的时间,就是水箱的时间常数 T 。该时间常数 T 也可以通过 坐标原点对响应曲线作切线,切线与稳态值交点所对应的时间就是 时间常数 T ,由响应曲线求得 K 和 T 后,就能求得单容水箱的传递函 数如式(2-5)所示。 如果对象的阶跃响应曲线为图 2-3,则在此曲线的拐点 D 处作一切线,它与时间轴交于 B 点,与响应稳态值的渐近线交于 A 点。图中OB 即为对象的滞后时间

单片机实验报告

汇编语言程序设计 1)编译后,系统提示:目标越界,改为AJMP后编译通过,将ORG 07FFH 改为0800H, 系统提示:目标越界,这说明AJMP可以在2KB 范围内无条件转移。 2.改为LJMP编译通过,这说明LJMP可以在64KB 范围内无条件转移。 3.将LJMP LP1改为SJMP LP0,机器码为80FC,其中FC为偏移量,它是一个补码,01H~7FH说明向PC(增大√、减小)方向跳,80H~FFH说明向PC(增大、减小√)方向跳,这说明SJMP可以在当前PC值-128B~+127B 范围内无条件转移。 1、X、Y以补码的形式存放在20H、21H中,编写程序实现如下函数: 实验程序: MOV A,20H JZ ZREO JB ACC.7,NEG MOV 21H,#01H SJMP PEND ZREO:MOV 21H,A SJMP PEND NEG:MOV 21H,#0FFH PEND:SJMP$ END 结果记录: 1.将数89H存放于20H中,运行程序,观察到21H单元中的内容为FF; 2.将数05H存放于20H中,运行程序,观察到21H单元中的内容为01; 3.将数00H存放于20H中,运行程序,观察到21H单元中的内容为00; 2、将20H~27H中的压缩BCD码拆为两个单字节BCD码,存放在以2000H为首地址的外部RAM 中。 实验程序: MOV R0,#20H MOV R7,#08H MOV DPTR,#2000H LOOP:ACALL CZ INC R0

INC DPTR DJNZ R7,LOOP SJMP $ CZ:MOV A,@R0 SWAP A ANL A,#0FH MOVX @DPTR,A INC DPTR MOV A,@R0 ANL A,#0FH MOVX @DPTR,A RET END 结果记录: 20H 21H 22H 23H 24H 25H 26H 27H 87H 54H 36H 23 19H 43H 77H 69H 2000H 2002H2004H2006H2008H200AH200CH200EH 07H 04H 06H 03H 09H 03H 07H 09H 2001H 2003H2005H2007H2009H200BH200DH200FH 08H 05H 03H 02H 01H 04H 07H 06H 1、数在计算机中是以补码形式存放的,因此,判断数据的正负,往往采用判断第7 位,是0 则为正数,是1 则为正数 2、实验内容2中JZ ZREO 的机器码为600DH ,其中0DH 为偏移量,当前PC值0004 加上这个偏移量等于0011H ,这正是即将执行的程序的首地址,即标号为ZREO 语句。程序计算器PC的功能是指向下一条指令,因此,跳转语句是依靠偏移量来改变程序计数器PC的值,从而改变程序的流向。 3、分支程序一定要注意分支的语句标号的正确性,每一分支之间必须用跳转(如SJMP)指令分隔,并跳转到相应标号。 4、子程序往往用间址寄存器传递数据,内部RAM用@Ri ,外部RAM用@DPTR ,绝对不能用直接地址。最后以RET 结尾。 5、循环程序往往用寄存器传递数据,用R7控制循环次数,用调用作为循环体,用指令INC 修改地址指针,用指令DJNZ 判断循环结束。 6、执行ACALL前(SP)= 07H ,执行ACALL时,(SP)= 09H ,(08H)= 09H ,(09H)= 00H ,(PC)= 000FH ,PC的值正是子程序的入口地址,而堆栈中这两个单元存放的是断点处PC的值;执行到RET后,(SP)= 07H , 原08H的值弹给(PC)7~0 ,原09H的值弹给(PC)15~8 ,因此,返回断点继续执行主程序。

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.doczj.com/doc/0517625884.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.doczj.com/doc/0517625884.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

单片机定时器实验报告

( 2009 —2010 学年第二学期) 课程名称:单片机开课实验室: 2010年 5月14日 一.实验目的: 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二.实验原理: MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。 定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。 定时器的编程包括: 1)置工作方式。 2)置计数初值。 3)中断设置。 4)启动定时器。 定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。 在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动

将程序计数器PC内容(即断点地址)压入堆栈保护(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH 和001BH。 中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。 因此,我们在编写中断服务程序时注意。 1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K 字节程序存储器的任何空间。 2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。 3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。 三.实验内容: 编写并调试一个程序,用AT89C51的T0工作方式1产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1;秒计数到60时,自动从0开始。实验电路原理如图1所示。 计算初值公式 定时模式1 th0=(216-定时时间) /256 tl0=(216-定时时间) mod 256

过程控制实验报告

东南大学自动化学院 实验报告 课程名称:过程控制实验 实验名称:水箱液位控制系统 院(系):自动化专业:自动化姓名:学号: 实验室:实验组别: 同组人员: 实验时间: 评定成绩:审阅教师:

目录 一、系统概论 (3) 二、对象的认识..................................... 错误!未定义书签。 三、执行机构 ....................................... 错误!未定义书签。 四、单回路调节系统................................ 错误!未定义书签。 五、串级调节系统Ⅰ................................ 错误!未定义书签。 六、串级调节系统Ⅱ................................ 错误!未定义书签。 七、前馈控制 ....................................... 错误!未定义书签。 八、软件平台的开发................................ 错误!未定义书签。

一、系统概论 实验设备 组成器件 图实验设备正面图图实验设备背面图 本实验设备包含水箱、加热器、变频器、泵、电动阀、电磁阀、进水阀、出水阀、增压器、流量计、压力传感器、温度传感器、操作面板等。 铭牌 ·加热控制器: 功率1500w,电源220V(单相输入) ·泵: Q40-150L/min,,,380V,VL450V, IP44,50Hz,2550rpm,,,,ICL B ·全自动微型家用增压器: 型号15WZ-10,单相电容运转马达 最高扬程10m,最大流量20L/min,级数2,转速2800rmp,电压220V, 电流,频率50Hz,电容μF,功率80w,绝缘等级 E ·LWY-C型涡轮流量计: 口径4-200mm,介质温度-20—+100℃,环境温度-20—+45℃,供电电源+24V, 标准信号输出4-20mA,负载0-750Ω,精确度±%Fs ±%Fs,外壳防护等级 IP65 ·压力传感器 YMC303P-1-A-3 RANGE 0-6kPa,OUT 4-20mADC,SUPPLY 24VDC,IP67,RED SUP+,BLUE OUT+/V-·SBWZ温度传感器 PT100 量程0-100℃,精度%Fs,输出4-20mADC,电源24VDC

实验报告(单片机实验报告)

1 双字节无符号数加法 例1: 双字节无符号数加法(R0 R1)+(R2 R3) → (R4 R5), R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节。已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h) 假设其和不超过16位。请编程。 org 0000h Ljmp start org 0050h start: mov R0,#93h mov R1, #79h mov R2,#25h mov R3, #0a4h mov A,R1 ADD A,R3 mov R5,A mov A,R0 ADDC A,R2 mov R4,A ss: jmp ss end 2双字节无符号数减法

例2: 双字节无符号数相减(R0 R1)-(R2 R3) → (R4 R5)。R0、 R2、R4存放16位数的高字节, R1、 R3、 R5存放低字节,已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h);请编程。同学自己可以设置被减数与减数数值 org 0000h Ljmp start org 0050h start: mov R0,#93h mov R1,#79h mov R2,#25h mov R3,#0a4h mov A,R1 CLR C SUBB A,R3 mov R5,A mov A,R0 SUBB A,R2 mov R4,A ss: jmp ss end 3双字节数乘以单字节数

例3: 利用单字节乘法指令,进行双字节数乘以单字节数运算。若被乘数为16位无符号数, 地址为M1(30H) 和M1+1(31H)(低位先、高位后), 乘数为8位无符号数, 地址为M2(32H), 积由高位到低位存入R2、 R3和R4三个寄存器中。 30H,31H,32H内容 12H,34H,56H ; org 0000h Ljmp start org 0050h start: mov 30h,#12h mov 31h,#34h mov 32h,#56h mov a,(30h) mov b,(32h) mul ab mov R3,b mov R4,a mov a,(31h) mov b,(32h) mul ab add A,R3 mov R3,A

相关主题
文本预览
相关文档 最新文档