* Copyright (c) 2002-2005 STMicroelectronics
*/
#include "stm8s105c4.h"
_Bool LED1 @PA_ODR:6 //定义PA.6输出寄存器为LED1
_Bool Beep @PD_ODR:4 /梁晌/定义橡滚锋PD.4输出寄存器为蜂鸣器备绝
_Bool S1 @PD_IDR:2 //定义PD.2输入寄存器为按键
//I/O初始化
void GPIO_Init(void)
{
PA_DDR = 0x40//PA.6推挽输出
PA_CR1 = 0x40
PD_DDR = 0x10//PD.2上拉输入 、PD.4推挽输出
PD_CR1 = 0x14
}
main()
{
GPIO_Init()
while(1)
{
if(S1==0) //如果有按键则灯亮,蜂鸣器响
{
LED1 = 1
Beep = 1
}
else
{
Beep = 0
LED1 = 0
}
}
}
ADC1的基本的单次转换void InitADC()
{
ADC1->CR1 = 0x20 //漏告分频系数为4 单次转换模式 先不启动ADC转换
ADC1->CR2 = 0x08 //非外部触发 数据右对齐 禁止扫描模式
ADC1->CSR = 0x03 //禁止转换结束中断 设置转换通道为AIN3
ADC1->TDRL|= 0x08 //禁止AIN3施密特触发器功能
ADC1->CR1 |= 0x01 //第一返虚明次写1是从低功耗模式唤醒
}
unsigned int GET_AD()
{
unsigned int temph=0
unsigned char templ=0
ADC1->CR1 |= 0x01 //启誉咐动AD转换
while(!(ADC1->CSR&0x80)) //等待转换结束
ADC1->CSR &= ~0x80 //清除转换结束标志
templ = ADC1->DRL
temph = ADC1->DRH //读出AD转换结果
temph = ConTOINT(temph,templ)
return(temph)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)