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

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

   djrwww 
djrwww发表的帖子 

 [讨论]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++)
 ;
}



发表时间:2003年9月28日10:57:55

  
回复该帖

本主题共有 4 帖,分页:>>>>>该主题的所有内容[4]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  42989.[详细]太平静啦!
摘要:......(无内容)
- [djrwww][1019次] 2003年9月30日

  42991.[详细]
摘要:  ......(5字)
- [chenjunhua][984次] 2003年9月30日

  42998.[详细]闻说有人用过.但XFR_ADC,DAC0怎么理解它的作用?
摘要:......(无内容)
- [djrwww][1228次] 2003年9月30日

[上一篇帖子]:哪一方面的?
[下一篇帖子]:用过aduc832的请进来!!!!!!!!!大虾,我用832,ad的数据取不进来啊!!! /P P