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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2250|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)電子時(shí)鐘程序 顯示函數(shù)部分看不懂

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
  1.     #include <reg51.h>
  2.     #define uchar unsigned char
  3.     #define uint unsigned int
  4.     uchar code Dsy_Code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  5.     sbit Key_Start = P2^2;
  6.     sbit Key_Power=P2^3;
  7.     sbit dp = P0^7;                                                                                                       //小數(shù)點(diǎn)
  8.     uchar num=0;  //定時(shí)器的計(jì)數(shù)
  9.     uchar count=0;//數(shù)碼管的計(jì)數(shù)
  10.     uchar Key_Num=0;//按鍵次數(shù)的計(jì)數(shù)
  11.     uchar Power_Num=0;
  12.     bit Key_State=1,Power_State=1;
  13.     void DelayMS(uint x){
  14.             uchar i;
  15.             while(x--)
  16.                     for(i=0;i<120;i++);
  17.     }
  18.     void Dsy(){  //顯示函數(shù)
  19.             P2=0xfd;
  20.             P0=Dsy_Code[num%10];
  21.             DelayMS(2);
  22.             P2=0xfe;
  23.             P0=Dsy_Code[num/10];
  24.             dp=1;
  25.             DelayMS(2);
  26.     }
  27.     void Timer()interrupt 1{  //定時(shí)器
  28.             TH0=(65536-50000)/256;  //50ms
  29.             TL0=(65536-50000)%256;
  30.             count++;
  31.             if(count==2){
  32.                     count=0;
  33.                     num++;
  34.                     if(num==100)
  35.                             num=0;
  36.             }
  37.     }
  38.     void Key_Handle(){//按鍵處理
  39.             if(Key_State==0){
  40.                     Key_Num=(Key_Num+1)%3;
  41.                     switch(Key_Num){
  42.                             case 1:IE=0x82;TR0=1;break;
  43.                             case 2:IE=0x00;TR0=0;break;
  44.                             case 0:IE=0x00;TR0=0;num=0;break;
  45.                     }
  46.             }
  47.     }
  48.     void main(){
  49.             TMOD=0x01;
  50.             TH0=(65536-50000)/256;  //10ms
  51.             TL0=(65536-50000)%256;
  52.             if(Power_State!=Key_Power){
  53.                     DelayMS(10);
  54.                     if(Power_State!=Key_Power){
  55.                             Power_Num++;
  56.                             if(Power_Num%2==1){
  57.                                     while(1){
  58.                                             if(Key_State!=Key_Start){
  59.                                             DelayMS(10);
  60.                                             Key_State=Key_Start;
  61.                                             Key_Handle();
  62.                                             }
  63.                                     Dsy();
  64.                                     }
  65.                             }
  66.                     }
  67.             }
  68.     }
復(fù)制代碼

原帖:http://m.raoushi.com/bbs/dpj-100200-1.html
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:59202 發(fā)表于 2023-6-5 18:39 | 只看該作者
void Dsy(){  //顯示函數(shù)
            P2=0xfd;
            P0=Dsy_Code[num%10];
            DelayMS(2);
            P2=0xfe;
            P0=Dsy_Code[num/10];
            dp=1;
            DelayMS(2);
    }
是這部分嗎
回復(fù)

使用道具 舉報(bào)

板凳
ID:213173 發(fā)表于 2023-6-5 20:13 | 只看該作者
樓主在論壇找個(gè)靠譜的程序?qū)W習(xí)。這個(gè)程序?qū)懙锰睿恢档醚芯俊?/td>
回復(fù)

使用道具 舉報(bào)

地板
ID:1082198 發(fā)表于 2023-6-5 21:56 | 只看該作者
xxxevery 發(fā)表于 2023-6-5 18:39
void Dsy(){  //顯示函數(shù)
            P2=0xfd;
            P0=Dsy_Code[num%10];

是的,這段看不懂
回復(fù)

使用道具 舉報(bào)

5#
ID:123289 發(fā)表于 2023-6-6 15:41 | 只看該作者
【P2=0xfd】要看硬件圖,估計(jì):是選擇哪個(gè)LED導(dǎo)通,且是0通1止。
【P0=Dsy_Code[num%10]】也要看硬件圖,估計(jì):是選擇LED上的段,決定哪些段亮。
回復(fù)

使用道具 舉報(bào)

6#
ID:584814 發(fā)表于 2023-6-6 18:29 | 只看該作者
void Dsy(){  //顯示函數(shù)
            P2=0xfd; //選擇個(gè)位顯示,某教程中的位拉
            P0=Dsy_Code[num%10]; //輸出個(gè)位數(shù)字,某教程中的段拉
            DelayMS(2);  //延時(shí)
            P2=0xfe;  //選擇十位顯示,某教程中的位拉
            P0=Dsy_Code[num/10];  //輸出十位數(shù)字,某教程中的段拉
            dp=1;   //這個(gè)是毛不好猜,要看電路
            DelayMS(2);  //延時(shí)
    }
回復(fù)

使用道具 舉報(bào)

7#
ID:712097 發(fā)表于 2023-6-6 18:47 | 只看該作者
這是一個(gè)數(shù)碼管顯示程序,P0口對(duì)應(yīng)8段數(shù)碼管段碼,P2口對(duì)應(yīng)數(shù)碼管位碼。
回復(fù)

使用道具 舉報(bào)

8#
ID:59202 發(fā)表于 2023-6-6 22:46 | 只看該作者
  
dp = 1 是顯示小數(shù)點(diǎn)。
段程序最難理解的應(yīng)該是 P0=Dsy_Code[num%10]和P0=Dsy_Code[num/10]。
Dsy_Code[]是一個(gè)存儲(chǔ)數(shù)字顯示碼的數(shù)組,Dsy_Code[0]對(duì)應(yīng)存儲(chǔ)的就是數(shù)字0的顯示碼,以此類推
num是要顯示的數(shù)字,舉個(gè)例子:num=25,那么25%10=5,就是個(gè)位上要顯示的數(shù)字,那么顯示碼就是Dsy_Code[5],
25/10=2,就是十位上要顯示的數(shù)字,那么顯示碼就是Dsy_Code[2]
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表