tck.c

来自「51单片机同步串口发送数据的程序」· C语言 代码 · 共 46 行

C
46
字号
#include<regX51.h>       //同步串口发射数据程序//
unsigned char a[16];     //发射数据缓存数组//

void chai(unsigned int n)//将要发射的数据拆成位的函数,n为被拆的数//
{
 unsigned char k;        //数组的第几个数变量//
 unsigned int t;         //判断数组中每一位是0还是1变量//
 unsigned int j=0x1;       
 for(k=0;k<=15;k++)      //循环判断数组中的每一位//
 {     
  t=n&j;
  if(t!=0)
  a[k]=1;
  else
  a[k]=0;
  j=j<<1;                //移位比较//
 }
}

void delay(void)         //延时函数,在1200波特率时每一位的时间长度//
{
 unsigned char u=0x43;
 while(u--);
}

void main()              //主函数//
{
 char i;
 while(1)                //死循环//
 {
  chai(0xA0A0);          //拆数//
  P3_2=0;                //先将发射的分隔信号付成0//
  for(i=31;i>=0;i--)     //循环将时钟信号发射出去发射31个,16个上升沿//
  {
   if(i==31)
   P3_0=0;
   else
   P3_0=!P3_0;
   P3_1=a[(i/2)];        //发射16位的数据,先发射高位,再发射低位//
   delay();
  }
   P3_2=1;               //将分隔信号付1,产生分隔信号上升沿// 
   P3_0=0;               //时钟信号置0//
 }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?