找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 753|回复: 0
打印 上一主题 下一主题
收起左侧

16x16点阵屏—单片机为何不输出数据?

[复制链接]
跳转到指定楼层
楼主
  1. #include <reg51.h>
  2. #define u8 unsigned char
  3. #define u16 unsigned short int
  4. //定义HC595使用的IO口
  5. sbit HC595_DATA=P1^2;
  6. sbit HC595_RCK=P1^3;
  7. sbit HC595_SCK=P1^4;


  8. void HC595_Send_Byte(u8 byte)
  9. {
  10.         u8 i;
  11.         for(i=0;i<8;i++)
  12.                 {
  13.                         if(byte&0x80)HC595_DATA=1;
  14.                         else HC595_DATA=0;
  15.                         HC595_SCK=0;
  16.                         HC595_SCK=1;
  17.                         byte<<=1;
  18.                 }
  19. }

  20. /*
  21. 将HC595存储器里的数据输出到总线上
  22. */
  23. void HC595_DataOut()
  24. {
  25.         HC595_RCK=0;
  26.         HC595_RCK=1;
  27.         HC595_RCK=0;
  28. }

  29. /*
  30. 延时函数
  31. */
  32. void DelayMs(u8 p)
  33. {
  34.         u8 z,e;
  35.         for(z=p;z>=0;z--);
  36.         for(e=110;e>=0;e--);
  37. }

  38. /*
  39. HC595的3、4级是控制点阵的列(低电平)
  40. HC595的1、2级是控制点阵的行(高电平)
  41. 给HC595第1级发送的数据会移动到最后一个HC595。
  42. */
  43. int main()
  44. {
  45.         u8 i,j;
  46.         u16 Row;
  47.         u16 col;
  48.         while(1)
  49.         {
  50.                 for(i=0;i<16;i++)
  51.                 {
  52.                         Row=0x0000;
  53.                         Row|=1<<i;
  54.                         for(j=0;j<16;j++)
  55.                         {
  56.                                 col=0xFFFF;
  57.                                 col&=~(1<<j);
  58.                                 HC595_Send_Byte(col>>8);
  59.                                 HC595_Send_Byte(col);
  60.                                 HC595_Send_Byte(Row>>8);
  61.                                 HC595_Send_Byte(Row);
  62.                                 HC595_DataOut();
  63.                                 DelayMs(100);
  64.                                 HC595_Send_Byte(0xFF);
  65.                                 HC595_Send_Byte(0xFF);
  66.                                 HC595_Send_Byte(0x00);
  67.                                 HC595_Send_Byte(0x00);
  68.                                 HC595_DataOut();
  69.                         }
  70.                 }
  71.         }
  72. }
复制代码


屏幕截图 2022-09-13 173304.png (1.63 KB, 下载次数: 89)

一直保持这样不变!

一直保持这样不变!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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