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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機一個8*8點陣數據如何滾動起來 一片595+一組IO

查看數: 1494 | 評論數: 2 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2022-2-3 07:12

正文摘要:

xianfajushi:51單片機一個8*8點陣數據如何滾動起來 一片595+一組IO [51單片機點陣逐行點亮595+IO組]2022-2-1 #include "REG52.h" sbit ds=P1^0; // 數據線  595的14腳 sbit shcp=P1^1; // 數 ...

回復

ID:301191 發表于 2024-1-9 00:46
頂一下
ID:997051 發表于 2022-2-5 19:57
xianfajushi:

精準到0.1秒的單片機秒表

sbit Qitin = P3^0; //啟停按鍵
sbit duan = P2^6; //數碼段
sbit wei = P2^7; //數碼位
unsigned char code ShuMaGuan[]={0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsigned char code WeiXuanBiao[]={0x00,0xfe,0xfd,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char Js=0; //中斷計時
unsigned char Hm=0; //毫秒
unsigned char Mo=0; //秒
void ShuMaXianShi(unsigned char d,unsigned char w)
{
        unsigned char YanShi=255;
        P0=WeiXuanBiao[w];
        wei=1;
        wei=0;
        P0=ShuMaGuan[d];
        duan=1;
        While(YanShi--);
        duan=0;
}
void ZhongDuanSheZhi()
{
        TH0+=0X4c; /*定時器賦初值, 定時50ms觸發中斷, 自動補償方式*/
        TL0+=0X00;
        TMOD=0X01;
        TR0=1;
        ET0=1; //開啟定時器
        EA=1; //全局中斷開關
}
void XianShi()
{
        ShuMaXianShi(Hm,3);
        ShuMaXianShi(Mo%10,2);
        ShuMaXianShi(Mo/10,1);
}
void main()
{
        ZhongDuanSheZhi();
        while(1)
        {
                XianShi()
                if(!QiTin)
                {
                        if(Js>=2)        TR0=!TR0;
                        while(!QiTin)    XianShi();
                }
        }
}
void ZhongDuan() interrupt 1
{
        ++Js;
        if(!(Js%2))
        if(++Hm>=10)
        Hm=0;
        if(Js>=20)
        {
                if(++Mo>=60)Mo=0;
                Js=0;
        }
        TH0+=0X4c;
        TL0+=0X00;
}
==========================================
void main()
{
        ZhongDuanSheZhi();
        {
                XianShi();
                if(!QiTin)
                {
                        //XianShi(/*巧借 8個數碼顯示消抖*/);
                        YanShi=Js;
                        if(TR0==0){TR0=!TR0;K=1;} //重啟中斷
                        while(Js==YanShi)XianShi(); //中斷消抖
                        if(!k)TR0=!TR0;else k=0; //關閉中斷, 消抖后清除標記
                        while(!QiTin)XianShi(/*按下期間顯示*/);
                }
        }
}
======================================
另說明代碼工程中的中斷內的這句YanShi=Js;要刪除掉,并修改  if(!k&&++Hm>=10) Hm=0;這句,包內忘記改了。

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

Powered by 單片機教程網

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