📄 adc0采样液晶显示.c
字号:
#include <intrins.h>
#include "adc0采样液晶显示.h"
#include " st7920.h"
#define SYSCLK 2000000
sbit LED = P1^6;
sfr16 ADC0 = 0xbe; // ADC0 data
void delayus(unsigned char);
void delayms(unsigned char);
/*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;
unsigned char sh[7];
config();
LED=0;
initialize_st7920();//液晶初始化
//for (i=0;i<8;i++)
//{
while(1)
{
AD0INT = 0;//软件清零转换结束标志位
AD0BUSY = 1;//启动转换
while(AD0INT == 0);
calc_volt(ADC0,24,0x0FFF,sh);//(采样值,参考电压*10,采样满刻度,存放转化值的数组)
//AMX0SL++;
show_volt(sh);//液晶显示电压值
//a[i]=ADC0;
delayms(255);
}
}
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);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -