/****************************************************P1M1|=0X00P1M0|=0XC3P1.0 PCC1 PWM输出 (转强推挽,电阻接地)P3.7 PCC2中断(上升沿) INT3(下降沿)(高阻态,仅输入)P1.1 自动清洗内壁(可附加润壁功能)(转强推挽,电阻接地)p3.3 p3.4 p3.5 p3.6四路AD转换接口(高阻态,仅输入)P1.6 开启封水碗(转强推挽,电阻接地)P1.7 关闭封水碗并补水(转强推挽,电阻接地)***************************************************/#include <stc8g.h>#include<intrins.h>sbit P1_0=P1^0;sbit P3_7=P3^7;sbit P1_1=P1^1;sbit P3_3=P3^3;sbit P3_4=P3^4;sbit P3_5=P3^5;sbit P3_6=P3^6;sbit P1_6=P1^6;sbit P1_7=P1^7; unsigned int adcResults; // 定义 ADC 结果存储数组 void ADC_Init() // ADC 初始化函数 { ADC_CONTR = 0x80; // 打开 ADC 电源 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();/*等待电压稳定*/ ADCCFG=0X26; /*转换结果右对齐,转换速度SYSclk/2/6*/ } void ADC_Convert() // 执行 ADC 转换并获取结果函数{ unsignedchar channel; for (channel=11;channel < 15;channel++) { ADC_CONTR &= 0x80; // 清除通道选择位 ADC_CONTR |= channel; // 选择通道 ADC_CONTR |= 0x40; // 启动转换 while (~ (ADC_CONTR &= 0x20) ); // 等待转换完成 adcResults = (ADC_RES << 8) | ADC_RESL; // 保存结果 ADC_CONTR &= ~0x20; // 清除转换完成标志 }} void Timer0_Init() { AUXR |= 0x80; //定时器时钟1T模式 TMOD = 0x01; // 设置定时器 0 为模式 1[/