找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3787|回复: 0
收起左侧

proteus双色点阵显示仿真及源程序

[复制链接]
ID:150456 发表于 2016-12-1 21:37 | 显示全部楼层 |阅读模式
proteus 双色点阵显示
QQ图片20161201213512.png

  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit ds2  =P3^5;
  5. sbit ds1  =P3^4;
  6. sbit e    =P3^3;
  7. sbit st_cp=P2^7;
  8. sbit sh_cp=P2^6;
  9. sbit k_y  =P3^2;
  10. sbit k_dw =P3^7;
  11. sbit k_up =P3^6;
  12. uint g,h,i,j,k,l,m;
  13. uint code display[]={

  14. 0x00,0x00,0x00,0x10,0x80,0x08,0x20,0x05,0x20,0x07,0xD0,0x0D,0x30,0x00,0x00,0x08,
  15. 0x80,0x08,0x20,0x05,0x10,0x07,0xF0,0x0C,0x10,0x18,0x00,0x10,0x00,0x10,0x00,0x00,/*"双",0*/
  16. /* (16 X 16 , 楷体 ) */
  17. 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x90,0x24,0x88,0x24,0xCE,0x43,0x6A,0x42,
  18. 0x58,0x42,0xC8,0x41,0x40,0x20,0x00,0x20,0x00,0x20,0x00,0x38,0x00,0x00,0x00,0x00,/*"色",1*/
  19. /* (16 X 16 , 楷体 ) */
  20. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  21. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  22. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  23. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  24. 0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x80,0x00,0x80,0x07,0x80,0x34,0xFC,0x04,
  25. 0x94,0x04,0x90,0x34,0x90,0x03,0x88,0x00,0x00,0x18,0x00,0x30,0x00,0x20,0x00,0x00,/*"点",2*/
  26. /* (16 X 16 , 楷体 ) */
  27. 0x00,0x00,0x00,0x00,0xF8,0x3F,0x08,0x00,0xF8,0x00,0x8C,0x00,0x10,0x05,0xD0,0x05,
  28. 0x30,0x05,0xDC,0x7F,0x90,0x04,0x88,0x04,0x88,0x04,0x00,0x04,0x00,0x00,0x00,0x00,/*"阵",3*/

  29. /* (16 X 16 , 楷体 ) */
  30. 0x00,0x00,0x80,0x00,0xC0,0x12,0xA0,0x13,0x98,0x0A,0x60,0x0A,0x00,0x02,0x20,0x01,
  31. 0x50,0x11,0xCC,0x34,0xF0,0x64,0x90,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,/*"终",4*/
  32. /* (16 X 16 , 楷体 ) */
  33. 0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x88,0x00,0x88,0x20,0x88,0x40,0xB8,0x60,
  34. 0xD8,0x3F,0x48,0x00,0x44,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,/*"于",5*/
  35. /* (16 X 16 , 楷体 ) */
  36. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  37. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  38. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  39. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  40. 0x00,0x00,0x00,0x20,0x00,0x10,0xC0,0x0F,0x40,0x02,0x40,0x12,0x42,0x3D,0x3E,0x02,
  41. 0xE0,0x10,0x20,0x0B,0x04,0x0C,0x80,0x13,0x00,0x20,0x00,0x40,0x00,0x70,0x00,0x00,/*"成",6*/
  42. /* (16 X 16 , 楷体 ) */
  43. 0x00,0x00,0x00,0x04,0x20,0x04,0x20,0x04,0xE0,0x03,0x20,0x22,0x10,0x12,0x40,0x09,
  44. 0x40,0x04,0xC0,0x03,0x7C,0x30,0x40,0x30,0x20,0x1E,0xE0,0x01,0x00,0x00,0x00,0x00,/*"功",7*/
  45. /* (16 X 16 , 楷体 ) */

  46. };

  47. void delay(uint d)
  48. {
  49.   while(d--);
  50. }

  51. void  hc_595(uchar dat1,uchar dat2)
  52. {
  53.    uchar i;
  54.    for(i=0;i<8;i++)
  55.      {
  56.        ds1=dat1&0x80;
  57.        ds2=dat2&0x80;
  58.        sh_cp=0;
  59.        sh_cp=1;
  60.        dat1<<=1;
  61.        dat2<<=1;
  62.      }       
  63. }

  64. void ps() interrupt 1
  65. {

  66. }

  67. main()
  68. {
  69. IE=0x8a;TMOD=0x11;
  70. m=sizeof(display)/2-128;
  71. while(1)
  72.   {
  73.    j=0;h=0;
  74.    for(l=0;l<142;l++)
  75.    {
  76.    for(k=0;k<10;k++)
  77.    for(i=0;i<32;i+=2)
  78.     {
  79.      g=i/2%2&&l%2;
  80.      hc_595(display[97+i+j+h]+0x80-0x80*g,0x80*g);
  81.      hc_595(display[96+i+j+h]+0x01-g,g);

  82.      hc_595(display[65+i+j+h]+0x80-0x80*g,0x80*g);
  83.      hc_595(display[64+i+j+h]+0x01-g,g);

  84.      hc_595(0x80-0x80*g,display[97+i-j+h]+0x80*g);
  85.      hc_595(0x01-g,display[96+i-j+h]+g);

  86.      hc_595(0x80-0x80*g,display[65+i-j+h]+0x80*g);
  87.      hc_595(0x01-g,display[64+i-j+h]+g);
  88.      st_cp=0;e=1;
  89.      st_cp=1;
  90.      P1=i/2;
  91.      e=0;
  92.     }
  93.    if      (l<32)         j+=2;
  94.    else if (l>37&&l<70)   j-=2;                 //0+31+5=36
  95.    else if (l==70)        h=192;
  96.    else if (l>70&&l<103)  j+=2;
  97.    else if (l>108)        j-=2;                 //71+31+5=107
  98.    }


  99.    
  100.   }
  101. }
复制代码
0.png

双色点阵64X16.rar

41.79 KB, 下载次数: 39, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表