📄 lcd.c
字号:
#include "c8051f040.h"
#include "STDIO.h"
#include "ADC.h"
#include "const.h"
unsigned int result;
void Delay1us(unsigned char);
void Delay1ms(unsigned char);
void Delay1s(unsigned char T);
void ADC0_Init (void)
{
char SFRPAGE_SAVE = SFRPAGE;
SFRPAGE = LEGACY_PAGE;
REF0CN = 0x07;
SFRPAGE = ADC0_PAGE;
ADC0CF = 0x10;
ADC0CN = 0xC0;
AMX0SL = 0x00;
SFRPAGE = SFRPAGE_SAVE;
}
void ADC0_Conver (void)
{
unsigned int data temp;
char SFRPAGE_SAVE = SFRPAGE;
SFRPAGE = ADC0_PAGE;
AMX0SL = 0;
Delay1ms(1);
AD0INT = 0;
AD0BUSY = 1;
while (!AD0INT);
temp = ADC0H;
temp = temp*256 + ADC0L;
result = temp;
SFRPAGE = SFRPAGE_SAVE;
}
void Timer_Init()
{
SFRPAGE = TMR3_PAGE;
TMR3CN = 0x04;
TMR3CF = 0x08;
RCAP3L = 0x60;
RCAP3H = 0xFF;
}
void UART_Init()
{
SFRPAGE = UART0_PAGE;
SCON0 = 0x50;
SSTA0 = 0x1A;
ES0=0;
PS=0;
TI0=1;
RI0=0;
}
void Port_IO_Init()
{
SFRPAGE = CONFIG_PAGE;
XBR0 = 0x04;
XBR1 = 0x00;
XBR2 = 0x40;
P5MDOUT = 0xf0;
}
void Oscillator_Init()
{
SFRPAGE = CONFIG_PAGE;
OSCICN = 0x83;
}
void Delay1us(unsigned char T)
{ while(T){
T--;
}
}
void Delay1ms(unsigned char T)
{
while (T)
{
Delay1us(200);
Delay1us(200);
Delay1us(200);
Delay1us(200);
Delay1us(200);
T--;
}
}
void Delay1s(unsigned char T)
{
while (T)
{
Delay1ms(200);
Delay1ms(200);
Delay1ms(200);
Delay1ms(200);
Delay1ms(200);
T--;
}
}
void main(){
unsigned int i;
float voltage;
unsigned int tp;
Oscillator_Init();
WDTCN=0xDE;
WDTCN=0xAD;
Port_IO_Init();
Timer_Init();
UART_Init();
ADC0_Init();
while(1)
{
Delay1ms(2000);
ADC0_Conver();
SFRPAGE = UART0_PAGE;
printf("\n");
SFRPAGE = CONFIG_PAGE;
voltage=result*2860.0/4095;
tp=voltage;
i=0;
SFRPAGE = UART0_PAGE;
printf ("Channel %d voltage is %dmV\n",i,tp);
SFRPAGE = CONFIG_PAGE;
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -