迅维网

查看: 1150|回复: 1
打印 上一主题 下一主题

新手写的双灯循环亮的程序

  [复制链接]
跳转到指定楼层
1#
发表于 2016-7-20 09:42:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东青岛 来自 山东青岛

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
#include<reg51.h>
#include<absacc.h>
#define PA XBYTE[0xcfa0]
#define PB XBYTE[0xcfa1]
#define PC XBYTE[0xcfa2]
#define CTL8255 XBYTE[0xcfa3]
unsigned char table1[]={21,22,23,24,25,26,27,28,29,30};
unsigned char table2[]={0,0,0,0,0,0,0,0,0,0};
unsigned char LEDSEG[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X51,0X79,0X71};
unsigned char i=0,j=0,k=0;
unsigned char a;
void Delay(unsigned int u);
void send();
void recv();
void display();
void main()
{
  TMOD=0X20;
  TH1=TL1=249;
  TR1=1;
  SCON=0X50;
  PCON=0X00;
  IE=0X90;
  CTL8255=0X80;
while(1)
{ send();
   display();
}
}
void send()
{
a=table1[i++];
a=a/10*16+a%10;
SBUF=a;
Delay(50);
if(i==10)i=0;
}
void recv()
{
  table2[j++]=SBUF;
  if(j==10)j=0;
}
void display()
{if(j!=0)
  {P1=table2[k++];
  PB=0XFE;
  PA=LEDSEG[a%16];
  Delay(10);
  PB=0xFD;
  PA=LEDSEG[a/16];
  Delay(1000);
  if(k==10) k=0;
  }
}
void ser() interrupt 4
{if(TI==1) TI=0;
  if(RI==1)
  {RI=0;recv();}
}
void Delay(unsigned int u)
{unsigned char i;
while(u--)
{for(i=0;i<125;i++);}
}

2#
发表于 2017-4-30 15:32:09 | 只看该作者 来自: 河南平顶山 来自 河南平顶山
  有何作用

回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复