1、= 文件名称: 功能描述: BCD整数转换为二进制整数(8位, 范围从00H-FFH) ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV R0, #20H ;BCD存放高位地址 MOV R7, #03H ;BCD码0-255, 最多3位 CLR A MOV R4, ALP1: MOV A, R4 MOV B, #0AH MUL AB ;乘10 ADD A, R0 ;加下一位的值 INC R0 ;指向下一单元 MOV R4, A ;结果存入R4 DJNZ R7, LP1 ;转换未结束则继续 SJMP MAIN ;设置断点, 观察实验结果R4中的内容 END2. 将16
2、 位二进制整数存入R3R4 寄存器中,转换为十进制整数,以组合BCD 形式存储在RAM 的20H、21H、22H 单元中。= 二进制整数(16位)转换为十进制整数(组合BCD) 0-FFFFH(R3R4)=0-65535 MOV R0, #22H ;转换结果低位地址 MOV A, R0 PUSH ACC ;ACC表示累加器A的直接地址 MOV R7, #03H MOV R0, A ;结果存储地址清零 DEC R0 DJNZ R7, LP1 POP ACC MOV R0, A MOV R7, #16 LP2: PUSH ACC CLR C MOV A, R4 ;R4中为二进制数的低位 RLC A
3、 MOV A, R3 ;R3中为二进制数的高位 MOV R3, A MOV B, #03HLP3: MOV A, R0 ADDC A, R0 ;执行乘2操作 DA A ;十进制调整 MOV R0, A ;结果保存 DJNZ B, LP3 DJNZ R7, LP2 LJMP MAIN ;设置断点观察结果, 可进行下一次转换3. 通过查表的方法将16 进制数转换为ASCII 码; 查表程序设计, 将十六进制数0F通过查表的方法 转换为ASCII码 MOV DPTR, #ASCTAB ;表格首地址送DPTR MOV A, R7 ;R7中为待转换的数 ANL A, #0FH ;取低4位 MOVC A,
4、 A+DPTR ;查表 MOV R5, A ;低4位转换结果送R1 MOV A, R7 ANL A, #0F0H ;取待转换数的高4位 SWAP A ;高4位与低4位交换 MOV R6, A ;高4位转换结果送R2设置断点观察结果ASCTAB: DB 30H, 31H, 32H, 33H, 34H DB 35H, 36H, 37H, 38H, 39H DB 41H, 42H, 43H, 44H, 45H, 46H4. 通过查表的方法实现yx2,其中x为09 的十进制数,以BCD码表示,结果仍以BCD 码形式输出。 查表程序, 用程序实现Y=X*X, X为0到9的十进制数, 用BCD码(00H到
5、09H)表示, 将X的平方, 即Y也以BCD码 的形式保存到R1中. MOV DPTR, #SQR ;取表格首地址要计算的值 SJMP MAINSQR: DB 00H, 01H, 04H, 09H, 16H DB 25H, 36H, 49H, 64H, 81H实验二 片内I/O口及中断应用实验 了解P1 口作为输入输出方式使用时,CPU 对P1 口的操作方式。了解MCS-51 单片机的中断原理,掌握中断程序的设计方法。PC机一台,TD-NMC+教学实验系统,连接线若干按实验内容要求完成硬件连线;编写实验程序,经编译、链接无误后,启动调试功能;观察实验现象,并分析原因;按复位键退出调试状态。1.
6、 片内I/O口应用实验P1 口是8 位准双向口,每一位均可独立定义为输入输出。编写实验程序,将P1 口的低4 位定义为输出,高4 位定义为输入,数字量从P1 口的高4 位输入,从P1 口的低4 位输出控制发光二极管的亮灭。= 文件名: 功能说明: 数字量输入输出实验, P1口高4位输入, 低4位输出 LJMP STARTSTART: ORL P1, #0F0H ;P1口高四位为输入 MOV A, P1 ;读P1口的值A中高,低4位交换 MOV P1, A ;输出到P1口 SJMP START2. 片内中断系统实验 定时器中断单片机集成的定时器可以产生定时中断,利用定时器0 和定时器1,编写实验
7、程序在及 引脚上输出方波信号,通过示波器观察实验现象并测量波形周期。改变计数值,重新运行程序,反复验证程序功能。= 采用定时器的中断, 在与引脚上输出周期波形. ORG 0000H LJMP START ORG 000BH LJMP TIMER0 ORG 001BH LJMP TIMER1 ORG 0100H MOV P1, #0FFH MOV TH0, #0F8H ;初始化定时器0计数初值 MOV TL0, #00H MOV TH1, #0F8H ;初始化定时器1计数初值 MOV TL1, #00H MOV TMOD, #11H ;设置定时器工作模式为方式1 MOV TCON, #50H ;
8、启动定时器 MOV IE, #8AH ;使能中断 SJMP $TIMER0: CPL ;定时器0中断服务程序, 对引脚取反重新装入计数初值 RETI ;中断返回TIMER1:定时器1中断服务程序 MOV TH1, #0F8H RETI END 外部中断手动扩展外部中断INT0、INT1,当INT0 产生中断时,使LED8 亮8 灭闪烁4 次;当INT1 产生中断时,使LED 由右向左流水显示,一次亮两个,循环4 次。先按KK1,观察实验现象,然后按KK2,观察实验现象。51 单片机加入了中断系统,从而提高了CPU 对外部事件的处理能力和响应速度。增强型单片机SST89E554RC 共有8 个中断源,即外部中断0(INT0)、定时器0(T0)、外部中断1(INT1)、定时器1(T1)、串行中断(TI 和RI)、定时器2(T2)、PCA 中断和Brown-out 中断。= 外部中断INT0, INT1操作. 外部中断0: 使发光二极管闪烁4次. 外部中断1: 使发光二极管由右向左流水显示, 一次亮两个LED. ORG 0003H LJMP EINT0 ORG 0013H LJMP EINT1 MOV P1, #00H SETB IT0 ;定义外部中断0为边沿触发 SETB EX0 ;使能外部中断0 SETB IT1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1