Download presentation
Presentation is loading. Please wait.
Published byJohan Tanuwidjaja Modified 5年之前
1
单片机原理及应用 实践部分 主讲人:刘 强 liuliu408@163.com 15928681548 58570305
四川工商学院单片机教学团队 单片机原理及应用 实践部分 主讲人:刘 强
2
编制程序将片内RAM的30H~3FH单元中的内容与片外RAM的2000H~200FH单元的内容相互交换?
ORG H SJMP START ORG H START: MOV R0, #30H MOV DPTR, #2000H MOV R2, #16 LOOP: MOVX XCH MOVX @DPTR, A INC R0 INC DPTR DJNZ R2, LOOP SJMP $ END 30H 31H 32H 3DH 3EH 3FH 16个 (源) 2000H 2001H 2002H (目的) 200DH 200EH 200FH 片内RAM 片外RAM 中转站A 片内ARM 片外ARM ① ② ③
3
unsigned char i=0, temp=0; unsigned char idata *pt1;
void main(void) { unsigned char i=0, temp=0; unsigned char idata *pt1; unsigned char xdata *pt2; pt1=0x20; pt2=0x2000; for(i=0;i<16;i++) temp=*pt2; *pt2=*pt1; *pt1=temp; pt1++; pt2++; } while(1); //待机、任务循环,等待中断请求等
4
unsigned char i=0, temp=0; unsigned char idata *pt1;
void main(void) { unsigned char i=0, temp=0; unsigned char idata *pt1; unsigned char xdata *pt2; pt1=0x20; pt2=0x2000; for(i=0;i<16;i++) temp=*(pt2+i); *(pt2+i)=*(pt1+i); *(pt1+i)=temp; } while(1); //待机、任务循环,等待中断请求等
5
#include <absacc.h> //将绝对地址头文件包含在文件中 void main(void) {
unsigned char i=0, temp=0; for(i=0;i<16;i++) temp=XBYTE[0X2000+i]; XBYTE[0X2000+i]=DBYTE[0X30+i]; DBYTE[0X30+i]=temp; } while(1); //待机、任务循环,等待中断请求等 例1:绝对地址对存储单元的访问 #include <absacc.h> //将绝对地址头文件包含在文件中 typedef unsigned char u8; typedef unsigned int u16; void main(void) { u8 var1; u16 var2; var1=DBYTE[0x50]; var2=XWORD[0x2000]; DBYTE[0x30]=0X55; XBYTE[0x0020]=0X66; DWORD[0x40]=0X1234; XWORD[0x1000]=0X1234; while(1); }
6
(30H)=X7X6X5X4X3X2X1X0 (31H)=Y7Y6Y5Y4Y3Y2Y1Y0
1: 设在30H和31H单元中各有一个8位数据,已知数据如下: (30H)=X7X6X5X4X3X2X1X0 (31H)=Y7Y6Y5Y4Y3Y2Y1Y0 现在要从30H单元中取出低5位,并从31H单元中取出低3位完成拼装,拼装结果送40H单元保存,并且规定:(40H)=Y2Y1Y0X4X3X2X1X0。 2:设片内RAM的20H单元的内容为: (20H)= X7X6X5X4X3X2X1X0 用汇编语言编程把该单元内容反序后放回20H单元,即为: (20H)= X0X1X2X3X4X5X6X7。 3: 编制程序将片内RAM的30H~3FH单元中的内容传送至片外RAM的2000H~200FH单元中。 4: 编制程序将片内RAM的30H~3FH单元中的内容与片外RAM的2000H~200FH单元的内容相互交换? 5: 设片内RAM 20H,21H单元中存放两个无符号数,试比较两数的大小,较大的数 存入30H单元,较小的数存入31H单元。 6:从片外RAM中30H单元开始有32个数据,统 计当中正数、0、和负数的个数,分别放于R5、R6、R7中。 7: 设片内RAM 20H,21H,22H单元中存放3个无符号数,试比较3数的大小,将较大的数存入30H单元。
7
Thank You ! Question & Answer 任何建议和疑问,请不要犹豫! liuqiang@stbu.edu.cn
常用码制、 正数表示方法、 正数码制转换、 负数表示方法、 负数补码的计算 定点数表示、 浮点数表示 Question & Answer 任何建议和疑问,请不要犹豫!
Similar presentations