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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10600|回復: 1
打印 上一主題 下一主題
收起左側(cè)

單片機實驗 8位數(shù)碼管動態(tài)顯示實驗

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:146314 發(fā)表于 2016-11-5 21:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
內(nèi)容:要求在8位數(shù)碼管動態(tài)顯示0、1、2、3、4、5、6、7、
  1. #include "reg52.h"

  2. sbit EnWei                             =P2^7; //位碼鎖存器使能端
  3. sbit EnSeg                                =P2^6; //段碼鎖存器使能端

  4. #define DATAPORT                (P0)   //段/位碼輸出端口
  5. #define WEICODE                        (0x7f) //位碼初始值
  6. #define OFFCODE                        (0xff) //定義熄滅碼

  7. #define INCSPEED                (10) //顯示內(nèi)容變化速度

  8. unsigned char code SegTab[]={  //定義段碼表(共陰極)
  9.                         0x3f,0x06,0x5b,0x4f,
  10.                         0x66,0x6d,0x7d,0x07,
  11.                         0x7f,0x6f,0x77,0x7c,
  12.                         0x39,0x5e,0x79,0x71
  13. };

  14. unsigned char DispBuf[8]={ //定義顯示緩沖區(qū)
  15.                         0x00,0xff,0xff,0xff,
  16.                         0xff,0xff,0xff,0xff
  17. };

  18. //延時函數(shù)
  19. //x為延時時間,范圍1~65535
  20. void xDelay(unsigned int x)
  21. {
  22. unsigned char y;

  23. for(;x>0;x--)
  24.   for(y=110;y>0;y--);
  25. }

  26. //數(shù)值分離函數(shù),將要顯示的數(shù)各數(shù)值位分離到DispBuf數(shù)組中
  27. //x為要顯示的數(shù),范圍0~4294967295
  28. void GetDispBufValue(unsigned long x)
  29. {
  30. unsigned char Temp,i;

  31. i=0; //作為DispBuf數(shù)組的下標
  32. while(x>0)
  33.   {
  34.    Temp=x%10; //使x對10求余,取出最低位
  35.    x/=10;          //更改x的值,為下一輪作準備
  36.    DispBuf[i++]=Temp; //將取出的數(shù)值位存入顯示緩沖
  37.   }          
  38. while(i<8) //如果x不足8位,將其余的位填上熄滅碼
  39.   {
  40.    DispBuf[i++]=OFFCODE;
  41.   }
  42. }

  43. //顯示函數(shù)
  44. //x要顯示的值,范圍0~4294967295
  45. void Display(unsigned long x)
  46. {
  47. unsigned char WeiCode=WEICODE,i;

  48. GetDispBufValue(x); //先將顯示值的數(shù)值位分離出來
  49. for(i=0;i<8;i++) //循環(huán)刷新每一位數(shù)碼管
  50.   {
  51.    if(DispBuf[i]!=OFFCODE)
  52.     {
  53.          DATAPORT=SegTab[DispBuf[i]]; //輸出段碼并鎖存
  54.          EnSeg=1;
  55.          EnSeg=0;

  56.          DATAPORT=WeiCode;         //輸出位碼并鎖存
  57.          EnWei=1;
  58.          EnWei=0;
  59.         }
  60.    WeiCode>>=1;         //為下一位數(shù)值準備位碼
  61.    WeiCode|=0x80;
  62.    xDelay(5); //延時一會,使剛被點亮的位穩(wěn)定
  63.   }

  64. DATAPORT=0x00; //熄滅最后一位被點亮的數(shù)碼管
  65. EnSeg=1;
  66. EnSeg=0;
  67. }

  68. void main(void)
  69. {
  70. unsigned char IncSpeed=INCSPEED;
  71. unsigned long x=76543210;
  72. P2=0x00;

  73. while(1){
  74.   Display(x); //調(diào)用顯示函數(shù)

  75.   //if(--IncSpeed==0)        //減到0時,為顯示數(shù)值加1
  76.    //{
  77. //        IncSpeed=INCSPEED; //恢復初值,為下一輪作準備
  78.         //x++;  //顯示數(shù)值加1
  79.    //}
  80. }
  81. }
復制代碼


06實驗六 動態(tài)顯示.zip

20.78 KB, 下載次數(shù): 37, 下載積分: 黑幣 -5

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

相關帖子

回復

使用道具 舉報

沙發(fā)
ID:535271 發(fā)表于 2019-5-11 13:09 來自手機 | 只看該作者
有誰會動態(tài)顯示19-05-11
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区四区五区3d | 天天操夜夜艹 | 国产精品久久久久久久免费大片 | 久久精品国产亚洲一区二区三区 | 人人干人人干人人 | 香蕉久久久 | 喷潮网站| 欧美精品一二区 | 亚洲国产成人精品在线 | 黄色片a级 | 在线日韩视频 | 在线观看国产精品一区二区 | 天天操妹子 | 欧美激情一区二区三级高清视频 | 精品一区二区三区免费毛片 | 婷婷久久精品一区二区 | 久久久久久久久久久高潮一区二区 | 久亚州在线播放 | 91人人在线 | 成人免费视频在线观看 | 国产精品国产馆在线真实露脸 | 91av导航| 中文字幕国产一区 | 成人免费大片黄在线播放 | 成人免费视频网站 | 春色av| 最新中文字幕在线播放 | 福利片在线看 | 成人午夜免费网站 | 在线观看第一区 | 亚洲一一在线 | 中文字幕一区二区三区四区五区 | 视频在线亚洲 | 精品久久国产 | 久久99精品久久久久久秒播九色 | 波多野结衣一区二区三区在线观看 | 99re超碰| 久久88| 久久97精品| 久久久久久免费毛片精品 | 亚洲欧美一区二区三区在线 |