⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex4-7.c

📁 单片机应用的程序集,做项目的时候可以拿来用做参考资料
💻 C
字号:
/*
标题:范例 4-7
版本:1.0
Target:89S51
程序描述:这个范例说明如何使用按钮输入数据 */
/* ***************************************************** */
#include <REGX51.H>
#define  TIMER0_COUNT 0XEE11/*10000h-(12,000,000/(12*200))*/
#define  TRUE           1
#define  FALSE          0
#define  TIMES          25
code 
seven_seg[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,
0X90};
int            c,ups,downs;
//
// 函数 timer0_isr 检查是否有按键按下 
//
static void timer0_isr(void) interrupt TF0_VECTOR using 1
{
  TR0=0;
  TL0=(TIMER0_COUNT & 0x00FF);
  TH0=(TIMER0_COUNT >> 8);
  TR0=1;
  if (ups !=0) {                //检查ups等于0吗?
      ups--;                    //如果ups不等于0,就将ups减1
      if (ups==0 && P2_0==0) {  //如果ups减到0,就检查P2_0==0
           c++; // 如果P2_0是0就表示上数的弹跳按钮被按下,所以c加1
           if(c==10) c=0;       //如果c加到10,就将c恢复为0
      }
  } else if (P2_0==0) ups=TIMES;  //如果ups=0且P2_0=0就将ups设
                                    为25
  if (downs !=0) {                //检查downs等于0吗?
      downs--;              //如果downs不等于0,就将downs减1
      if (downs==0 && P2_1==0){ //如果downs 减到0,就检查P2_1=0
           c--;  // 如果P2_1是0就表示下数的弹跳按钮被按下,所以c减1
           if(c==-1) c=9;      //如果c减到-1时,就将c恢复为10
      }
  } else if (P2_1==0) downs=TIMES;  //如果downs=0且 P2_1 =0
                                      就将downs设为25
  P1=seven_seg[c];
}
static void timer0_initialize(void)
{
  EA=0;
  TR0=0;
  TMOD &= 0XF0;
  TMOD |=0x01;
  TL0=(TIMER0_COUNT & 0x00FF);
  TH0=(TIMER0_COUNT >> 8);
  PT0=0;
  ET0=1;
  TR0=1;
  EA=1;
}
void main (void)  
{
  c=0;
  ups=0;
  downs=0;
  timer0_initialize();
  P1=seven_seg[c];
  while(1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -