新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)C語言程序設(shè)計(jì)(6)

PIC單片機(jī)C語言程序設(shè)計(jì)(6)

作者: 時(shí)間:2013-02-05 來源:網(wǎng)絡(luò) 收藏

while(1)   // while 循環(huán)語句開始

  {

  while(x>0)

  {

  display(x); // 調(diào)顯示函數(shù)

  key_server(); // 調(diào)鍵值服務(wù)函數(shù)

  x--; // 分自減量(倒計(jì)時(shí))

  }

  if (x==0) // 如果X=0

  RA0=1; // RA0 賦值1(報(bào)警信號(hào))

  display_set(x); // 調(diào)鍵值顯示函數(shù)

  key_server(); // 調(diào)鍵值服務(wù)函數(shù)

  }

  }

  void key_server()// 鍵值服務(wù)程序開始

  {

  unsigned int value=0; // 給存儲(chǔ)顯示值賦0

  display_set(x); // 調(diào)鍵值顯示函數(shù)

  if( PORTA_4==0 ) // 如果RA4 為0

  {

  while(1)

  {

  x++; // 鍵值X 自增

  if(x>99) // 如果鍵值X>99

  x=0;   // 給X 賦值0

  display_set(x); // 調(diào)鍵值顯示函數(shù)

  delay_1m(); // 按鍵延時(shí),以便觀察

  if(PORTA_4==1) // 如果RA4 為高電平

  {

  sign_a=0; // 清零設(shè)定時(shí)間標(biāo)志位

  RA0=0; // 給RA0 賦值0

  break; // 跳出循環(huán)返回

  }

  }

  }

  }

  void display_set(unsigned int x)

  // 鍵值顯示函數(shù)開始

  {

  unsigned int d=20,unit_bit,ten_bit,unsigned char SEG7[10]={0xc0,0xf9,0xa4,

  0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

  unit_bit=x%10;

  // 這里的注釋與display 的函數(shù)相似

  ten_bit=x/10%10;

  while(d>0)

  {

  PORTA=0x1e;

  PORTB=SEG7[unit_bit];

  RA3=0; // 顯示個(gè)位

  delay(200);

  RA3=1;

  delay(2);

  PORTB=SEG7[ten_bit];

  RA2=0; // 顯示十位

  delay(200);

  RA2=1;

  delay(2);

  d--;

  }

  }

  void delay_1m()

  // 按鍵(圖6 的K1)延時(shí)函數(shù)開始

  {

  unsigned long int k; // 說明語句

  for(k=0;k4;k++) // for 語句

  {

  display_set(x); // 調(diào)用鍵值顯示函數(shù)

  }

  }

  說明: 上述C 程序經(jīng)picc 編譯后生成。hex,即可用PIC 單片機(jī)編程器將。hex 燒寫到pic16F84A芯片中,再按圖6 電路制成倒計(jì)時(shí)器,即可按需要使用。


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉