STC12C5A60S2可控恒流源设计.docVIP

  • 20
  • 0
  • 约6.08千字
  • 约 9页
  • 2016-12-09 发布于重庆
  • 举报
STC12C5A60S2可控恒流源设计

/**********************STC12C5A60S2可控恒流源设计************* FileName:ConstCurrent.c Author:沧海麒麟 Date:2011.05.20 Version :1.1 Description:STC12C5A60S2可控恒流源设计 Function:(1)::STC12C5A60S2单片机控制恒流60~250mA电流输出*/ #include STC12C5A.h #include intrins.h #include string.h #include math.h //#include ADC.h //#include LCM1602.h //#include KEY.h //#include absacc.h //#include DAC0832.h //#include EEPROM.h #define uint unsigned int #define uchar unsigned char sbit RS = P1^0; sbit RW = P1^1; sbit E = P1^2; sbit speak = P1^3; #define Data P2 //1602数据端口 #define DAC0832_Port P0 //DAC0832数据端口 #define shift 1 #define Add_Bai 2 #define Add_Shi 3 #define Add_Ge 4 //编码的按键值 uint SET_mA=60,ADC; //SET电流 uchar Bai=0,Shi=6,Ge=0; uchar wangxue0[]=***2011.05.20***; uchar wangxue1[]=***************; uchar wangxue2[]=SET_I:000 MA ; /******************************************************************/ /* 延时函数 */ /******************************************************************/ void delay_nms(uint n) { uint x,y; for(x=0;xn;x++) for(y=0;y1000;y++); } /*---------------------------- Initial ADC sfr ----------------------------*/ void InitADC(void) { P1ASF = 0x80; //Open P1.7 channels ADC function ADC_RES = 0; //Clear previous result ADC_CONTR = ADC_POWER | ADC_SPEEDH; delay_nms(5); //ADC power-on and delay } /*---------------------------- Get ADC result ----------------------------*/ uchar GetADCResult(void) { ADC_CONTR = ADC_POWER | ADC_SPEEDH | 0x07 | ADC_START; _nop_(); _nop_();//Must wait before inquiry _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); while (!(ADC_CONTR ADC_FLAG)); //Wait complete flag ADC_CONTR = ~ADC_FLAG; //Close ADC return ADC_RES; //Return ADC result } /*液晶测忙:读取最高位的状态。忙碌为1,不忙为0*/ void Lcd_Busy(void) { RS=0; RW=1; E=1; _nop_();_nop_(); _nop_();_nop_(); while(Data0x80); E=0; } /******************************************************************/ /* 写入命令函数

文档评论(0)

1亿VIP精品文档

相关文档