欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

在8個LED上依次顯示1~8數字

作者:佚名   來源:本站原創   點擊數:  更新時間:2008年07月08日   【字體:

#include "p18f458.h"

static volatile int table[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff};
volatile unsigned char data;

/*初始化子程序*/
//該程序用于在8個LED上依次顯示1~8
// http://www.raoushi.com 單片機網員工編寫此程序
//此程序為pic單片機設計
void initial()
{
 TRISA=0x00;     /*A口設置為輸出*/
 TRISC=0x00;     /*SDO引腳為輸出,SCK引腳為輸出*/
 INTCON=0x00;    /*關閉所有中斷*/
 SSPCON1=0x30;    /*SSPEN=1;CKP=1,FOSC/4*/
 SSPSTAT=0xC0;    /*時鐘下降沿發送數據*/
 PIR1=0;      /*清除SSPIF標志*/ 
}

/*顯示子程序*/
void SPILED(char data)
{
 PORTAbits.RA5=0;    /*LACK送低電平,為鎖存做準備*/
 SSPBUF=data;     /*啟動發送*/
 do
 {
 ;
 }while(PIR1bits.SSPIF==0);  /*等待發送完畢*/
 PIR1bits.SSPIF=0;    /*清除SSPIF標志*/
 PORTAbits.RA5=1;    /*最后給鎖存信號,代表顯示任務完成*/
}

/*主程序*/
main()
{
 unsigned  i;
 initial();      /*系統初始化*/
  for(i=8;i>0;i--)    /*連續發送8個數據*/
   {
  data=table[i];    /*通過數組的轉換獲得待顯示的段碼*/ 
  SPILED(data);    /*發送顯示段碼顯示*/  
   }
 for(;;)
 {
 }
}
 

關閉窗口