外部中断设计实验

外部中断设计实验

 

 

姓名:许瀚博

 

学号:20132100089

 

班级:嵌入式3

 

指导老师:谭琦

 

课程名称:单片机实验

 

时间:2015.12.5

 

 

 

 

 

 

 

一、  实验内容

     通过P1.0端口以1HZ的频率输出信号,使用该信号点亮一个LED指示灯,并将信号接入到INT1,统计中断的次数。将中断的次数通过两个七段数码管采用十进制显示出来。当超过99次后,清零并重新计数。

二、  实验目的

进一步掌握8051外部中断的使用和编程方法

了解七段数码显示数字的原理,掌握用一个段锁存器、一个位锁存器同时显示多位数字的技术

三、  实验设备

DELL台式机 + proteus版本6 + keilC51版本7

四、  实验电路图(可打印)

 

 

五、  程序流程图

 

 

六、程序源码(可打印)

#include<reg51.h>

sbit P1_0=P1^0;

//数码管显示

unsigned char numcode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

unsigned char num=0;

 

void int2() interrupt 2//中断控制,2号中断方式

{

num++;

if(num==100)//计数到100则归零

     num=0;

P0=numcode[num/10];//十位数

P2=numcode[num%10];//个位数

}

 

void main()

{

int i=0;

P0=numcode[0];

P2=numcode[0];

P1_0=0;

IT1=1;

EX1=1;

EA=1;

TH0=0x3c;

TL0=0xb0;

TMOD=0x01;

TR0=1;

while(1)

{

     if(TF0==1)

     {

         TL0=0xb0;//计数初值

         TH0=0x3c;

         TF0=0;

         i++;

         if(i==10)//进位

         {  

             P1_0=!P1_0;

             i=0;

         }

     }

}

}

posted @ 2015-12-22 13:25  hamburger  阅读(1370)  评论(0编辑  收藏  举报