打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
51单片机控制点阵显示任何你想显示的文字_单片机点阵显示汉字

其实点阵的原理很简单,就是操作起来麻烦一些,总的来说就是叫一部分灯亮起来,组成自己想要的图形而已,下面我就以显示数字0为例,来演示一下具体的操作过程。如图,先来确定哪些灯亮能组成0这个数字吧!

 上图黄色的实心圆就是要亮的灯,想要这些个灯亮很简单,就是左面给高电平1,下面给低电平0,对应的led灯就会亮起,利用这个原理,把需要的图形画出来,然后把行和列的编码写出来,利用单片机速度很快的原理挨个点亮他们,超过了25赫兹人眼就分不出来有灯灭过了,也就是一直在亮了。接下来打开proteus,如图导入元器件并连线。

 下面是点阵的导入方法:

 接下来就是写C程序了。

  1. #include"reg52.h"
  2. unsigned char code column[]={0x00, 0x18, 0x24, 0x24, 0x24, 0x24, 0x18, 0x00}; //高电平
  3. unsigned char row[]={0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; // 这个都是高电平,取反这位就是低电平,其他都是高电平了
  4. void delay(unsigned int t){ // 延时函数
  5. unsigned int i=0, j=0;
  6. for(i=0; i<t; i++){
  7. for(j=0; j<120; j++);
  8. }
  9. }
  10. void gengxin(){ // 更新函数,函数名就是拼音
  11. // 下面两行注释的代码只是用来检测一下P2和P3哪一端接高电平,哪一端接低电平
  12. // P2 = 0x7F; // 0111 1111 P2要接低电平的一端
  13. // P3 = 0x80; // 1000 0000 P3要接高电平的一侧
  14. unsigned int i=0, j=0;
  15. for(i=0; i<8; i++){
  16. P2 = ~row[i];
  17. P3 = column[i];
  18. delay(2);
  19. }
  20. }
  21. void main(){ // 主函数
  22. while(1){ // 无限循环
  23. gengxin(); // 一直运行更新函数
  24. }
  25. }

最后编译成hex文件导入proteus,模拟运行后,如图就能显示我们之前设计的图形0了。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
无字库12864图形点阵液晶模块及其驱动方法
[51单片机学习笔记FOUR]
51单片机驱动LED点阵扫描显示C语言程序
【   】16X16点阵汉字显示 倒计时 proteus仿真 74HC595驱动 带源程序
从单片机初学者迈向单片机工程师
单片机之路—诺基亚5110LCD显示屏驱动
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服