正文

[C51代码]用74LS164串行输入并口输出2012-10-28 23:48:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/enc999/53853.html

分享到:

[C代码]用74LS164串行输入并口输出 - 漫步人生 - 成长足迹

#include <AT89X51.H>
#include "Link.h"
#include "delay.h"

/********************变量定义*********************/
sbit Data = P2^0;
sbit Clk  = P2^1;
uint8 code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void Write_Byte(uint8 temp)
{
  uint8 i;
  for(i=0;i<8;i++)
  {
     Clk=0;
     if((temp&0x80)!=0x80)
    Data=0;
  else
    Data=1;
  Clk=1;
  temp<<=1;
  } 
}


void main(void)
{
  while(1)
   {
    uint8 i;
    for(i=0;i<10;i++)
     {
     Write_Byte(table[i]);
    delay1ms(1000);
  }
   }
}

串口方式0进行扩展

74ls164

 注意串口通信时,低位在前,高位在后发送。

#include <AT89X51.H>
#include "Link.h"
#include "delay.h"

/********************变量定义*********************/
//#define tim 65536-10000

uint8 code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//uint8 Led;

 
 /****************************************************************
 *函数功能:初始化定时器
 *入口参数:无
 *出口参数:无
 ****************************************************************/
void TIMER_Init(void)
{
 SCON = 0x00;            //串行移位方式
 EA = 1;
 ES = 1;

}

void main(void)
{
   TIMER_Init();
   while(1)
   {
    uint8 i;
    SBUF=table[i++%10];
 while(!TI);
 TI=0;
 delay1ms(1000);

   }
}

 

阅读(1934) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册