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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機之三極管控數碼管源程序+電路-初學者

[復制鏈接]
跳轉到指定樓層
樓主
程序包含靜態顯示 和 計數  消隱問題都在程序中解決(本程序是用共陽數碼管)一原理圖
1.1數碼管引腳圖


2.2關于共陽與共陰的區別
  //共陽數碼管 段位全部接正極  段位數碼管 置零亮
2.3電路圖
程序使用的是共陽數碼管

二程序
主程序解釋:共陽數碼管,三極管控制,通過先關閉數碼管的位選,為什么要關閉位選呢?是因為要去消隱,因為數碼管利用的是余暉效應 他們并不是同時顯示的而是一個接著一個顯示的,
例如 你打開一個數碼管 延時1ms,人眼是看不到的,所以看的時候是同時顯示的。
2.1延時函數
使用的是0us,防止數碼管過快

2.2數碼管程序 圖上有解釋
2.3主程序 利用的是定時器,在后面有程序源碼。

單片機源程序如下:
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar code ddata[]={             //共陽數碼管 段位全部接正極  段位數碼管 置零亮  
  5.                                                 0xc0,//0                                
  6.                                                 0xf9,//1
  7.                                                 0xa4,//2
  8.                                                 0xb0,//3
  9.                                                 0x99,//4
  10.                                                 0x92,//5                  1001 0000
  11.                                                 0x82,//6
  12.                                                 0xf8,//7
  13.                                                 0x80,//8
  14.                                                 0x90,//9
  15.                                                 0x88,//A          10
  16.                                                 0x83,//b          11
  17.                                                 0xc6,//C          12
  18.                                                 0x86,//E        13
  19.                                                 0x9c,//F        14
  20.                                                 0x89,//H        15
  21.                                                 0xc7,//L        16
  22.                                                 0xab,//n        17
  23.                                                 0xe3,//u        18
  24.                                                 0x8c,//P        19
  25.                                                 0xbf,//-        20
  26.                                                 0xa3,//o        21
  27.                                                 0xff,
  28.                                                 0x00} ;
  29. uchar code wdata[]={          //位選 是讓第幾個數碼管亮 從左到右  
  30.                                                 0xfe,//0
  31.                                                 0xfd,//1
  32.                                                 0xfb,//2
  33.                                                 0xf7,//3                                       
  34.                                         };
  35. int a = 5210,count0;

  36.                                        
  37. void delay1(uint z)  //延時函數
  38. {
  39.         uint x,y;
  40.         for(x = z;x > 0;x --)
  41.                 for(y = 12;y > 0;y --);

  42. }
  43. void time_ds()  //定時器配置函數
  44. {
  45.         TMOD = 0x01; //0x89 只能字節 定時器0 16模式定時器
  46.         TH0 = 0x4b;//50ms
  47.         TL0 = 0xfe;
  48.         TR0 = 1;  //打開定時器
  49. }

  50. void delay(void)   //誤差 0us 數碼管延時專用
  51. {
  52.         unsigned char a,b,c;
  53.         for(c=1;c>0;c--)
  54.                         for(b=222;b>0;b--)
  55.                                 for(a=5;a>0;a--);
  56. }

  57. void display(int a) //數碼管顯示函數
  58. {
  59.            int g,s,b,q;  
  60.                         g = a % 10;    //取走形參的個位十位百位,千位
  61.                         s = a / 10 % 10;
  62.                         b = a / 100 % 10;
  63.                         q = a / 1000 % 10;
  64.         
  65.                         P2 = 0xff;  //關閉數碼管的位選 全部  防止產生重影
  66.                         P0 = ddata[g]; //為數碼管的段位賦值
  67.                         P2 = wdata[0];  // 接通數碼管的位選
  68.                         delay();  //延遲   延遲不要過大 防止重影
  69.         
  70.                         
  71.                         P2 = 0xff;
  72.                         P0 = ddata[s];
  73.                         P2 = wdata[1];
  74.                         delay();
  75.         

  76.                         P2 = 0xff;
  77.                         P0 = ddata[b];
  78.                         P2 = wdata[2];
  79.                         delay();

  80.                         P2 = 0xff;
  81.                         P0 = ddata[q];
  82.                         P2 = wdata[3];
  83.                         delay();



  84. }
  85. /*
  86.         共陽數碼管 ,三極管空  通過先關閉數碼管的位選
  87. 為什么要先關閉位選  ,是因為要去“消影”,因為數碼管利用余暉效應 他們并不是同時顯示的而是一個接著一個顯示的  
  88. 例如 你打開一個數碼管 延時1ms 人眼是看不到的 ,所以人看的時候是同時顯示的 。
  89.         不懂可以看        鎖存器控制 http://www.zg4o1577.cn/bbs/dpj-10971-1.html

  90. */
  91. void main()
  92. {
  93.         time_ds();
  94.         while(1)
  95.         {
  96.                 display(a);  //數碼管顯示函數
  97.         //        delay1(); //延遲 496+4 0.5秒
  98.                 if(TF0 ==1) // 溢出 則TF = 0
  99.                 {
  100.                         TF0 = 0;
  101.                         TH0 = (65535 - 46082)/256;        //50ms 兩種書寫方法 一種十六進制 一種這個
  102.                         TL0 = (65535 - 46082)%256;
  103.                         count0++;
  104.                 }
  105.                 if(count0 == 20) //溢出等于0  50*20一秒走一次
  106.                 {
  107.                         count0 = 0;
  108.                         a--;
  109.                 }
  110.                 if(a == 0)   //如果a減到0則 賦初值 5210
  111.                         a = 5210;
  112.         }
  113.         
  114. }
復制代碼

所有資料51hei提供下載:
數碼管.zip (45.08 KB, 下載次數: 19)



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:21104 發表于 2019-9-11 11:15 | 只看該作者
標記參考
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线看av网址 | 在线播放中文字幕 | 日韩国产在线观看 | 亚洲精品在线视频 | 欧美视频第三页 | 久久不卡日韩美女 | 中文字幕日韩欧美 | 国产永久免费 | 久久国产精品久久久久久 | 久久久久一区二区三区 | 精品美女久久久 | 一区二区三区四区av | 日韩欧美电影在线 | 精产国产伦理一二三区 | 精品中文字幕视频 | 在线观看www | 成人免费视频一区 | 国产精品成人在线观看 | 色免费看| 日韩一级二级片 | 欧美激情在线精品一区二区三区 | 国产精品美女www爽爽爽视频 | 欧美国产日韩精品 | 日韩有码一区 | 国产精品黄视频 | 国产一区二区三区 | 一区视频| 久久久久国产精品午夜一区 | 欧美成人精品在线 | 日韩视频精品在线 | 亚洲精品一区二区三区在线 | 美女一区 | 一区中文字幕 | 国产精品小视频在线观看 | 综合色播| 久久五月婷 | 精品日韩一区二区 | 男女网站免费观看 | 青青久在线视频 | 久久国产精品色av免费观看 | 97精品超碰一区二区三区 |