
串口是会导致下载程序时无法打开。
STCISP软件里有下载保护设置,即需要将P1.0和P1.1两个IO接口同时与GND连接才可以下载程序。一般型号的STC单片机默认是不使用这个保护的,但如STC12C5406等单片机是默认开启保护的。
用AD转,16个电阻串联在一起,每个节点引出线与按键相连,按键另一端为公共端与P1^n相连。然后AD口采集到的电压也不同,就能判别按的是哪个按键,因此只要写AD采样程序就可以了这是STC12C2052AD的例子
/**********************************************************
AD转换
**********************************************************/
void InitADC()
{
P1=0xff
ADC_CONTR|=0x80
delayNOP(200)
P1M0=0x01//这两个寄存器用来设置 P1口四种状态,每一位对应一个P1引脚 ,按状态组合 *** 作
P1M1=0x01//设置P1.0为开漏状态
delayNOP(200)
}
uint ADC()
{
ADC_DATA = 0//清除结果
ADC_CONTR = 0x60 //转换速度设置 0x60 最快速度
ADC_CONTR = 0xE0 //1110,0000 清 ADC_FLAG, ADC_START 位和低 3 位
ADC_CONTR =0xe0
delayNOP(200)//使输入电压达到稳定
ADC_CONTR = 0xe8 //1110,1000 令 ADCS = 1, 启动A/D转换,
while (1) //等待A/D转换结束
{
if (ADC_CONTR &0x10) //0001,0000 测试A/D转换结束否
{ break}
}
ADC_CONTR =0xe0 //1110,0111 清 ADC_FLAG 位, 关闭A/D转换,
delayNOP(400)
return ADC_DATA //返回 A/D 10 位转换结果
}
void ADC_to_key()//ADC数据转换按键信号
{
V=ADC()
。。。
。。。
。。。你自己完成咯
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)