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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2497|回復: 6
收起左側

單片機數碼管滾動,找不清位選和輸出數碼管的關系,求個程序思路

[復制鏈接]
ID:474216 發表于 2019-5-14 08:39 | 顯示全部樓層 |閱讀模式
20黑幣
用51讓8位數碼管滾動顯示0~f,初始顯示0~7,依次左移,
用到38譯碼器來位選,我找不清位選和輸出數碼管的關系。。。卡了一天了
求大佬給個思路,

最佳答案

查看完整內容

給你一個示例程序,0~F循環左移。
回復

使用道具 舉報

ID:213173 發表于 2019-5-14 08:39 | 顯示全部樓層
給你一個示例程序,0~F循環左移。
無標題.jpg

  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int

  4. sbit led138c=P2^4;        //38譯碼器位選
  5. sbit led138b=P2^3;         //38譯碼器位選
  6. sbit led138a=P2^2;        //38譯碼器位選

  7. uchar code table[]={        //共陰極數碼管段碼0~F數組
  8.         0x3f,0x06,0x5b,0x4f,
  9.         0x66,0x6d,0x7d,0x07,
  10.         0x7f,0x6f,0x77,0x7c,
  11.         0x39,0x5e,0x79,0x71};

  12. uchar data dis_buf[9];//顯示緩存
  13. /********************************
  14.                         ms延時程序
  15. ********************************/
  16. void delayms(uint k)       
  17. {
  18.         uint i,j;
  19.         for(i=k;i>0;i--)
  20.                 for(j=110;j>0;j--);
  21. }
  22. /********************************
  23.                         移位程序
  24. ********************************/
  25. void shift()
  26. {
  27.         static uint count=0;
  28.         static j=8;
  29.         uchar i;

  30.         if(++count>=500)//移動速度:計數0.5秒
  31.         {                       
  32.                 count=0;       
  33.                 dis_buf[8]=table[j]; //顯示緩存第9位賦值
  34.                 for(i=0;i<8;i++)                //顯示緩存循序移位
  35.                 {
  36.                         dis_buf[i]=dis_buf[i+1];
  37.                 }
  38.                 j++;
  39.                 if(j>15)
  40.                         j=0;
  41.         }
  42. }
  43. /********************************
  44.                 數碼管顯示程序
  45. ********************************/
  46. void display()
  47. {
  48.         static uchar i=0;
  49.         P0=0x00;        //消隱
  50.         switch(i)
  51.         {
  52.                 case 0:led138a=0;led138b=0;led138c=0;break;               
  53.                 case 1:led138a=1;led138b=0;led138c=0;break;       
  54.                 case 2:led138a=0;led138b=1;led138c=0;break;       
  55.                 case 3:led138a=1;led138b=1;led138c=0;break;       
  56.                 case 4:led138a=0;led138b=0;led138c=1;break;       
  57.                 case 5:led138a=1;led138b=0;led138c=1;break;
  58.                 case 6:led138a=0;led138b=1;led138c=1;break;       
  59.                 case 7:led138a=1;led138b=1;led138c=1;break;       
  60.         }
  61.         P0=dis_buf[i];
  62.         i++;
  63.         i%=8;
  64. }
  65. /********************************
  66.                      主程序
  67. ********************************/
  68. void main()
  69. {
  70.         uchar i;
  71.         for(i=0;i<8;i++)//緩存載入初始值
  72.         {
  73.                 dis_buf[i]=table[i];
  74.         }
  75.         while(1)
  76.         {
  77.                 shift();
  78.                 display();
  79.                 delayms(1);
  80.         }
  81. }

復制代碼




回復

使用道具 舉報

ID:370657 發表于 2019-5-14 10:43 | 顯示全部樓層
數碼管的位選是控制8個數碼管亮滅的。段選是控制一個數碼管內部顯示什么數字的。你對應38譯碼器的真值表,應該可以實現數碼管滾動顯示。
回復

使用道具 舉報

ID:158375 發表于 2019-5-14 13:01 | 顯示全部樓層
弄個顯示緩沖區,數碼管就顯示"顯示緩沖區數據".
隔一定時間改變顯示緩沖區數據,就實現了數碼管顯示數字的滾動.
回復

使用道具 舉報

ID:474216 發表于 2019-5-14 14:25 | 顯示全部樓層
懶懶的627 發表于 2019-5-14 10:43
數碼管的位選是控制8個數碼管亮滅的。段選是控制一個數碼管內部顯示什么數字的。你對應38譯碼器的真值表, ...

嗯,謝謝,您說的這些我了解,我卡在了位選和段選的關系上,C語言不過關。難受啊。。
回復

使用道具 舉報

ID:474216 發表于 2019-5-15 10:57 | 顯示全部樓層
wulin 發表于 2019-5-14 15:12
給你一個示例程序,0~F循環左移。

i%=8;。。。。。由衷感謝大佬幫我解惑!!!謝謝謝!!!
回復

使用道具 舉報

ID:474216 發表于 2019-5-15 10:59 | 顯示全部樓層
笨笨兔 發表于 2019-5-14 13:01
弄個顯示緩沖區,數碼管就顯示"顯示緩沖區數據".
隔一定時間改變顯示緩沖區數據,就實現了數碼管顯示數字的 ...

數據處理了后,達不到效果,哈哈哈,我太菜了C語言基礎沒打好,謝謝大佬的解答!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 凹凸日日摸日日碰夜夜 | 999久久久久久久久6666 | 欧美日韩高清在线一区 | 日日碰碰 | 精品一区二区三区免费毛片 | 久久久久久免费精品一区二区三区 | 成人亚洲| 亚洲综合精品 | www午夜视频 | 国产成人精品一区二区 | 亚洲免费视频播放 | 日本一区高清 | 久久99精品久久久久久 | av网站免费在线观看 | 精品美女 | 欧美色偷拍 | 亚洲午夜精品一区二区三区他趣 | 中文字幕国产一区 | 亚洲深夜福利 | 日韩av成人在线 | 中文字幕一区二区三区四区五区 | 日韩欧美手机在线 | 亚洲欧美在线观看 | 亚洲美女在线视频 | 国产精品亚洲欧美日韩一区在线 | 亚洲第一视频网 | 午夜成人免费电影 | 亚洲日韩中文字幕一区 | 日本亚洲欧美 | 亚洲在线免费观看 | 欧美h版 | 少妇一区二区三区 | 欧美视频一区二区三区 | 亚洲免费在线观看视频 | 日韩一区二区三区四区五区六区 | 欧美多人在线 | 古装三级在线播放 | 久久久久久看片 | 91人人看 | 国产高清视频在线观看 | 三级在线观看 |