标题:
单片机C语言 为什么Usartfiguration重复定义怎么修改?
[打印本页]
作者:
2979181478
时间:
2023-4-11 10:56
标题:
单片机C语言 为什么Usartfiguration重复定义怎么修改?
#include <REGX52.H>
#include "LCD1602.h"
#include "DS18B20.h"
#include "Delay.h"
#include "Timer0.h"
float T;
void main()
{
UsartConfiguration();
Timer0_Init();
DS18B20_ConvertT(); //上电先转换一次温度,防止第一次读数据错误
Delay(1000); //等待转换完成
LCD_Init();
LCD_ShowString(1,1,"Temperature:");
P1_0=0;
while(1)
{
DS18B20_ConvertT(); //转换温度
T=DS18B20_ReadT(); //读取温度
if(T<0) //如果温度小于0
{
LCD_ShowChar(2,1,'-'); //显示负号
T=-T; //将温度变为正数
}
else //如果温度大于等于0
{
LCD_ShowChar(2,1,'+'); //显示正号
}
LCD_ShowNum(2,2,T,3); //显示温度整数部分
LCD_ShowChar(2,5,'.'); //显示小数点
LCD_ShowNum(2,6,(unsigned long)(T*10000)%10000,4);//显示温度小数部分
if(T>=24)
{P1_0=1;
}
else
P1_0=0;
}
}
sbit Motor=P1^0;
unsigned char Counter,Compare; //???????,????PWM
unsigned char KeyNum,Speed;
void forward()
{
Compare=0 ;
}
void back()
{
Compare=50 ;
}
void left()
{
Compare=100;
}
void Com_Int(void) interrupt 4
{
unsigned char receive_data;
EA = 0;
if(RI == 1)
{
RI=0;
receive_data = SBUF;
switch(receive_data)
{
case ('1'):
forward();break;
case ('2'):
back();break;
case ('3'):
left();break;
}
}
EA = 1;
}
void UsartConfiguration()
{
SCON=0X50; //SCON ??????????,???????????????/????????????
TMOD=0X20;
PCON=0X00;
TH1=0Xfd;
TL1=0Xfd; //????9600????fd
TR1= 1;
ES = 1;
EA = 1;
PS=1;
}
void Timer0_Routine() interrupt 1
{
TL0 = 0x9C; //??????
TH0 = 0xFF; //??????
Counter++;
Counter%=100; //??????????0~99
if(Counter<Compare) //????????
{
Motor=1; //??1
}
else //????????
{
Motor=0; //??0
}
}
作者:
lkc8210
时间:
2023-4-11 11:25
太多头文档了
把整个keil项目打包上来吧
作者:
li64331218
时间:
2023-4-11 13:03
不懂,看不明白,想问什么
作者:
暖西夏
时间:
2023-4-11 14:51
猜测你应该是void UsartConfiguration() 报错了,把UsartConfiguration()这个函数定义放在main函数前面,要不在main函数前面先用static定义一下这个函数,试下能不能解决
作者:
2979181478
时间:
2023-4-11 15:20
是这个函数报错了
作者:
Hephaestus
时间:
2023-4-11 15:34
具体错误贴出来,更像是UsartConfiguration()没有原型声明。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1