欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)74HC595驅(qū)動

[復(fù)制鏈接]
ID:346927 發(fā)表于 2019-5-28 10:38 | 顯示全部樓層 |閱讀模式
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define nop() _nop_()
  6. uchar t0;
  7. uchar code SEG_DAT[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  8. uchar code BIT_CS[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};  

  9. sbit SH_CP = P0^0;  //移位串行時鐘脈沖
  10. sbit DS    = P0^1;  //串行數(shù)據(jù)輸入
  11. sbit ST_CP = P0^2;  //數(shù)據(jù)并行輸出鎖存器控制脈沖  
  12. //串行輸入子程序  
  13. void Serial_Input_595(uchar dat)
  14. {  
  15. uchar i;
  16.                  
  17. for (i = 0; i < 8; i++)
  18.     {
  19.       if (dat&0x80) //發(fā)送高位
  20.   {
  21.    DS = 1;
  22.   }
  23.   else
  24.   {
  25.    DS = 0;
  26.   }
  27.   dat <<= 1; //次高位左移到高位
  28.   SH_CP = 0; //移位時鐘線拉低
  29.   nop();
  30.   nop();   
  31.   SH_CP = 1; //DS位上的0或1在移位脈沖上升沿被移入595
  32.   nop();
  33.   nop();        
  34. }
  35. }
  36. //并行輸出子程序  
  37. void Parallel_Output_595()
  38. {  
  39. ST_CP = 0;
  40. nop();
  41. nop();   
  42. ST_CP = 1; //上升沿將數(shù)據(jù)送到輸出鎖存器
  43. nop();
  44. nop();
  45. }
  46. void display(uint count)
  47. {
  48. uchar i=0;
  49. uchar a[6];
  50. uchar temp;
  51. a[0]=0;
  52. a[1]=count/10000;
  53. a[2]=(count%10000)/1000;
  54. a[3]=(count%10000%1000)/100;
  55. a[4]=(count%10000%1000%100)/10;
  56. a[5]=count%10;
  57.   
  58. for(i = 0; i <= 5; i++)
  59. {
  60.   Serial_Input_595(BIT_CS[i]);
  61.   temp=a[i];
  62.   Serial_Input_595(SEG_DAT[temp]);  
  63.   Parallel_Output_595();
  64. }
  65. }
  66. void timer0_init(void)
  67. {
  68. TMOD=0x01;
  69. TH0=(65536-50000)/256;
  70. TL0=(65536-50000)%256;
  71. EA=1;
  72. ET0=1;
  73. TR0=1;
  74. }
  75. void timer0(void) interrupt 1
  76. {
  77. TH0=(65536-50000)/256;
  78. TL0=(65536-50000)%256;
  79. t0++;
  80. }
  81. void main(void)
  82. {
  83. uint i=0;
  84. timer0_init();
  85. while(1)
  86. {
  87.      
  88.   if(t0==5)
  89.   {
  90.     t0=0;
  91.     i++;
  92.    }
  93.   display(i);
  94.   if(i==65535) i=0;
  95. }
  96. }
復(fù)制代碼


proteus仿真圖

proteus仿真圖

74HC595.rar

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

回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2019-5-28 19:41 | 顯示全部樓層
本帖需要重新編輯補全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表