新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 數碼管滾動顯示數字程序

        數碼管滾動顯示數字程序

        作者: 時間:2012-11-06 來源:網絡 收藏

        /************************************************
        跳線設置:默認
        顯示效果:012345 這幾個數字在51hei單片機板子的后6個
        ************************************************/
        #includereg52.h> //頭文件
        #includeintrins.h>
        #define uchar unsigned char
        uchar code table[]={0x3f,0x06,0x5b,//顯示的數值
        0x4f,0x66,0x6d,0x00,0x00,0x00,0x00,
        0x00,0x00,0x3f,0x06,0x5b,0x4f,0x66};
        sbit DUAN=P2^6; //74HC573的LE端 U1 LED的段選端
        sbit WEI=P2^7; //74HC573的LE端 U2 LED的位選端
        uchar flag; //定義標志位
        void main() //主函數
        {
        uchar i,j,k,h,cnt;//定義局部變量
        TH0=0XF7; //裝入初始值,時間約為2.5ms
        TL0=0X00;
        ET0=1; //開分控
        EA=1; //開總控
        TR0=1; //啟動定時器
        while(1)
        {
        j=cnt+6; //控制循環的數值
        for(k=0;k150;k++) // 延時
        {
        h=0xfb; //準備點亮
        for(i=cnt;ij;i++)
        {
        WEI=1; //讓位選的這個74hc573處于直通狀態,也就是輸入0,輸出也是0,輸入1輸出也是1
        P0=h; //點亮對應的數碼管
        WEI=0; //鎖存 也就是保持74hc573現在這個時刻的輸出狀態一直不變

        DUAN=1; //同上哦
        P0=table[i]; //顯示對應的數值
        DUAN=0;
        while(!flag); //延時2.5ms
        flag=0; //標志位清零,準備下次顯示
        DUAN=1;
        P0=0x00; //關閉數碼管,消隱
        DUAN=0;
        h=_crol_(h,1); //循環左移
        }
        }
        cnt++; //加1,確定哪些數值顯示
        if(cnt==12) //移位的次數
        cnt=0; //清零,準備下次顯示
        }
        }
        void time() interrupt 1 //定時器0
        {
        TH0=0XF7; //裝入初值
        TL0=0X00;
        flag=1; //標志位置1
        }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 万年县| 翁源县| 南雄市| 三江| 遵义县| 平乡县| 横峰县| 双柏县| 威信县| 称多县| 霍林郭勒市| 南充市| 米林县| 图木舒克市| 佳木斯市| 南丰县| 辉县市| 安庆市| 准格尔旗| 屏边| 凤冈县| 扎兰屯市| 张家川| 驻马店市| 阿荣旗| 金沙县| 绍兴县| 寻甸| 黑龙江省| 彰化市| 新乡市| 犍为县| 和林格尔县| 昭平县| 报价| 大丰市| 苏尼特左旗| 青阳县| 井研县| 灵宝市| 巩义市|