标题: 51单片机控制16x16点阵程序 [打印本页]

作者: 51科技    时间: 2018-8-11 16:36
标题: 51单片机控制16x16点阵程序


单片机源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. sbit R=P2^0;
  4. sbit CLK=P2^1;
  5. sbit STB=P2^2;
  6.   code uchar a[]={0x20,0x08,0x20,0x10,0x20,0x10,0x25,0xFF,0x24,0x40,0x24,0x42,0x24,0x44,0x24,0x28,
  7. 0x24,0x28,0x24,0x10,0x24,0x10,0x24,0x28,0x20,0x24,0x20,0x42,0x28,0x41,0x10,0x00};
  8. code uchar b[]={0x20,0x80,0x21,0xE0,0x20,0x3E,0x24,0x20,0x24,0x20,0x24,0x20,0x25,0xFF,0x24,0x30,
  9. 0x24,0x68,0x24,0xA8,0x25,0x24,0x24,0x24,0x20,0x22,0x20,0x21,0x28,0x20,0x10,0x20};
  10. code uchar c[]={0x00,0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x7F,0x00,0x00,} ;

  11. code uchar d[]={0x66,0x66,0x99,0x99,0x81,0x81,0x81,0x81,0x42,0x42,0x24,0x24,0x18,0x18,0x00,0x00,
  12. 0x66,0x66,0x99,0x99,0x81,0x81,0x81,0x81,0x42,0x42,0x24,0x24,0x18,0x18,0x00,0x00};
  13. void delay(int z)
  14. {
  15. int x,y;
  16. for (x=0;x<z;x++)
  17. for(y=0;y<110;y++);
  18. }
  19. void WriteByte(uchar dat)
  20. {
  21.   uchar i;
  22.   for(i=0;i<8;i++)
  23.          {
  24.          dat=dat>>1;
  25.          R=CY;
  26.          CLK=0;
  27.          CLK=1;
  28.          }
  29. }
  30. void main()
  31. {
  32. int num,n=0,m=0,j;
  33. while(1)
  34. {

  35. for(j=20;j>0;j--)
  36. {
  37. for(num=0;num<16;num++)
  38. {
  39. WriteByte(a[num*2]);
  40. WriteByte(a[2*num+1]);
  41. P1=num;
  42. STB=1;
  43. STB=0;
  44. delay(2);
  45. }
  46. }
  47. for(j=20;j>0;j--)
  48. {
  49. for(num=0;num<16;num++)
  50. {
  51. WriteByte(b[num*2]);
  52. WriteByte(b[2*num+1]);
  53. P1=num;
  54. STB=1;
  55. STB=0;
  56. delay(2);
  57. }
  58. }
  59. for(j=20;j>0;j--)
  60. {
  61. for(num=0;num<16;num++)
  62. {
  63. WriteByte(c[num*2]);
  64. WriteByte(c[2*num+1]);
  65. P1=num;
  66. STB=1;
  67. STB=0;
  68. delay(2);
  69. }
  70. }
  71. }
  72. }
复制代码



作者: admin    时间: 2018-8-11 17:03
需要补全原理图后即可获得积分




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