新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機SPI模塊+74LS164驅動數碼管

        單片機SPI模塊+74LS164驅動數碼管

        作者: 時間:2016-12-03 來源:網絡 收藏
        效果如下:循環右移再左移

        本文引用地址:http://www.104case.com/article/201612/325225.htm

        #include
        #ifndef _XTAL_FREQ
        #define _XTAL_FREQ 4000000
        #endif
        const unsigned char seg_comAnode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
        0x07,0x7f,0x6f};//共陽
        const unsigned char seg_comCathode[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,
        0x87,0xff,0xef}; //共陰
        /*同時發送和接收一個字節,74LS164吸電流大于拉電流,數碼管接成上拉形式*/
        unsigned char BUFF;
        void init(){
        TRISC=0B11010111;/*RC4/SDI引腳為輸出,RC5/SDO引腳為輸出,從模式RC3/SCK引腳為輸入*/
        SSPSTAT=0b00000000;/* 在結束時采樣,在上升沿數據移位*/
        SSPCON=0b00110010;/* SSPEN=1;CKP=1 , FOSC/64,*/
        TRISD=0X00;
        PORTD=0;
        }
        void In_74LS164(unsigned char datas){
        SSPBUF=datas;
        do
        {
        ;
        }while(SSPIF==0);/*等待發送完畢*/
        SSPIF=0;/*清除SSPIF標志*/
        //BUFF=SSPBUF;/*騰空緩沖器*/
        }
        void main()
        {unsigned char b,a,i,s=0;unsigned char m=0x01;
        init();
        while(1){

        for(i=0;i<4;i++)
        {
        PORTD=~(m<

        for(s=0;s<9;s++){

        In_74LS164( seg_comCathode[s]);
        __delay_ms(100);__delay_ms(100);
        }
        }

        for(i=1,a=m<<4;i<4;i++)
        {
        PORTD=~(a>>i);

        for(s=0;s<9;s++){

        In_74LS164( seg_comCathode[s]);
        __delay_ms(100);__delay_ms(100);
        }
        }
        }
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 滦平县| 万盛区| 玉溪市| 马公市| 黔西县| 保定市| 湖口县| 鄢陵县| 固始县| 慈利县| 孟津县| 浙江省| 通海县| 疏附县| 定结县| 师宗县| 清镇市| 巢湖市| 河曲县| 广河县| 乐至县| 锡林浩特市| 营口市| 贵阳市| 赤城县| 惠东县| 和平区| 湘阴县| 商洛市| 翁牛特旗| 滦南县| 萍乡市| 桃江县| 旅游| 虹口区| 临清市| 偃师市| 尤溪县| 喜德县| 定安县| 韶山市|