- 打卡等级:初来乍到
- 打卡总天数:3
- 最近打卡:2025-03-28 19:09:35
已绑定手机
注册会员
- 积分
- 75
|
发表于 2025-1-25 16:23:45
|
显示全部楼层
#include <STC8H.H>
#include <intrins.h>
#define ADC_LEFT 0
#define ADC_RIGHT 1
#define ADC_TOP 4
#define ADC_BOTTOM 5
sbit AIN1 = P2^4;
sbit AIN2 = P2^5;
sbit BIN1 = P2^6;
sbit BIN2 = P2^7;
void Delay_ms(unsigned int ms) {
unsigned int i, j;
for (i = ms; i > 0; i--)
for (j = 110; j > 0; j--);
}
void PWM_Init() {
P_SW2 |= 0x80;
PWMCKS = 0x00;
PWM1T1 = 0x00FF;
PWM1T2 = 0x007F;
PWM1CR = 0x80;
P_SW2 &= 0x7F;
}
void ADC_Init() {
P1M0 = 0x00;
P1M1 = 0xFF;
ADCCFG = 0x0F;
ADC_CONTR = 0x80;
}
unsigned int ADC_Read(unsigned char channel) {
ADC_CONTR = 0x80 | channel;
_nop_();
while (!(ADC_CONTR & 0x20));
ADC_CONTR &= ~0x20;
return ADC_RES << 8 | ADC_RESL;
}
void MotorX_Dir(unsigned char dir) {
if (dir == 1) {
AIN1 = 1;
AIN2 = 0;
} else if (dir == 2) {
AIN1 = 0;
AIN2 = 1;
} else {
AIN1 = 0;
AIN2 = 0;
}
}
void MotorY_Dir(unsigned char dir) {
if (dir == 1) {
BIN1 = 1;
BIN2 = 0;
} else if (dir == 2) {
BIN1 = 0;
BIN2 = 1;
} else {
BIN1 = 0;
BIN2 = 0;
}
}
void main(void) { // 主函数声明修正为 void main(void)
unsigned int adc_left, adc_right, adc_top, adc_bottom;
int x_diff, y_diff;
PWM_Init();
ADC_Init();
while(1) {
adc_left = ADC_Read(ADC_LEFT);
adc_right = ADC_Read(ADC_RIGHT);
adc_top = ADC_Read(ADC_TOP);
adc_bottom = ADC_Read(ADC_BOTTOM);
x_diff = adc_left - adc_right;
y_diff = adc_top - adc_bottom;
if (x_diff > 100) {
MotorX_Dir(1);
PWM1T2 = 0x00FF;
} else if (x_diff < -100) {
MotorX_Dir(2);
PWM1T2 = 0x00FF;
} else {
MotorX_Dir(0);
}
if (y_diff > 100) {
MotorY_Dir(1);
PWM1T2 = 0x00FF;
} else if (y_diff < -100) {
MotorY_Dir(2);
PWM1T2 = 0x00FF;
} else {
MotorY_Dir(0);
}
Delay_ms(50);
}
}
kiel5 生成提示Rebuild started: Project: 50
Rebuild target 'Target 1'
assembling STARTUP.A51...
linking...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: ?C_START
MODULE: .\Objects\STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: ?C_START
MODULE: .\Objects\STARTUP.obj (?C_STARTUP)
ADDRESS: 000DH
Program Size: data=9.0 xdata=0 code=15
creating hex file from ".\Objects\50"...
".\Objects\50" - 0 Error(s), 2 Warning(s).
Build Time Elapsed: 00:00:01 |
|