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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

C51單片機+單個74HC595動態掃描4位數碼管(原理圖+實物制作+源碼)

  [復制鏈接]
跳轉到指定樓層
樓主
先上原理圖



根據原理圖焊好的板子
數碼管位用的是圓孔排插,方便更換數碼管

反面



開始測試
四位數碼管



四位時鐘數碼管



為了不占貼子長度, 源碼貼在二樓

C51 單個74HC595動態掃描4位數碼管.zip

23.76 KB, 下載次數: 166, 下載積分: 黑幣 -5

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:424598 發表于 2018-12-8 13:21 | 只看該作者
  1. /***********74HC595動態掃描4位數碼管************/
  2. //MCU:AT89S52RC
  3. //晶振:11.0592M.
  4. //采用4位數碼管
  5. /***************************************************/
  6. #include<reg51.h>
  7. #include <INTRINS.H>
  8. #define uint unsigned int
  9. #define uchar unsigned char
  10. #define nop() _nop_();_nop_();

  11. sbit CLK=P2^0; //74HC595的11引腳
  12. sbit DAT=P2^1; //74HC595的14引腳
  13. sbit RCLK=P2^2;        //74HC595的12引腳
  14. sbit CS1=P2^3; //數碼管段位COM1(公共端)即數碼管的12腳
  15. sbit CS2=P2^4; //數碼管段位COM2(公共端)即數碼管的9腳
  16. sbit CS3=P2^5; //數碼管段位COM3(公共端)即數碼管的8腳
  17. sbit CS4=P2^6; //數碼管段位COM4(公共端)即數碼管的6腳

  18. //本程序支持4位共陽和共陰數碼管(包插四位時鐘)可根據你的數碼管是共陰還是共陽,開啟下面匹配的tab[]
  19. //                 0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F   全亮 全滅
  20. //uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00,0xff}; //共陽數碼管 不顯示0xff 全亮0x00 只顯示點0x7f
  21. uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0xff,0x00}; //共陰數碼管 不顯示0x00 全亮0xff 只顯示點0x80
  22. uchar t;
  23. uchar count = 0;

  24. /* //延時函數
  25. void delay(uchar z)
  26. {
  27.         uchar x,y;
  28.         for(x=z;x>0;x--)
  29.                 for(y=120;y>0;y--);
  30. }
  31. */

  32. //寫數碼管函數
  33. void write595(unsigned char word,uchar k1)
  34. {
  35.         uchar num,c; //變量
  36.         if(k1==1){ //如果k1的值為1,則點亮時鐘數碼管的:點(如果是普通的四位數碼管,則點亮第二位的小數點)
  37.                 num=tab[word]|0x80; //關鍵就在|0x80
  38.         } else {
  39.                 num=tab[word];
  40.         }
  41.         //循環8個LED
  42.         for(c=0;c<8;c++)
  43.         {
  44.            CLK=0;
  45.            DAT=num&0x80;
  46.            num=num<<1;
  47.            CLK=1;
  48.         }
  49.         RCLK=0;
  50.         //nop();
  51.         //nop();
  52.         RCLK=1;
  53. }

  54. void select1(void)
  55. { //第一位數碼管
  56.         CS1=0;
  57.         CS2=1;
  58.         CS3=1;
  59.         CS4=1;
  60. }

  61. void select2(void)
  62. { //第二位數碼管
  63.         CS1=1;
  64.         CS2=0;
  65.         CS3=1;
  66.         CS4=1;
  67. }

  68. void select3(void)
  69. { //第三位數碼管
  70.         CS1=1;
  71.         CS2=1;
  72.         CS3=0;
  73.         CS4=1;
  74. }

  75. void select4(void)
  76. { //第四位數碼管
  77.         CS1=1;
  78.         CS2=1;
  79.         CS3=1;
  80.         CS4=0;
  81. }

  82. void init() //啟動定時器
  83. {
  84.     TMOD=0X01;
  85.     TH0=(65535-46080)/256;
  86.     TL0=(65535-46080)%256;
  87.     ET0=1;
  88.     EA=1;
  89.     TR0=1;
  90. }

  91. void T0_time() interrupt 1 //定時器
  92. {     
  93.         if (count == 20) {
  94.                 t++;
  95.                 count = 0;
  96.         } else {
  97.                 ++count;
  98.         }
  99. }

  100. int main(void) //主程序
  101. {   
  102. //unsigned char i;
  103.         init(); //啟動定時器
  104.         while(1)
  105.    { //無限循環
  106.            if(t>9) {t=0;} //當t>9,則初始為0
  107.            write595(t,0); //要寫的值
  108.            select1(); //顯示第一位數碼管  
  109.            //for(i=0;i<10;i++) _nop_();  
  110.            write595(t+1,1); //要寫的值
  111.            select2(); //顯示第二位數碼管
  112.            write595(t+2,0); //要寫的值
  113.            select3(); //顯示第三位數碼管
  114.            write595(t+3,0); //要寫的值
  115.            select4(); //顯示第四位數碼管
  116.    }
  117. }
復制代碼


回復

使用道具 舉報

板凳
ID:142652 發表于 2019-2-15 21:41 | 只看該作者
謝謝分享的資料
回復

使用道具 舉報

地板
ID:21568 發表于 2019-6-13 11:34 | 只看該作者
仿真后不成功,可能程序有問題請指導。
回復

使用道具 舉報

5#
ID:621733 發表于 2019-10-10 14:48 | 只看該作者
下載學習學習,謝謝
回復

使用道具 舉報

6#
ID:630309 發表于 2020-6-6 07:41 | 只看該作者
下載學習,謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级网站 | 久久91精品 | 99热在这里只有精品 | 免费人成在线观看网站 | 欧美啪啪 | 欧美久久不卡 | 成人av观看 | 69热视频在线观看 | 亚洲 精品 综合 精品 自拍 | a国产一区二区免费入口 | 成人精品一区 | 中文字幕亚洲视频 | 欧美h视频| 欧美三区视频 | 欧美久久久网站 | 欧美日韩国产中文 | 日韩视频专区 | 91麻豆精品国产91久久久久久久久 | japanhdxxxx裸体 | 国产成人精品一区二区三 | 国产一级视频在线播放 | 91在线观看 | 亚洲一区成人 | 密色视频| 天天躁日日躁狠狠躁2018小说 | 国产精品99久久久久久动医院 | 久久久成人一区二区免费影院 | 久久伊人精品 | 国产成人综合在线 | 久久久久久久香蕉 | 精品在线视频播放 | 国产1区2区在线观看 | 日韩欧美在线视频一区 | 精品在线一区二区三区 | 精品一区二区三区在线视频 | 国产精品91久久久久久 | 欧美aⅴ | 日韩成人精品一区 | 羞羞视频在线观看免费观看 | 久久久久久久久淑女av国产精品 | 久久久视频在线 |