Chinaunix首页 | 论坛 | 博客
  • 博客访问: 436242
  • 博文数量: 122
  • 博客积分: 3010
  • 博客等级: 中校
  • 技术积分: 1538
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-17 11:10
文章分类

全部博文(122)

文章存档

2011年(1)

2008年(86)

2007年(35)

我的朋友

分类:

2007-11-01 16:17:39

1         测试平台

       硬件:Altare DE2 Development and Education Borad

       软件:uVision2 V2.40aQuartus II 5.1

2         测试内容

原计划测试mc8051的所有中断源,但由于当前对其与普通8051的结构差异还不是很明确(还有一些未知用途的端口),所以测试了其外部中断源 /INT0 /INT1,以及它们的优先级设置。

测试设计如下:

P2作输出(P2连接至LEDR17~LEDR10),未有中断请求时,点亮的灯往左移位;当中断 /INT0发生时,灯往右移位;当中断 /INT1发生时,灯左右闪烁(即P2交替输出0x0F0xF0)。

3         文件说明

\Interrupt\ExtInterrupt\ExtInterrupt.c              c语言代码

\Interrupt\ EXinterrupt0.hex                           仅测试/INT0HEX文件

\Interrupt\ EXinterrupt1.hex                           仅测试/INT1HEX文件

\Interrupt\ EXPriority.hex                         测试两个中断源优先级的HEX文件

 

/*-------------------------------------------------------
/* Filename: ExtInterrupt.c
/* Description: Test the external interrupt 0.
/* Author: Long Hengyu
/* Date: 11-01-2007
/*-------------------------------------------------------


#include <REG51.H>
#include <stdio.h>

const char design[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

main()
{
    
    unsigned int i,j;
    //unsigned char shift;
    
    EA = 1;        // Set CPU status: interrupt enable
    EX0 = 1;    // Set external interrupt 0 enable
    EX1 = 1;    // set external interrupt 1 enable
    PX0 = 0;
    PX1 = 1;

    for( ; ; )
    {
        for(j=0; j<8 ; j++)
        {
            for(i=0; i<50000; i++);
            P2 = design[j]; // the turned-on led from right to left
        }
    }
}

void EX0_int(void) interrupt 0
{
    unsigned int i;
    int j;
    for( ; ; )
    {
        for(j=7; j>=0 ; j--)
        {
            for(i=0; i<50000; i++);
            P2 = design[j];            // the turned-on led from left to right
        }
        return;
    }
}

void EX1_int(void) interrupt 2
{
    unsigned int i;
    for( ; ; )
    {
            for(i=0; i<50000; i++);
            P2 = 0x0f;
            for(i=0; i<50000; i++);
            P2 = 0xf0;
            return;
    }
}

 

4         测试结果

mc 8051的两个外部中断源可以正确工作,并能按照设置的优先级进行中断抢占。

 

文件: 01.rar
大小: 20KB
下载: 下载

阅读(1447) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~