虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

串并转换

串并转换是完成串行传输和并行传输这两种传输方式之间转换的技术。移位寄存器可以实现并行和串行输入和输出。这些通常配置为“串行输入,并行输出”(SIPO)或“并行,串行输出”(PISO)。
  • 串行编程器源程序(Keil C语言)

    串行编程器源程序(Keil C语言)//FID=01:AT89C2051系列编程器//实现编程的读,写,擦等细节//AT89C2051的特殊处:给XTAL一个脉冲,地址计数加1;P1的引脚排列与AT89C51相反,需要用函数转换#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引脚排列相反#define C2051_P3_0  P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//编程前的准备工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//编程结束后的工作,设置合适的引脚电平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//从P0口获得数据{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//转换并设置P0口的数据{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//读特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//写器件{//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //写一个单元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效验:循环读,直到读出与写入的数相同 {  nTimeOut++;  if(nTimeOut>1000)//超时了  {   return 0;  } } C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//读器件{ BYTE Data;//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //读一个单元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return Data;} void Lock01()//写锁定位{ InitPro01();//先设置成编程状态//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 if(ComBuf[2]>=1)//ComBuf[2]为锁定位 {  C2051_P3_3=1;  C2051_P3_4=1;  C2051_P3_5=1;  C2051_P3_7=1;  Delay_us(20);  SetVpp12V();  Delay_us(20);  C2051_P3_2=0;  Delay_us(20);  C2051_P3_2=1;  Delay_us(20);  SetVpp5V(); } if(ComBuf[2]>=2) {  C2051_P3_3=1;  C2051_P3_4=1;  C2051_P3_5=0;  C2051_P3_7=0;  Delay_us(20);  SetVpp12V();  Delay_us(20);  C2051_P3_2=0;  Delay_us(20);  C2051_P3_2=1;  Delay_us(20);  SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//设置pw中的函数指针,让主程序可以调用上面的函数{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}

    标签: Keil 串行 C语言 编程器

    上传时间: 2013-11-12

    上传用户:gut1234567

  • 并行数据转换为串行数据

    并行数据转换为串行数据

    标签: 并行数据 串行数据 转换

    上传时间: 2013-10-09

    上传用户:liu123

  • 74HC595串入并出芯片应用

    单片机C语言程序设计实训-基于8051+Proteus仿真:74HC595串入并出芯片应用。代码齐全,可以举一反三!

    标签: Proteus 8051 595 74

    上传时间: 2014-03-23

    上传用户:ukuk

  • 外部中断INT0模拟1200bps串口通讯。一次MCU可以可以接收并通过MCU向下位机发送30个字节。

    外部中断INT0模拟1200bps串口通讯。一次MCU可以可以接收并通过MCU向下位机发送30个字节。

    标签: MCU INT0 1200 bps

    上传时间: 2015-01-14

    上传用户:

  • 文本文件转换成PDF文件并加密

    文本文件转换成PDF文件并加密

    标签: 文件转换 加密

    上传时间: 2014-01-16

    上传用户:Ants

  • 在简体字和繁体字间互相转换,并保存为文件,以便阅读.

    在简体字和繁体字间互相转换,并保存为文件,以便阅读.

    标签: 繁体 转换

    上传时间: 2015-01-24

    上传用户:541657925

  • 并口程序串行发送

    并口程序串行发送

    标签: 并口 串行 发送 程序

    上传时间: 2015-01-29

    上传用户:邶刖

  • 3D矩阵转换并显示转换的3D点

    3D矩阵转换并显示转换的3D点

    标签: 转换 矩阵

    上传时间: 2013-12-11

    上传用户:dreamboy36

  • 串口程序 可以接受串口数据并进行数据处理和显示 是一个不错的数据终端

    串口程序 可以接受串口数据并进行数据处理和显示 是一个不错的数据终端

    标签: 串口程序 串口数据 数据处理 数据终端

    上传时间: 2014-01-23

    上传用户:zuozuo1215

  • 12位串行A/D转换芯片TLC2543的驱动程序

    12位串行A/D转换芯片TLC2543的驱动程序

    标签: 2543 TLC 串行 转换芯片

    上传时间: 2015-02-26

    上传用户:songnanhua