📄 main.c
字号:
#include <REG168.H>
#include <stdio.h>
#define VREF 5 /* Voltage Reference */
void main ( void ) {
unsigned char chan_16;
#ifndef MCB167 /* do not initialize if you use Monitor-166 */
P3 |= 0x0400; /* SET PORT 3.10 OUTPUT LATCH (TXD) */
DP3 |= 0x0400; /* SET PORT 3.10 DIRECTION CONTROL (TXD OUTPUT) */
DP3 &= 0xF7FF; /* RESET PORT 3.11 DIRECTION CONTROL (RXD INPUT)*/
S0TIC = 0x80; /* SET TRANSMIT INTERRUPT FLAG */
S0RIC = 0x00; /* DELETE RECEIVE INTERRUPT FLAG */
S0BG = 0x40; /* SET BAUDRATE TO 9600 BAUD */
S0CON = 0x8011; /* SET SERIAL MODE */
#endif
/* A/D Converter */
chan_16 = 0; /* Init channel selector to 1st channel */
printf("Test ADC");
while (1){
/* Init ADC */
/* Enable A/D converter, */
/* Fixed Chan. Single Conv., Start on ADBSY set */
ADCON = 0x0080 | (chan_16 % 16); /* and select channels 0-15 */
ADBSY = 1; /* Start ADC conversion */
while (ADBSY); /* Wait for conversion */
/* Output 0-1023 ADDAT value without using floating-point */
//printf ("ADDAT Value %4u, Channel %2d = %01u.%04u Volts\n",
// (unsigned) ADDAT & 0x01FF,
// (unsigned) ADDAT >> 12,
// (unsigned) ((ADDAT & 0x01FF) * VREF) >> 10, /* Output Integer Portion */
// (unsigned) (((ADDAT & 0x01FF) * VREF * 10000UL) >> 10UL) % 10000); /* Output Decimal Portion */
chan_16++; /* Next channel */
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -