标题: 不按按键时时间正常走,只有你按按键时显示你的学号和51字样 [打印本页]

作者: xieyuanyuan    时间: 2016-12-28 20:40
标题: 不按按键时时间正常走,只有你按按键时显示你的学号和51字样
求求大家了!帮帮忙吧!很急真的很急

IMG_0749(20161228-232238).jpg (24.15 KB, 下载次数: 104)

IMG_0749(20161228-232238).jpg

作者: 张伟灵    时间: 2016-12-28 21:36
你编好你的学号和51字样进到外中断子程序里面,按下按键就触发中断了。
作者: xieyuanyuan    时间: 2016-12-28 21:59
张伟灵 发表于 2016-12-28 21:36
你编好你的学号和51字样进到外中断子程序里面,按下按键就触发中断了。

C:\Users\zy\Desktop\IMG_0694.JPG
作者: 张伟灵    时间: 2016-12-28 23:17
定时器1不是有个GATE吗?定时器1所有中断都置1,也要GATE=1。模式工作自己选择。当按键高电平(低电平的话,定时器1没反应)触发了定时器1开始计数,计数满就触发中断,就进到中断子程序了。
作者: xieyuanyuan    时间: 2016-12-28 23:27
张伟灵 发表于 2016-12-28 23:17
定时器1不是有个GATE吗?定时器1所有中断都置1,也要GATE=1。模式工作自己选择。当按键高电平(低电平的话 ...

你可以具体一点吗?定时器的这个 我不是很懂
作者: xieyuanyuan    时间: 2016-12-28 23:33
张伟灵 发表于 2016-12-28 23:17
定时器1不是有个GATE吗?定时器1所有中断都置1,也要GATE=1。模式工作自己选择。当按键高电平(低电平的话 ...


作者: 王朗的诱惑    时间: 2016-12-29 13:28

作者: 张伟灵    时间: 2016-12-30 12:35
本帖最后由 张伟灵 于 2016-12-30 13:02 编辑

#include<reg52.h>
sbit P3_3=P3^3;
void Delay10ms()
  {   
    unsigned char i,j;
i=20;
j=113;
do
{ while(--j); }
    while(--i);
   }

void main()
{
  P3_3=0;    //GATE=1时,外触发INT0和INT1要高电平触发
                  //注意:实验板按键都是接地,自己接个按键接5V。
  TMOD=0x80;   //GATE=1,TR1和外中断INT1共同控制,模式13位
  IE=0x88;  //EA=1,ET1=1
  TH1=(8192-1000)/256;  //12MHZ,设1MS触发外中断
  TL1=(8192-1000)%256;  //你也可以设10MS以下,最好不要超过按键抖动时间
  TR1=1;    //启动TR1中断,等待INT1触发
  while(1)
  {   
    /*你之前的程序*/
        P2=0x33;}//我用P2试验LED灯00110011成功
  }

void time1() interrupt 3
{
   TR1=0;                           //影响按键判断的中断关了
   TH1=(8192-1000)/256;    //12MHZ,重新装初值1MS
   TL1=(8192-1000)%256;
     Delay10ms();//用实验板做才有效果,按键有抖动,不好仿真
     if(P3_3==1)
       {/*你要显示的程序~~~ */
           P2=0xaa; //试验P2口LED10101010
           while(P3_3==1);}
     P2=0x0f;                   //试验P2口LED灯00001111
     TR1=1;   
  }  




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1