PC控制单片机继电器开关程序.docVIP

  • 0
  • 0
  • 约6.38千字
  • 约 15页
  • 2022-10-19 发布于浙江
  • 举报
PC控制单片机继电器开关程序 #includereg51.h #define uchar unsigned char//宏定义无符号字符型 #define uint unsigned int //宏定义无符号整型 /******************************************************************** 初始定义 *********************************************************************/ uchar sj; //存储数据值 bit write=0; //写24C08 的标志; uchar dat=0xee; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容 /*定义八位出为单片机P2口*/ sbit K1=P2^0; sbit K2=P2^1; K3=P2^2; sbit sbit K4=P2^3; sbit K5=P2^4; sbit K6=P2^5; sbit K7=P2^6; sbit K8=P2^7; /*定义八位入为单片机P1口*/ sbit IN0=P1^0; sbit IN1=P1^1; sbit IN2=P1^2; sbit IN3=P1^3; sbit IN4=P1^4; sbit IN5=P1^5; sbit IN6=P1^6; sbit IN7=P1^7; /******************************************************************** 24C08 读写驱动程序 *********************************************************************/ sbit scl=P3^6; // 24c08 SCL sbit sda=P3^7; // 24c08 SDA void delay1(uchar x) { uint i; for(i=0;ix;i++); ; } void flash(){ ; ; } void x24c08_init() //24c08 初始化子程序 { scl=1; flash(); sda=1; flash(); } void start() //启动(I方C)总线 { sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash(); } void stop() //停止(I方C)总线 { sda=0; flash(); scl=1; flash(); sda=1; flash(); } void writex(uchar j) //写一个字节 { uchar i,temp; temp=j; for (i=0;i8;i++) { temp=temp1; scl=0; flash(); sda=CY; flash(); scl=1; flash(); } scl=0; flash(); sda=1; flash(); } uchar readx() //读一个字节 { uchar i,j,k=0; scl=0; flash(); sda=1; for (i=0;i8;i++) { flash(); scl=1; flash(); if (sda==1) j=1; else j=0; k=(k1)|j; scl=0;} flash(); return(k); } void clock() //(I方C)线时钟 { unsigned char i=0; scl=1; flash(); while ((sda==1)(i255))i++; scl=0; flash(); } /******************************************************************** 从24c08 的地址address 中读取一个字节数据 *********************************************************************/ unsigned char x24c08_read(unsigned char address) { unsigned char i; start(); writex(0xa0); clock(); writex(address); c

文档评论(0)

1亿VIP精品文档

相关文档