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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1307|回復: 0
打印 上一主題 下一主題
收起左側

單片機數碼管顯示程序

[復制鏈接]
跳轉到指定樓層
樓主
#include <reg52.h>

#define uchar unsigned char        //宏定義
#define uint  unsigned int         //宏定義
#define DELAY_TIME 2                 //將常量定義為宏,方便修改代碼
sbit we = P2^7;                                //數碼管位選鎖存器接口
sbit du = P2^6;                                //數碼管段選鎖存器接口
//數碼管段選表
uchar code leddata[]={
                0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F,  //"9"
                0x77,  //"A"
                0x7C,  //"B"
                0x39,  //"C"
                0x5E,  //"D"
                0x79,  //"E"
                0x71,  //"F"
                0x76,  //"H"
                0x38,  //"L"
                0x37,  //"n"
                0x3E,  //"u"
                0x73,  //"P"
                0x5C,  //"o"
                0x40,  //"-"
                0x00,  //熄滅
                0x00  //自定義
                          };
//毫秒級延時函數
void delay(uint z)
{
        uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0 ; y--);
}

void main()
{
                while(1)
                {

                        P0 = 0xfe;//1111 1110 第一位數碼管顯示,注意數碼管的排序,P0.0對應連接的是左邊第一位數碼管
                        we = 1;                //打開位選
                        we = 0;                //關閉位選

                        P0 = leddata[1];
                        du = 1;                //打開段選
                        du = 0;                //關閉段選
                        delay(DELAY_TIME);//延時

                        P0 = 0xfd;        //1111 1101 只選通第二位數碼管
                        we = 1;                //打開位選
                        we = 0;                //關閉位選

                        P0 = leddata[2]; //顯示2
                        du = 1;                        //打開段選
                        du = 0;                        //關閉段選
                        delay(DELAY_TIME);//延時

                        P0 = 0xfb;        // 1111 1011只選通第三位數碼管
                        we = 1;                //打開位選
                        we = 0;                //關閉位選

                        P0 = leddata[3];        //顯示3
                        du = 1;                                //打開段選
                        du = 0;                                //關閉段選
                        delay(DELAY_TIME);        //延時

                        P0 = 0xf7;        //1111 0111 只選通第四位數碼管
                        we = 1;                //打開位選
                        we = 0;                //關閉位選

                        P0 = leddata[4]; //顯示4
                        du = 1;                        //打開段選
                        du = 0;                        //關閉段選
                        delay(DELAY_TIME);//延時

                        P0 = 0xef;        //1110 1111 只選通第五位數碼管
                        we = 1;                //打開位選
                        we = 0;                //關閉位選

                        P0 = leddata[5]; //顯示5
                        du = 1;                        //打開段選
                        du = 0;                        //關閉段選
                        delay(DELAY_TIME);//延時

                        P0 = 0xdf;                //1101 1111 只選通第六位數碼管
                        we = 1;                        //打開位選
                        we = 0;                        //關閉位選

                        P0 = leddata[6];        //顯示6
                        du = 1;                                //打開段選
                        du = 0;                                //關閉段選
                        delay(DELAY_TIME);        //延時

                        we = 1;                        //打開位選
                        P0 = 0xbf;                //1011 1111 只選通第七位數碼管
                        we = 0;                        //關閉位選

                        P0 = leddata[7];        //顯示7
                        du = 1;                                //打開段選
                        du = 0;                                //關閉段選
                        delay(DELAY_TIME);        //延時

                        P0 = 0x7f;                        //0111 1111 只選通第八位數碼管
                        we = 1;                                //打開位選
                        we = 0;                                //關閉位選

                        P0 = leddata[8];        //顯示8
                        du = 1;                                //打開段選
                        du = 0;                                //關閉段選
                        delay(DELAY_TIME);        //延時        
                }
}


P@JH%QEX`~O%_YKNS}LVV6P.png (142.25 KB, 下載次數: 48)

數碼管原理圖

數碼管原理圖
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表