1 测试平台
硬件:Altare DE2 Development and Education Borad
软件:uVision2 V2.40a、Quartus II 5.1
2 测试内容
调试内存访问指令,由于没有外部内存,只测试了内部内存的读和写访问。访问内存需要包含头文件。
测试设计如下:
主程序的功能为循环读入程序存储区的前100字节,将指令显示到P2(七个LED灯)上。若外部中断0响应,则执行中断程序,功能是对数据存储区的前10个字节进行读写操作。为保证程序正常运行下去,对数据区进行写操作时需要先保存其内容,用以复原数据,具体做法为:先保存原有数据,写入新数据,再读出写入数据(显示在LED灯上),最后将原有数据写入存储区。
3 文件说明
\Memory\Memory.c c语言代码
\memory.hex 测试的HEX文件
4 测试结果
mc 8051程序存储区的读指令和数据存储区的读、写指令工作正常。
/*----------------------------------------------------------- /* Filename: Memory.c /* Description: Test Memory Access. /* Author: Long Hengyu /* Date: 11-07-2007 /*---------------------------------------------------------- #include <absacc.h> #include <REG51.H> #include <stdio.h>
main() { unsigned int pc; unsigned int i,j; EA = 1; // Set CPU status: interrupt enable EX0 = 1; // Set external interrupt 0 enable for(;;) { pc = 0x00; for(j=0;j<100;j++ ) { for(i=0;i<50000;i++); pc += 0x01; P2 = CBYTE[pc]; } } }
void EX0_int(void) interrupt 0 { unsigned int pc; unsigned int i,j; unsigned char temp; for(;;) { pc = 0x00; for(j=0;j<10;j++ ) { pc += 0x01; P2 = DBYTE[pc]; for(i=0;i<50000;i++); temp = DBYTE[pc]; DBYTE[pc] = 0x5a; P2 = DBYTE[pc]; for(i=0;i<50000;i++); DBYTE[pc] = temp; } return; } }
|
|
文件: |
02.rar |
大小: |
19KB |
下载: |
下载 | |
阅读(1817) | 评论(0) | 转发(0) |