?? adc0采樣液晶顯示鍵盤控制.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 + -