da0832.c

来自「用at89s52控制dac0832的进行da转换的程序.」· C语言 代码 · 共 101 行

C
101
字号
#include <reg52.h>
#include <stdio.h>
#include <absacc.h>

#define uchar unsigned char
#define DA0832 XBYTE[0X1000]


#define ram_memory XBYTE[0x8100]
#define cs_memory XBYTE[0x0000]



sbit CS=P1^4;
sbit CLK=P1^7;
sbit DIO=P1^6;
sbit KEY=P1^3;
uchar half_hign;
uchar half_low;
uchar X,ram_data;
uchar rebuf, sebuf;
bdata uchar com_data;
sbit mos_bit=com_data^7;
sbit low_bit=com_data^0;
void delay_50us()
{   
   uchar i;
   for (i=0; i<6; i++){;}
 }

 void delay_8us()
 {
     uchar i;
	 for (i=0; i<1; i++){;}
 }
  void delay_50ms()
  {
     uchar i,j;
	 for(j=0;j<50;j++)
	 for(i=0;i<125;i++){;}
	 }
   void send(uchar sebuf)
 {
    uchar i;
	com_data=sebuf;
	CLK=0;
	CS=0;
	delay_50us();
	for(i=0;i<8;i++)
	{
	delay_8us();
	DIO=mos_bit;
	CLK=1;
	delay_8us();
	com_data=com_data<<1;
	CLK=0;
	}
	DIO=0;
}
   void receive()
   {
      uchar i;
	  CLK=1;
	  delay_50us();
	  for(i=0;i<8;i++)
	  {
	   com_data=com_data<<1;
	   low_bit=DIO;
	   CLK=1;
	   delay_8us();
	   CLK=0;
	   delay_8us();
	   }
	   rebuf=com_data;
	   DIO =1;
	   CS=1;
	   }
	   void reset()
	   {
	   KEY=1;
	   DIO=1;
	   delay_50ms();
	   send(0xa4);
	   CS=1;
	   }
	   
       main()
       {unsigned char i = 0;
     
		while(1)
		DA0832 = i ++;



       }   


	   /*main()
	   {
	    
	    // 初始化串口

⌨️ 快捷键说明

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