导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[讨论]51单片机能用下面程序实现电路功能吗?[djrwww]

 *第16584篇: [讨论]51单片机能用下面程序实现电路功能吗?

  
楼 主:djrwww 2003年9月28日10:57
 [讨论]51单片机能用下面程序实现电路功能吗?

此主题相关图片如下:
按此在新窗口浏览图片
typedef unsigned char  Byte;
typedef unsigned int    Word;

#define KEY1   1
#define KEY2   2
#define KEY3   3
#define KEY4   4
#define KEY5   5
#define KEY6   6
#define KEY7   7
#define KEY8   8
#define KEY9   9
#define KEY10  10
#define KEY11  11
#define KEY12  12

//external ram
Byte PDATA XFR_ADC _at_ 0x10;
Byte PDATA DAC0    _at_ 0x20;


void GetKey1(void)
{
 Byte keytmp;
 KeyData = 0;
 XFR_ADC = 0x81;  //adc channel = 1
 DelayX1ms(2);   //delay 2ms
 keytmp = XFR_ADC & 0x3f; //6 bit ADC, 2^6=0X3f
 if(keytmp   < (12+4))  KeyData = KEY1;
 else if(keytmp   < (23+4)) KeyData = KEY2;
 else if(keytmp   < (34+4)) KeyData = KEY3;
 else if(keytmp   < (44+4)) KeyData = KEY4;

 XFR_ADC = 0X82;  //adc channel = 2;
 DelayX1ms(2);
 keytmp = XFR_ADC & 0x3f;
 if(keytmp   < (12+4))  KeyData = KEY5;
 else if(keytmp   < (23+4)) KeyData = KEY6;
 else if(keytmp   < (34+4)) KeyData = KEY7;
 else if(keytmp   < (44+4)) KeyData = KEY8;

 XFR_ADC = 0X84;  //adc channel = 3;
 DelayX1ms(2);
 keytmp = XFR_ADC & 0x3f;
 if(keytmp   < (12+4))  KeyData = KEY10;
 else if(keytmp   < (23+4)) KeyData = KEY11;
 else if(keytmp   < (34+4)) KeyData = KEY12;
 else if(keytmp   < (44+4)) KeyData = KEY13;

 XFR_ADC = 0X00;  //disable adc


}


 void DelayX1ms(Word count) //crystal = 12mhz
{
 Word i,j;   //variable:declare Word
 for(i=0;i  <count;i++)
  for(j=0;j  <120;j++)
 ;
}

  
2楼:djrwww 2003年9月30日12:04
 太平静啦!
  
3楼:chenjunhua 2003年9月30日12:15
 


  
4楼:djrwww 2003年9月30日12:59
 闻说有人用过.但XFR_ADC,DAC0怎么理解它的作用?

>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:uCOS II高人请教

[下一篇主题]:用过aduc832的请进来!!!!!!!!!