久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

我想讓單片機數碼管顯示12位電話號碼有沒有什么比較簡單的方法。郭天祥的tx1c板子。

[復制鏈接]
跳轉到指定樓層
樓主
ID:632567 發表于 2019-11-8 21:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit wela=P2^7;
sbit dula=P2^6;
void delay(uint);
uchar num;
/*uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
1111 1110=0xfe 1
1111 1101=0xfd 2
1111 1011=0xfb 3
1111 0111=0xf7 4
1110 1111=0xef 5
1101 1111=0xdf 6
1011 1111=0xbf 7*/
                                                                    

void main()
{          
  dula=0;
  wela=0;      
  num=0xfe;
  while(1)
  {
          dula=1;
        P0=0x06;
        dula=0;
        wela=1;
        P0=num;
        wela=0;                       
        delay(65000);//第一個數碼管顯1

        dula=1;
        P0=0x3f;         
        dula=0;
        wela=1;
        P0=0xfd;
        wela=0;               
        delay(65000);//第二個顯0

        dula=1;
        P0=0x6d;
        dula=0;
        wela=1;
        P0=0xfb;
        wela=0;
        delay(65000);// 第三個顯5

        dula=1;
        P0=0x07;
        dula=0;
        wela=1;
        P0=0xf7;
        wela=0;
        delay(65000); //第四個顯7

        dula=1;
        P0=0x5b;
        dula=0;
        wela=1;
        P0=0xef;
        wela=0;
        delay(65000);//第五個顯2

        dula=1;
        P0=0x06;
        dula=0;
        wela=1;
        P0=0xdf;
        wela=0;
        delay(65000);
                      //第六個顯1

        wela=1;
        dula=1;
        P0=0xff;
        wela=0;
        dula=0;//清零
       
        num=0xbf;
        if(num==0xbf)
        num=0xfe;
}
大概是這樣打出前六個在寫出后六個數字沒有規律 請各位老哥想想辦法

TX-1C型單片機開發板原理圖.pdf

1015.98 KB, 下載次數: 14

原理圖

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:123289 發表于 2019-11-9 08:49 | 只看該作者
1、先建立12個寄存器,用于存電話號碼。
2、每個數碼管,能根據各自的寄存器(12個之一),顯示數字。
3、將電話號碼存入12個寄存器中。
回復

使用道具 舉報

板凳
ID:213173 發表于 2019-11-9 10:54 | 只看該作者
手機只有11位號碼,加一個空位,6位移動循環顯示。
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit wela=P2^7;
  5. sbit dula=P2^6;

  6. uchar code welai[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
  7. uchar dis_buf[]={0x00,0x06,0x4f,0x3f,0x6d,0x06,0x6d,0x4f,0x7d,0x6f,0x4f,0x7d};//空,1,3,0,5,1,5,3,6,9,3,6

  8. void delay(uint z)
  9. {
  10.         uint i,j;
  11.         for(i=z;i>0;i--)
  12.                 for(j=125;j>0;j--);
  13. }

  14. void timing()
  15. {
  16.         static uint k=0;
  17.         uchar i,j;
  18.         k++;
  19.         if(k==500)
  20.         {
  21.                 k=0;
  22.                 j=dis_buf[0];
  23.                 for(i=0;i<11;i++)  
  24.                         dis_buf[i]=dis_buf[i+1];
  25.                 dis_buf[11]=j;
  26.         }
  27. }
  28. /********************************
  29.                 數碼管顯示程序
  30. ********************************/
  31. void display()
  32. {
  33.         static uchar i=0;                                //分時顯示變量
  34.         P0=0x00;           dula=1; dula=0;        //消隱
  35.         P0=welai[i];   wela=1; wela=0;        //送位碼
  36.         P0=dis_buf[i]; dula=1; dula=0;        //送段碼
  37.         i++;
  38.         i%=6;
  39. }                                                                    

  40. void main()
  41. {         

  42.         while(1)
  43.         {
  44.                 timing();
  45.                 display();
  46.                 delay(2);
  47.         }
  48. }
復制代碼
回復

使用道具 舉報

地板
ID:632567 發表于 2019-11-11 15:16 | 只看該作者
wulin 發表于 2019-11-9 10:54
手機只有11位號碼,加一個空位,6位移動循環顯示。

有點沒看明白這個程序的運行順序,他是先進入主函數然后運行timing里的函數然后在運行diplay中的再延時并循環嗎?
回復

使用道具 舉報

5#
ID:213173 發表于 2019-11-12 09:31 | 只看該作者
單片機在想peach 發表于 2019-11-11 15:16
有點沒看明白這個程序的運行順序,他是先進入主函數然后運行timing里的函數然后在運行diplay中的再延時并 ...

timing();每隔約1秒,顯存數組中12個成員循環移動一位。
diplay();每隔約2毫秒,數碼管顯示一位,12毫秒完成一輪動態顯示。只顯示顯存數組中前6位。
delay(2);使主循環 while(1)周期控制在約2毫秒范圍。
回復

使用道具 舉報

6#
ID:690948 發表于 2020-2-7 21:27 來自觸屏版 | 只看該作者
wulin 發表于 2019-11-9 10:54
手機只有11位號碼,加一個空位,6位移動循環顯示。

師傅,我研究了好久,還是沒研究出來,能講講程序中的static 嗎?沒明白的地方就是display里的static
回復

使用道具 舉報

7#
ID:213173 發表于 2020-2-8 05:39 | 只看該作者
34歲老學生 發表于 2020-2-7 21:27
師傅,我研究了好久,還是沒研究出來,能講講程序中的static 嗎?沒明白的地方就是display里的static

static 關鍵字含義是指定為靜態變量,分配在靜態變量區。與局部臨時變量的區別是使用后保存,不會銷毀。用在display()中的目的是計數,使主程序調用一次display()就按序點亮一位數碼管。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久一区二区三区 | 中文字幕精品一区二区三区精品 | 久久最新 | 久草视频网站 | 久久9热 | 亚洲一区二区三区四区在线观看 | 欧美视频在线看 | 久久噜噜噜精品国产亚洲综合 | 日韩精品一区二区三区在线观看 | 99视频在线免费观看 | 久久精品国产久精国产 | 国产高清精品一区 | 亚洲欧洲一区 | 精品一区二区三区四区在线 | 日韩中文字幕一区二区 | 97超碰成人| 成人免费xxxxx在线视频 | 日韩无| 国产高清精品在线 | 亚洲精品一区二区 | 成人av一区二区在线观看 | 国产三级 | 成人精品视频 | 国产日韩欧美91 | 久久久久国产 | 亚洲成人精选 | 国产精品日韩高清伦字幕搜索 | 国产福利在线视频 | 亚洲精品一区二区 | 欧美精品乱码久久久久久按摩 | 超碰在线人人干 | 免费的色网站 | h视频免费看 | 国产高清精品在线 | 91在线观看免费视频 | 欧美性受xxxx白人性爽 | 亚洲一区二区三区免费在线观看 | 久久精品高清视频 | 日日想夜夜操 | 国产欧美一区二区精品忘忧草 | 成人在线黄色 |