首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 电子技术 > 光电应用
移动数据的LED显示屏构成原理与仿真技术
来源:本站整理  作者:佚名  2010-03-11 00:04:35



  例1:接收。SMSC号码是+8613800-
250500,对方号码是13851872468,消息内容是“你好!”。单片机从TC35模块读取到的PDU串是——08 91 68 31 08 20 05 05 F0 84 0D 91 68 31 58 81 27 64 F8 00 08 30 30 21 80 63 54 80 06 4F 60 59 7D 00 21。

例2:发送。SMSC号码是+8613800-
250500,对方号码是13851872468,消息内容是“你好!”。单片机向TC35模块发出的PDU串是——08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 58 81 27 64 F8 00 08 00 06 4F 60 59 7D 00 21。

3.2 LED显示控制程序 

        LED的动态扫描功能通过使用单片机的定时器0中断实现。定时器0计数初值的设定满足每秒中断1 000次以上,每次中断扫描显示一行,这样每行在每秒钟内至少被扫描60次以上。根据人眼的视觉暂留效应,达到了较理想的显示效果。
  定时器0中断服务程序:
                          void int0(void) interrupt 1
                       {
                          TR0=0; //关定时器T1
                          TL0=0x80; //设置初值的低8位
                            TH0=0xff; //设置初值的高8位
                                    TR0=1; //开定时器T1

                                if(i<16) //i为扫描的行号,取值0~15,
                         //依次扫描1~16行
                       {
                             P1_5=0; //关HC595锁存

                               while(z<8) //z为上下各8片HC595按
                                //从左到右的编号,取值0~7。
                                //每片HC595都经8次循环,
                               //实现8位数据的串/并转换
                     { a=disp[i*2+k];//取上16行的8位显示数据a
                         b=disp[i*2+k+128]; //取下16行的8位
                           //显示数据b

                          if(z%2!=0) k+=32-1;
                         else k++;

                     while(j<8) //循环8次,将a通过P1.6
                                //脚依次移入上面的HC595,
                               //将b通过P1.7脚依次
                             //移入下面的HC595
                          {
                            P1_4=0; //将P1.4口线拉低,
                               //产生移位脉冲SHCLK

                               if((a&au)>0) //假串口P1.6,输出上16行
                                 //的显示数据a
                               P1_6=1;
                                  else
                                   P1_6=0;

                              if((b&au)>0) //假串口P1.7,输出下16行
                                //的显示数据b
                                 P1_7=1;
                                  else
                                 P1_7=0;

                                  P1_4=1; //将P1.4口线置高,产生移位
                              //脉冲SHCLK
                           au=au<<1;
                            j++;
                             }
                            j=0;
                          au=0x01;

                              z++;
                                     }
                                k=0;
                                z=0;
                                   }
                            P1=(P1&0xf0)|i; //通过P1.0~P1.3产生4位
                              //行扫描信号ABCD
                        P1_5=1; //开595锁存
                          i++;
                          if(i==16) i=0;
                               }

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:192,562.50000 毫秒