标题: 74hc138和74hc595级联点亮16*16点阵 含仿真,单片机代码 [打印本页]

作者: mmmmxz    时间: 2019-4-30 20:12
标题: 74hc138和74hc595级联点亮16*16点阵 含仿真,单片机代码
这是我最近学习单片机做的一个电阵,
附件含有源代码和原理图,
亲测能用,适合新手观看,大佬勿喷,
(本人新手一个,此文件新手可用来参考)

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include"reg51.h"
  2. #include"intrins.h"

  3. sbit sh1=P2^0;               
  4. sbit st1=P2^1;
  5. sbit ser1=P2^2;


  6. unsigned char code lie[16]={0x08,0x88,0x48,0xc8,0x28,0xa8,0x68,0xe8,
  7.                        0x10,0x14,0x12,0x16,0x11,0x15,0x13,0x17,};/*点亮每一列*/

  8. unsigned char code shu[][16]={

  9. 0x00,0x00,0x00,0x00,0x00,0x10,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  10. 0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x0F,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00, /*1*/

  11. 0x00,0x00,0x00,0x00,0x18,0x04,0x04,0x84,0x44,0x24,0x18,0x00,0x00,0x00,0x00,0x00,
  12. 0x00,0x00,0x00,0x00,0x0C,0x0A,0x09,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00, /*2*/

  13. 0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0xF8,0x00,0x00,0x00,0x00,0x00,
  14. 0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x07,0x00,0x00,0x00,0x00,0x00, /*3*/};/*每一个字的数据*/


  15. void U1( unsigned char dat1, unsigned char dat2)
  16. {        int a;
  17.     unsigned char dat;
  18.         dat=dat1;                 /*送入第一个数据*/
  19.    sh1=0;                         /*让11脚拉低*/
  20.    for(a=0;a<8;a++)
  21.    {
  22.               ser1=dat>>7;        /*把一个字节的低七位移掉*/        
  23.            dat=dat<<=1;        /*右移一位*/
  24.            sh1=1;                /*在595芯片移位*/
  25.             _nop_();
  26.             _nop_();
  27.                 sh1=0;
  28.         }
  29.         dat=dat2;                /*送入第二个数据*/
  30.         sh1=0;
  31.    for(a=0;a<8;a++)
  32.    {
  33.               ser1=dat>>7;
  34.            dat=dat<<=1;
  35.            sh1=1;
  36.             _nop_();
  37.             _nop_();
  38.                 sh1=0;
  39.         }
  40.         }

  41. void out595()         /*595输出*/
  42. {
  43.     st1=0;
  44.          _nop_();
  45.          _nop_();
  46.         st1=1;
  47.          _nop_();
  48.           _nop_();
  49.           st1=0;
  50. }

  51. void main()
  52. {
  53. int i,j,y;
  54. while(1)
  55. {
  56. for(i=0;i<5;i=i+2)
  57. {
  58.   y=50;             /*显示的时间*/
  59.   while(y--)
  60.   {
  61.    for(j=0;j<16;j++)
  62.    {

  63.     U1(shu[i+1][j],shu[i][j]);        /*具体看595级联的用法*/
  64.     P1=lie[j];
  65.     out595();
  66.   }
  67.   P1=0xff;           /*消隐*/
  68.   }
  69.   }

  70. }
  71. }
复制代码

全部资料51hei下载地址:
138和595.zip (53.06 KB, 下载次数: 52)

作者: ssk7793    时间: 2019-5-1 12:32
只是切换显示,没有移动代码
作者: 彭家小将    时间: 2019-6-22 01:55
原理图呢,下载后没有仿真图
作者: 1847218429    时间: 2019-6-22 11:53
没有仿真电路吗  ?
作者: 民政丶达康    时间: 2019-11-4 16:04
感谢楼主分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1