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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3878|回復(fù): 1
收起左側(cè)

C51單片機+單個74HC595動態(tài)掃描6位數(shù)碼管程序

[復(fù)制鏈接]
ID:424598 發(fā)表于 2018-12-9 18:48 | 顯示全部樓層 |閱讀模式
原理圖
74HC595 6位數(shù)碼管.png


6位時鐘數(shù)碼管說明.jpg


IMG_20181209_125600.jpg

C51 單個74HC595動態(tài)掃描6位數(shù)碼管.7z

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

評分

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

查看全部評分

回復(fù)

使用道具 舉報

ID:424598 發(fā)表于 2018-12-9 18:48 | 顯示全部樓層
  1. /***********74HC595動態(tài)掃描6位數(shù)碼管************/
  2. //MCU:AT89S52RC
  3. //晶振:11.0592M.
  4. //采用6位數(shù)碼管
  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; //數(shù)碼管段位COM1(公共端)即數(shù)碼管的1腳
  15. sbit CS2=P2^4; //數(shù)碼管段位COM2(公共端)即數(shù)碼管的2腳
  16. sbit CS3=P2^5; //數(shù)碼管段位COM3(公共端)即數(shù)碼管的3腳
  17. sbit CS4=P2^6; //數(shù)碼管段位COM4(公共端)即數(shù)碼管的4腳
  18. sbit CS5=P2^7; //數(shù)碼管段位COM5(公共端)即數(shù)碼管的5腳
  19. sbit CS6=P0^7; //數(shù)碼管段位COM6(公共端)即數(shù)碼管的6腳

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

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

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

  56. void select1(void)
  57. { //第一位數(shù)碼管
  58.         CS1=0;CS2=1;CS3=1;CS4=1;CS5=1;CS6=1;
  59. }

  60. void select2(void)
  61. { //第二位數(shù)碼管
  62.         CS1=1;CS2=0;CS3=1;CS4=1;CS5=1;CS6=1;
  63. }

  64. void select3(void)
  65. { //第三位數(shù)碼管
  66.         CS1=1;CS2=1;CS3=0;CS4=1;CS5=1;CS6=1;
  67. }

  68. void select4(void)
  69. { //第四位數(shù)碼管
  70.         CS1=1;CS2=1;CS3=1;CS4=0;CS5=1;CS6=1;
  71. }

  72. void select5(void)
  73. { //第五位數(shù)碼管
  74.         CS1=1;CS2=1;CS3=1;CS4=1;CS5=0;CS6=1;
  75. }

  76. void select6(void)
  77. { //第六位數(shù)碼管
  78.         CS1=1;CS2=1;CS3=1;CS4=1;CS5=1;CS6=0;
  79. }

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

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

  98. int main(void) //主程序
  99. {   
  100.         uchar i;
  101.         init(); //啟動定時器
  102.         while(1)
  103.    { //無限循環(huán)
  104.            if(t>5) {t=0;} //當t>5,則初始為0
  105.            write595(2,0); //要寫的值
  106.            select1(); //顯示第一位數(shù)碼管  
  107.            for(i=0;i<10;i++) _nop_();  
  108.            write595(3,1); //要寫的值
  109.            select2(); //顯示第二位數(shù)碼管
  110.            for(i=0;i<10;i++) _nop_();  
  111.            write595(5,0); //要寫的值
  112.            select3(); //顯示第三位數(shù)碼管
  113.            for(i=0;i<10;i++) _nop_();  
  114.            write595(6,1); //要寫的值
  115.            select4(); //顯示第四位數(shù)碼管
  116.            for(i=0;i<10;i++) _nop_();  
  117.            write595(5,0); //要寫的值
  118.            select5(); //顯示第五位數(shù)碼管
  119.            for(i=0;i<10;i++) _nop_();  
  120.            write595(t,0); //要寫的值
  121.            select6(); //顯示第六位數(shù)碼管
  122.            for(i=0;i<10;i++) _nop_();  
  123.    }
  124. }
復(fù)制代碼
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕不卡在线观看 | 久草视 | 国产精品毛片在线 | 精品国产乱码久久久久久蜜退臀 | 97国产精品视频人人做人人爱 | 欧美中文一区 | 精品久久久久久久久久 | 欧美一区二区三区 | 日本免费一区二区三区 | 中文字幕日韩欧美一区二区三区 | 国产精品视频网站 | 日韩中文一区二区三区 | 久久久久久九九九九 | 亚洲免费在线播放 | 超碰国产在线 | 亚洲成人精品久久久 | 欧美成年网站 | 91精品国产综合久久香蕉922 | 中文字幕视频一区二区 | 精品国产欧美一区二区 | 欧美淫| 91xxx在线观看 | av高清毛片 | 伊人春色在线观看 | 黄色一级视频免费 | 欧美bondage紧缚视频 | 伊人超碰在线 | 伊人网在线看 | 91久久精品国产91久久性色tv | 国产91丝袜在线播放 | 精品视频在线免费观看 | 国产精品日韩欧美一区二区三区 | 成人小视频在线观看 | 精品亚洲视频在线 | 中文字幕第90页 | 免费骚视频| 日韩成人在线免费视频 | 美女视频网站久久 | 日本淫视频 | 免费观看www7722午夜电影 | 天色综合网 |