查看: 1482|回复: 0
打印 上一主题 下一主题

041、数据串转并程序

[复制链接]
跳转到指定楼层
沙发
发表于 2015-4-20 16:40:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/********************************************************************
                            汇诚科技
网址:http://www.ourhc.cn
产品有售淘宝店:http://shop36330473.taobao.com   
*********************************************************************/
#include<reg52.h>          //头文件
#define uint unsigned int   //定义整型类型
#define uchar unsigned char        //定义字符类型
sbit DAT=P1^1; //定义串行数据输出口
sbit CLK=P1^2; //定义时钟控制输出口
uchar code tab[]= {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//定义输出数组
/********************************************************************
                              串行输出函数  
*********************************************************************/
void sendbyte(uchar byte)
{   
uchar num,c;  //定义两个变量
num=tab[byte];//输出数据
for(c=0;c<8;c++)//循环8次
{
CLK=0;                    //时钟置低
DAT=num&0x01;        //输出电平
CLK=1;                    //时钟置低
num>>=1;                //num右移一位
}
}
/********************************************************************
                              延时函数  
*********************************************************************/
void delay_50ms(unsigned int t)//延时函数
{
unsigned int j;   
for(;t>0;t--)
for(j=6245;j>0;j--)
{;}
}
/********************************************************************
                              主函数  
*********************************************************************/
void main()        //主函数
{
uchar h; //定义字符变量
while(1) //无限循环
{
for(h=0;h<8;h++) //循环h次
        {
         delay_50ms(1);//延时
     sendbyte(h);  //调用函数
     delay_50ms(10);//延时
        }
   h=0;        //清零
}

}
/********************************************************************
                              结束  
*********************************************************************/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入中科因仑

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

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