//名称: 主函数
void main(void) //主函数,单片机开机后就是从这个函数开始运行
{
TRISA = 0B11111111; //初始化RA5-RA0的输入输出方向
TRISB = 0B11000111; //初始化RB7-RB0的输入输出方向
TRISD = 0B00000000; //初始化RD7-RD0的输入输出方向
PORTA = 0B00000000; //初始化RA5-RA0数值
PORTB = 0B00000000; //初始化RB7-RB0的数值
PORTD = 0B00000000; //初始化RD7-RD0的数值
RC7 = 0;
TRISC7 = 0;
LCD1602_init(); //调用1602液晶初始化函数
LCD1602_DispString(2, 0, "--AN0 TEST--");
LCD1602_DispString(2, 1, " AD=");
//A/D参数设置
ADCON1 = 0B10000000; //设置数据右对齐
ADCON0 = 0B00000001; //选择AN0通道准备进行A/D转换,启动A/D模块
ADIE = 1; //允许产生AD中断
ADIF = 0; //A/D标志位清零
PEIE = 1; //允许外设中断
GIE = 1; //打开总中断
InitUSART();
while (1) //死循环,单片机初始化后,将一直运行这个死循环
{
GO_DONE = 1;
ADbuf =Data_Buf[3] * 256 + Data_Buf[4];
//***1602液晶显示0-255***
LCD1602_Disp(8, 1, (ADbuf / 1000) + '0'); //在第2行的第9列显示仟位
LCD1602_Disp(9, 1, ((ADbuf % 1000) / 100) + '0'); //在第2行的第10列显示百位
LCD1602_Disp(10, 1, (ADbuf % 100) / 10 + '0'); //在第2行的第11列显示十位
LCD1602_Disp(11, 1, ADbuf % 10 + '0'); //在第2行的第12列显示个位
for (char i = 0; i < 10; i++)
{
Send_Char(Data_Buf[i]);
}
|