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

📄 adc0采样液晶显示键盘控制.c

📁 C51编程
💻 C
字号:
#include <intrins.h>
#include "adc0采样液晶显示.h"
#include  "	 st7920.h"	
#include "keyb.c"	
#define SYSCLK 2000000     
sbit  LED = P1^6;
sfr16 ADC0     = 0xbe;                 // ADC0 data
sfr16 TMR3RL   = 0x92;
unsigned char sh[7];
unsigned char moretime=0;

//void delayus(unsigned char); 
//void delayms(unsigned char);
void Timer3_Init (int counts);
void Timer3_ISR (void);    
/*void init_adc(void)
{
	ADC0CN = 0x81;//打开adc0,并设置转换方式为向adc0busy写1,寄存器数据格式,如果是浮点,则选择左对齐                     
    REF0CN = 0x03;//设置基准电压,使用内部2.4伏,关闭温度传感器,                      
    AMX0SL = 0x08;//通道选择寄存器,配合amux0cf配置寄存器一起使用,选择通道 	
    ADC0CF = (SYSCLK/2500000-1) << 3;  //设置转换频率    
	ADC0CF |= 0x00;//adc0内部增益                     
}*/
void main (void)
{ 
    //int i;

    config();
    LED=0;
Timer3_Init (45535);//调整定时器重载时间 
    EA=1;
    initialize_st7920();//液晶初始化
    while(1)
   {
	 if(test_kb()==1)
	 {AMX0SL=get_key_value();
	   
	  }
   }

    while(1)
    {

	}

}

/*
void delayus(unsigned char us)
{
	while (us)
	{
	  _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
	  --us;
	}
}

void delayms(unsigned char ms)
{
    do
	{
	    delayus(250);
		delayus(250);
		delayus(250);
		delayus(250);		// 	 延时1ms;
		ms--;
	}
	while(ms!=0);
}
*/


void Timer3_ISR (void) interrupt 14
{ 
   TMR3CN &= ~(0x80);
   moretime++;
   if(moretime==2)
   {    
       moretime=0;
       AD0INT = 0;//软件清零转换结束标志位                     
	 	//AD0BUSY = 1;//启动转换
    	while(AD0INT == 0);
		//AMX0SL++;
       calc_volt(ADC0,24,0x0FFF,sh);
	   show_volt(sh);
    }                                            
}

void Timer3_Init (int counts)
{TMR3RL  = -counts;  
}



	      

⌨️ 快捷键说明

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