找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3725|回复: 6
收起左侧

单片机程序中怎么把8*8点阵旋转过来

[复制链接]
ID:128697 发表于 2017-4-2 11:21 | 显示全部楼层 |阅读模式
1.png

这是原理图,下面是程序

  1. #include<reg51.h>
  2. void delay();  //延时约1ms函数声明  
  3. void main()
  4. {     
  5.                 unsigned char code led[10][8]={0x18,0x24,0x24,0x24,0x24,0x24,0x24,0x18,   //0                                       
  6.                                                                 0x00,0x18,0x1c,0x18,0x18,0x18,0x18,0x18,    //1                                               
  7.                                                                 0x00,0x1e,0x30,0x30,0x1c,0x06,0x06,0x3e,  //2                                               
  8.                                                                 0x00,0x1e,0x30,0x30,0x1c,0x30,0x30,0x1e,  //3                                               
  9.                                                                 0x00,0x30,0x38,0x34,0x32,0x3e,0x30,0x30,  //4                                             
  10.                                                                 0x00,0x1e,0x02,0x1e,0x30,0x30,0x30,0x1e,  //5                                             
  11.                                                                 0x00,0x1c,0x06,0x1e,0x36,0x36,0x36,0x1c,  //6                                             
  12.                                                                 0x00,0x3f,0x30,0x18,0x18,0x0c,0x0c,0x0c,  //7                                       
  13.                                                                 0x00,0x1c,0x36,0x36,0x1c,0x36,0x36,0x1c,  //8                                               
  14.                                                                 0x00,0x1c,0x36,0x36,0x36,0x3c,0x30,0x1c};  //9     
  15.                 unsigned char w;
  16.                 unsigned int i,k,m;      
  17. while(1)
  18.    {        
  19.         for(k=0;k<10;k++)  //字符个数控制变量      
  20.         {
  21.                  for(m=0;m<400;m++)
  22.                  {
  23.                   //每个字符扫描显示400次,控制每个字符显示时间                           {     
  24.                 w=0x01;  //行变量w指向第一行                        
  25.                 for(i=0;i<8;i++)            
  26.                         {                 
  27.                  P3=w;  //行数据送P3口               
  28.                  P0=~led[k][i]; //列数据送P0口              
  29.                   delay();  
  30.                         w<<=1;
  31.                          P0=0xff;                 

  32.                         }
  33.                    }
  34.          }
  35.     }
  36. }

  37.   void delay()
  38. {      
  39. unsigned char  i,j;   
  40. for
  41. (i=0;i<1;i++);
  42. for(j=0;j<10;j++);
  43. }


复制代码

仿真时发现旋转了90度,想了很久也不知道怎转过来,老师要求把它摆正,求各位写一下程序教教小弟,谢谢!
回复

使用道具 举报

ID:151348 发表于 2017-4-2 17:41 | 显示全部楼层
花了点的时间给你做了两张图,算是通俗易懂了,就是个读数的问题。
你数据数组unsigned char code led里各个数字的表示方法应该是通过取模软件得到的,不知道你用的是哪一款,用的什么字体,我用PCtoLCD2002试了没事出来你那种显示效果,方法都大同小异,你取模的时候设置旋转90°就行了
未命名-2.png
未命名-1.png
回复

使用道具 举报

ID:128697 发表于 2017-4-2 20:01 | 显示全部楼层
imxuheng 发表于 2017-4-2 17:41
花了点的时间给你做了两张图,算是通俗易懂了,就是个读数的问题。
你数据数组unsigned char code led里各 ...

谢谢你,辛苦了,还做了图片
回复

使用道具 举报

ID:82765 发表于 2017-4-2 23:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

ID:158622 发表于 2017-4-3 00:01 | 显示全部楼层
反正是仿真,直接把器件选择90度,不行吗
回复

使用道具 举报

ID:185730 发表于 2017-4-3 10:50 | 显示全部楼层
旋转取模的值就好了
回复

使用道具 举报

ID:185829 发表于 2017-4-3 19:10 | 显示全部楼层
duianma zuanhuan
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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