标题: proteus仿真单片机开发板 8*8点阵动态显示+源程序 [打印本页]

作者: 51黑ff    时间: 2016-9-9 23:41
标题: proteus仿真单片机开发板 8*8点阵动态显示+源程序
这个单片机驱动8*8点阵是基于一个proteus的仿真开发板做的.整个的仿真原理图如下:

用下面这个程序来运行仿真就可以得到效果.proteus仿真单片机开发板和源程序下载:
程序.zip (28.66 KB, 下载次数: 47)
仿真图.zip (77.53 KB, 下载次数: 67)


8*8点阵的动态显示程序:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. void delay_ms(uint);
  5. uchar code dz88_hang[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};        //行P1 需高电平
  6. uchar code dz88_lie[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};        //列P0 需低电平

  7. //uchar code dz88_dm[]={0x00,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0x00};   //N
  8. //uchar code dz88_dm1[]={0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,};  //1
  9. //uchar code dz88_dm1[]={0xFF,0x20,0x20,0x24,0x24,0x04,0x04,0xFF,};  //2
  10. //uchar code dz88_dm1[]={0xFF,0x3C,0x24,0x24,0x24,0x00,0x00,0xFF,};  //3
  11. //uchar code dz88_dm1[]={0xFF,0x07,0x07,0xE7,0x00,0x00,0xE7,0xE7,};  //4
  12. uint num1;//用来控制动态扫描的速度
  13. uint num2;//用来控制字符与字符切换速度
  14. uchar  i; //行控制数的变量
  15. uchar  j; //字符与字符切换的变量

  16. uchar code digittab[][8]={
  17. {0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,},//1
  18. {0xFF,0xBC,0x7A,0x76,0x6E,0x9E,0xFF,0xFF,},//2
  19. {0xFF,0xBD,0x7E,0x6E,0x56,0xB9,0xFF,0xFF,},//3
  20. {0xC7,0xB7,0x77,0xF7,0x00,0xF7,0xF7,0xF7,},//4
  21. {0xFF,0x0D,0x6E,0x6E,0x6E,0x6E,0x61,0xFF,},//5
  22. {0xFF,0xC7,0xD7,0xD7,0x00,0xD7,0xD7,0xC7,},//中
  23. {0x00,0x7E,0x54,0x40,0x54,0x50,0x7E,0x00,},//国
  24. {0xFD,0xFB,0xF7,0x0F,0xEF,0xF7,0xFB,0xFD,},//人
  25. };

  26. void main()
  27. {
  28.     j=0;
  29.         while(1)
  30.         {
  31.            //        for(j=0;j<4;j++)
  32.             if(j<8)
  33.                   {
  34.                           P1=dz88_hang[i];         //行扫描
  35.                           P0=digittab[j][i];
  36.                          
  37.                   }
  38.         //          num1++;                 //用于控制动态扫描的速度         5ms
  39.                   if(++num1>=50)
  40.                   {
  41.                           num1=0;          
  42.                          // i++;
  43.                           if(++i>=8)
  44.                       i=0;
  45.                   }
  46.                   // num2++;
  47.                   if(++num2>=10000)  //用于控制动字符间的切换速度  1s
  48.                   {
  49.                           num2=0;
  50.                          // j++;
  51.                           if(++j>8)
  52.                           j=0;
  53.                   }
  54.           }
  55. }

  56. /*
  57. //显示一个字母或者图形
  58. void main()
  59. {
  60. uchar i;

  61. while(1)
  62. {
  63.   for(i=0;i<8;i++)
  64.   {
  65.   P1=dz88_hang[i];        //行全部选中
  66.   //P0=dz88_dm[i];         //N
  67.   P0=dz88_dm1[i];         
  68.   delay_ms(5);
  69.   }
  70. }
  71. }
  72. */
  73. /* 全部列选中
  74. void main()
  75. {
  76. uchar i;
  77. P0=0X00;        //列全部选中
  78. while(1)
  79. {
  80. // P0=0X00;        //列全部选中
  81. // P1=0Xff;        //行全部选中
  82.   for(i=0;i<8;i++)
  83.   {
  84.   P1=dz88_hang[i];        //行全部选中
  85.   delay_ms(1000);
  86.   }
  87. }
  88. }
  89. */
  90. /*
  91. // 全部行选中
  92. void main()
  93. {
  94. uchar i;
  95. //P0=0X00;        //列全部选中
  96.   P1=0Xff;        //行全部选中
  97. while(1)
  98. {
  99. // P0=0X00;        //列全部选中
  100. // P1=0Xff;        //行全部选中
  101.   for(i=0;i<8;i++)
  102.   {
  103.   P0=dz88_lie[i];        //行全部选中
  104.   delay_ms(7);
  105.   }
  106. }
  107. }
  108. */
  109. /*
  110. void delay_ms(uint z)  //延时子程序
  111. {
  112.    uchar y;
  113.    uint x;
  114.    for(x=z;x>0;x--)
  115.            for(y=125;y>0;y--);
  116. }
  117. */
复制代码





作者: qq45386138    时间: 2017-3-22 18:13
谢谢楼主分享
作者: wkdsky    时间: 2017-5-27 09:53
好想下载  没币。。
作者: 王志恒    时间: 2017-7-31 14:28
好想下载 就是没有黑笔 怎么办

作者: 星星鹿    时间: 2018-4-6 22:30
有没有好用的字模软件推荐呀
作者: 君可为物亡乎    时间: 2018-4-11 21:12

好想下载  没币。。
作者: s6155555s    时间: 2018-4-22 10:46
很赞!!!!!!
作者: feiji666    时间: 2018-10-17 18:11
是整块实验板的图吗
作者: feiji666    时间: 2018-10-18 13:25
真的很有用




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