找回密码
 立即注册

QQ登录

只需一步,快速开始

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

通过4个74HC573控制16个led,在摇晃的过程中显示字符,为什么显示的字符出现乱码

[复制链接]
跳转到指定楼层
楼主
ID:82274 发表于 2015-6-7 08:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit w1=P2^0;//位选
sbit w2=P2^1;//位选
sbit d5=P2^6;//段选
sbit d6=P2^7;//段选
uchar code ni[]={0xFF,0x7F,0xFE,0xFF,0xF9,0xFF,0xE0,0x00,0x1F,0xFF,0xFD,0xF7,0xFB,0xCF,0xE7,0x3F,
0x0F,0xFD,0xEF,0xFE,0xEC,0x01,0xEF,0xFF,0xEF,0x7F,0xEB,0x9F,0xE7,0xE7,0xFF,0xFF};/*你 */
uchar m;
void delay(uint z)
{                                         //延时
        uchar x,y;
        for(x=360;x>0;x--)
                for(y=z;y>0;y--);
}
void init()        //初始化
{
        P2=0;
        EA=1; //开总中断
        EX0=1;//启动外部中断0
        IT0=1;//下降沿触发
       
}
void display()
{
        uchar i;
        P2=0;
        w1=1;//开位选
        w2=1;//开位选
        P0=0xff;//对所有的位选写入数据
        w1=0;  //关位选
        w2=0;
        delay(10);
        d5=0;//开段选
        d6=0;
        d5=1;
        d6=1;
        for(i=0;i<16;i++)
        {
                  P0=ni[i*2];        //段选写入数据
                  P0=ni[i*2+1];
                  delay(50);
        }
        d5=0;
        d6=0;  
}
void  main()
{
          init();
          while(1)
          {;}
}                                                         //外部中断
void start () interrupt 0
{
                 m=~m;                   //来回只点亮一次
                 if(m==0)
                         display();
}       
       
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:74784 发表于 2015-6-7 11:19 | 只看该作者
上电路图~~~~~~~~~~~~~~~
回复

使用道具 举报

板凳
ID:78714 发表于 2015-6-14 22:49 | 只看该作者
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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