微机原理实验报告一
- 格式:doc
- 大小:59.57 KB
- 文档页数:12
实验报告 一、实验目的 1. 熟悉80C51单片微机汇编语言设计及编程技巧。 2. 掌握逻辑运算程序的设计方法。 3. 掌握求最小数和最大数程序的设计方法。 4. 掌握多字节无符号十进制数加、减法程序的设计
二、实验器材 1. Micetek仿真器一台 2. 实验板一块 三、实验内容 1.逻辑运算: 根据下列逻辑运算式,编写程序计算运算结果。
Y=A⊕B•C • D+A 设: A=63H,B=82H,C=C5H,D=36H。 求Y=? 2. 求最小数和最大数: 10个无符号数连续存放在以20H为起始地址的RAM中,找出其中的最小值存入30H单元中,找出其中的最大值存入31H单元中。 3. 十进制加、减运算: 286729+652430-752196=? 在8051片内RAM的20H~22H中放入3字节被加数(低位在先)、23H~25H放入加数(低位在先)、26H~28H放入减数,结果存入2DH~2FH单元(低位在先)。
四、实验数据记录和分析 1.逻辑运算: A.实验程序: ORG 0000H AJMP fx ORG 0080H fx:MOV A,#63H MOV R0,#36H ORL A,R0 CPL A MOV R1,A MOV A,#82H MOV R0,#0C5H ANL A,R0 CPL A MOV R0,#63H XRL A,R0 CPL A ANL A,R1 End B.程序list文件 符号 值 类型 AC = 00D6H CONST 常量 ACC = 00E0H CONST 常量 B = 00F0H CONST 常量 CY = 00D7H CONST 常量 DPH = 0083H CONST 常量 DPL = 0082H CONST 常量 EA = 00AFH CONST 常量 ES = 00ACH CONST 常量 ET0 = 00A9H CONST 常量 ET1 = 00ABH CONST 常量 EX0 = 00A8H CONST 常量 EX1 = 00AAH CONST 常量 F0 = 00D5H CONST 常量 F1 = 00D1H CONST 常量 FX = 0080H CODE 标号 IE = 00A8H CONST 常量 IE0 = 0089H CONST 常量 IE1 = 008BH CONST 常量 IP = 00B8H CONST 常量 IT0 = 0088H CONST 常量 IT1 = 008AH CONST 常量 OV = 00D2H CONST 常量 P = 00D0H CONST 常量 P0 = 0080H CONST 常量 P1 = 0090H CONST 常量 P2 = 00A0H CONST 常量 P3 = 00B0H CONST 常量 PCON = 0087H CONST 常量 PS = 00BCH CONST 常量 PSW = 00D0H CONST 常量 PT0 = 00B9H CONST 常量 PT1 = 00BBH CONST 常量 PX0 = 00B8H CONST 常量 PX1 = 00BAH CONST 常量 RB8 = 009AH CONST 常量 REN = 009CH CONST 常量 RI = 0098H CONST 常量 RS0 = 00D3H CONST 常量 RS1 = 00D4H CONST 常量 SBUF = 0099H CONST 常量 SCON = 0098H CONST 常量 SM0 = 009FH CONST 常量 SM1 = 009EH CONST 常量 SM2 = 009DH CONST 常量 SP = 0081H CONST 常量 TB8 = 009BH CONST 常量 TCON = 0088H CONST 常量 TF0 = 008DH CONST 常量 TF1 = 008FH CONST 常量 TH0 = 008CH CONST 常量 TH1 = 008DH CONST 常量 TI = 0099H CONST 常量 TL0 = 008AH CONST 常量 TL1 = 008BH CONST 常量 TMOD = 0089H CONST 常量 TR0 = 008CH CONST 常量 TR1 = 008EH CONST 常量 公有符号: 57 私有符号: 0 C.实验思路: 1.将A值给累加器 2.将D值给R0 3.将A和D逻辑或,并把结果存入累加器A 4.A和D或以后取非 5.将A和D 取非以后的结果存到R1中 6.将B值给累加器A 7.将C值给R0 8.B与C逻辑与 9.取反 10.将A值存到R0中 11.最后将逻辑运算前后的两个逻辑与 2. 求最小数和最大数: A.实验程序: ORG 0000H AJMP MAIN ORG 0080H MAIN:MOV R0,#20H MOV A,@R0 MOV R7,#09H MOV R2,A MOV R3,A LOOP:INC R0 ACALL COMP DJNZ R7,LOOP AJMP DONE COMP:CLR C MOV A,@R0 SUBB A,R2 JC MIN MOV A,@R0 MOV R1,A MOV A,R3 SUBB A,R1 JC MAX RET MIN:MOV A,@R0 MOV R2,A RET MAX:MOV A,R1 MOV R3,A RET DONE:MOV 30H,R2 MOV 31H,R3 END B.实验生成list文件: 符号 值 类型 AC = 00D6H CONST 常量 ACC = 00E0H CONST 常量 B = 00F0H CONST 常量 COMP = 008EH CODE 标号 CY = 00D7H CONST 常量 DONE = 00A0H CODE 标号 DPH = 0083H CONST 常量 DPL = 0082H CONST 常量 EA = 00AFH CONST 常量 ES = 00ACH CONST 常量 ET0 = 00A9H CONST 常量 ET1 = 00ABH CONST 常量 EX0 = 00A8H CONST 常量 EX1 = 00AAH CONST 常量 F0 = 00D5H CONST 常量 F1 = 00D1H CONST 常量 IE = 00A8H CONST 常量 IE0 = 0089H CONST 常量 IE1 = 008BH CONST 常量 IP = 00B8H CONST 常量 IT0 = 0088H CONST 常量 IT1 = 008AH CONST 常量 LOOP = 0087H CODE 标号 MAIN = 0080H CODE 标号 MAX = 009DH CODE 标号 MIN = 009AH CODE 标号 OV = 00D2H CONST 常量 P = 00D0H CONST 常量 P0 = 0080H CONST 常量 P1 = 0090H CONST 常量 P2 = 00A0H CONST 常量 P3 = 00B0H CONST 常量 PCON = 0087H CONST 常量 PS = 00BCH CONST 常量 PSW = 00D0H CONST 常量 PT0 = 00B9H CONST 常量 PT1 = 00BBH CONST 常量 PX0 = 00B8H CONST 常量 PX1 = 00BAH CONST 常量 RB8 = 009AH CONST 常量 REN = 009CH CONST 常量 RI = 0098H CONST 常量 RS0 = 00D3H CONST 常量 RS1 = 00D4H CONST 常量 SBUF = 0099H CONST 常量 SCON = 0098H CONST 常量 SM0 = 009FH CONST 常量 SM1 = 009EH CONST 常量 SM2 = 009DH CONST 常量 SP = 0081H CONST 常量 TB8 = 009BH CONST 常量 TCON = 0088H CONST 常量 TF0 = 008DH CONST 常量 TF1 = 008FH CONST 常量 TH0 = 008CH CONST 常量 TH1 = 008DH CONST 常量 TI = 0099H CONST 常量 TL0 = 008AH CONST 常量 TL1 = 008BH CONST 常量 TMOD = 0089H CONST 常量 TR0 = 008CH CONST 常量 TR1 = 008EH CONST 常量 公有符号: 62 私有符号: 0 C.实验思路 1.将数据录入程序中,程序分主程序和子程序1.2 2.程序1寻找数据中得最小值 3.程序2寻找数据中的最大值 4将最大值和最小值放到制定的地址 5.在比较大小环节采用冒泡法。 C. 十进制加、减运算 A.实验程序: ORG 0000H AJMP MAIN ORG 0080H MAIN:MOV 20H,#09H MOV 21H,#60H MOV 22H,#04H MOV 23H,#8EH MOV 24H,#0F4H