⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex8-3.c

📁 本文件好似一系列的仿真
💻 C
字号:
#include <reg51.h>	 //外接芯片来实现外围电机的选择
#include <stdio.h>

#define DAC0832Addr0 0XFEFF   //0832地址1
#define DAC0832Addr1 0XFFFF   //0832地址2
#define DAC0832Addr 0X7FFF   //0832地址
#define uchar unsigned char   //单个字节无符号数
#define uint unsigned int  // 输出口初始化		  
void TransformData1 ( uint DAC0832,uchar c0832data1)//转换数据
	 {
                *((uchar  xdata *)DAC0832)=c0832data1; //向0832输出待转换数字量c0832data
       /* 在C语言中 访问外部寄存器时要先进行类型转换。用(uchar xdata *)转化位指针型数据,再间接寻址*/
     }  
void Delay () 
  {
       uint i;
       for (i=0; i<200;i++);
  }
main ()
 {
       uchar cDigtial;
  	   P0=0xff;  //端口初始化,其实不用  上电后自动置高
       P1=0xff;  //端口初始化,其实不用  上电后自动置高
       P2=0xff;  //端口初始化,其实不用  上电后自动置高				  
   	   P3=0xff;  //端口初始化,其实不用  上电后自动置高		
       Delay();
	   P1=0x00;
	   cDigtial=P1;
	   for(;cDigtial<=3;cDigtial++)		//循环给四个电机输入相同的值
      {
	 
	  
	      P1=cDigtial;	 //必须重新赋值给P1口
	      TransformData1(0X7FFF ,0X50);   //进行数模转换 
	  	  Delay () ;
	   }

 }		 //可以用一个函数来实现数模的转换,关键事把参数改成UINT才可以,不然选通不了。0X7FFF为2字节..

/*	 	for(;cDigtial<=3;cDigtial++)		 //循环给电机输入不同的值
    {
	 if	(cDigtial==0)
	  {
	      P1=cDigtial;	 //必须重新赋值给P1口
	  TransformData1(0X7FFF ,0X50);   //进行数模转换 
	  	Delay () ;
	  }
	  if(cDigtial==1)
	  {
		  P1=cDigtial ;
	      TransformData1(0X7FFF ,0X80);   //进行数模转换 
	  	  Delay () ;
	  }
       if(cDigtial==2)
	  {
	    P1=cDigtial ;  //必须重新赋值给P1口
	    TransformData1(0X7FFF ,0XD0);   //进行数模转换 
	  	Delay () ;
	  }
	  if(cDigtial==3)
	  {
	     P1=cDigtial ;
	     TransformData1(0X7FFF ,0XE0);   //进行数模转换 
	  	 Delay () ;
	  }
     // printf("increment\n") ;    //调试输出信息 
	}
  		 */

⌨️ 快捷键说明

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