动态扫描~利用中断,定时器~

2019-07-16 04:01发布

刚学单片机没多久~学校学的是飞思卡尔~~最近自学了下51~~利用keil C 和proteus仿真~~~

参照各种参考书和书上的例子~~然后组合了一个动态扫描 12345和HELLO的程序~~不用中断和定时器的已经没啥问题了~~
昨晚临睡前想试一下综合一下顺便熟悉一下教材上的和教程上的各种东西~~于是在原有程序上删删改改组合成一下程序。。。很想知道中断和定时器是怎么应用的!!!!额额~~
经仿真发现只会在8和9之间不断跳变。。。。

额额,改了好多次。。貌似也不怎么成功~~最后还是把它稍微恢复一下~~希望能得到大家的知道~~先行谢过QQQ~~~!!!


#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char

sbit P1_7=P1^7;

void interrupt0() interrupt 0 using 2                         //中断
{
   uint flag=1;

}

void delay(uint x)                                           //延时函数
{
do{x--;}while(x>1);
}

void main()                                                                                          //主函数
{
uchar code num1[5]={0x06,0x5b,0x4f,0x66,0x6d};
uchar code num2[5]={0x76,0x79,0x06,0x06,0x3f};
uchar i;
uint flag=0;

P1_7=1;
TCON=0x01;
TMOD=0X02;
TL0=0xff;
TH0=0x06;
TR0=1;


EA=1;
IT0=1;
EX0=1;

do        {

if(flag==0){
P2=0x01;
for(i=0;i<5;i++)
  {
   P0=num1[i];
   delay(1500)        ;
   P2<<=1;
  }                        }
  
if(flag==1){
P2=0x01;
for(i=0;i<5;i++)
  {  
   P0=num2[i];
   delay(1500)        ;
   P2<<=1;
  }                    }
P1_7=~P1_7;
}while(!TF0);                                 


}                                  



未命名.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。