?? ad.c
字號:
#include<math.h> //AD轉換程序__________完
#include <intrins.h>
#include<stdio.h>
#include<reg52.h>
#define NOP5 _nop_();_nop_();_nop_();_nop_();_nop_()
#define NOP2 _nop_();_nop_();
#define NOP1 _nop_();
#define uchar unsigned char
#define uint unsigned int
#define slong signed long
/////////////////////////?????????///////////////////////////////////
sfr AUXR = 0x8e;
sfr AUXR1 = 0xa2;
sfr P4 = 0xe8;
sfr XICON = 0xc0;
sfr IPH = 0xb7;
sfr WDT_CONTR = 0xe1;
sfr ISP_DATA = 0xe2;
sfr ISP_ADDRH = 0xe3;
sfr ISP_ADDRL = 0xe4;
sfr ISP_CMD = 0xe5;
sfr ISP_TRIG = 0xe6;
sfr ISP_CONTR = 0xe7;
///////////////////////???????????///////////////////////////////////
sbit C_SCLK=P0^0;
sbit C_DOUT=P0^1;
sbit C_549_CS=P2^6;
sbit C_RS232_CONTROL1=P0^3;
sbit C_RS232_CONTROL2=P0^4;
sbit C_READY=P0^5;
sbit C_TO2_P25=P0^6;
sbit C_ERROR=P0^7;
uint i,j,k,tempx=0;
void Befor_Once_AD()
{ C_SCLK=0;
C_DOUT=0;
C_549_CS=0;
for(i=0;i<8;i++)
{ C_SCLK=1;
NOP2
C_SCLK=0;
}
C_549_CS=1;
for(i=0;i<28;i++) //延時24us 不能太短了
{NOP2;
}
}
uint AD()
{
uint ad_data;
tempx++;
Befor_Once_AD() ;
C_SCLK=0;
C_DOUT=0;
ad_data=0;
C_549_CS=0;
NOP5;
for(i=0;i<8;i++)
{ C_SCLK=1;
// C_SCLK=0;
C_DOUT=P0^1;
NOP2;
ad_data<<=1;
if(C_DOUT)
{ad_data=ad_data|0x01; }
C_SCLK=0;
}
C_549_CS=1;
P1=ad_data;
return(ad_data);
}
main()
{ TR1=1;
// int TDATA;
TMOD=0X20;
TL1=0xf4;TH1=0xf4;
SCON=0x50,PCON=0x00; //方式1傳輸,開串口
TR1=1;
while(1)
{ C_549_CS=1;
tempx=AD();
SBUF=tempx;
while(TI==0);
TI=0;
for(i=0;i<2000;i++)
{NOP5;}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -