首页 > 应用 > 单片机应用
[导读]
#include #include sfr P1_ADC_EN = 0x97; //A/D转换功能允许寄存器sfr ADC_CONTR = 0xC5; //A/D转换控制寄存器sfr ADC_DATA = 0xC6; //A/D转换结果寄存器sfr P1M0=0x91;sfr P1M1=0x92; #define uchar

#include
#include
sfr P1_ADC_EN = 0x97; //A/D转换功能允许寄存器
sfr ADC_CONTR = 0xC5; //A/D转换控制寄存器
sfr ADC_DATA = 0xC6; //A/D转换结果寄存器
sfr P1M0=0x91;
sfr P1M1=0x92;
#define uchar unsigned char ;
#define uint unsigned int ;
void delay(uchar delay_time) // 延时函数
{
uchar n;
uint m;
for (n=0;n {
for(m=0;m<10000;m++);
}
}

uchar get_AD_result(uchar channel)
{
uchar AD_finished = 0; // 存储 A/D 转换标志
ADC_DATA = 0;
ADC_CONTR = channel; // 选择 A/D 当前通道
delay(1); //使输入电压达到稳定
ADC_CONTR |= 0x08; //0000,1000 令 ADC_START = 1, 启动A/D 转换
AD_finished = 0;
while ( AD_finished == 0 ) // 等待A/D 转换结束
{
AD_finished = (ADC_CONTR & 0x10); //0001,0000, ADC_FLAG ==1测试A/D转换结束否
}
ADC_CONTR &= 0xF7; //1111,0111 令 ADC_START = 0, 关闭A/D 转换,
return (ADC_DATA); // 返回 A/D 转换结果
}

void main()
{
P1 = P1 | 0x03; // 0000,0011,P1.0,P1.1为 A/D 转换,即通道0与1
P1_ADC_EN = 0x03; //0000,0011, P1 的P1.0,P1.1设置为 A/D 转换输入脚
// 断开P1.0,P1.1 内部上拉电阻
while(1)
{
get_AD_result(0);
delay(200);
get_AD_result(1);
delay(200);
}
}

本文引用地址: http://www.21ic.com/app/mcu/201806/765033.htm

换一批

延伸阅读

[真心话] 一个实例简单明了告诉你为什么要用RTOS

一个实例简单明了告诉你为什么要用RTOS

对于搞单片机的特别用8051系列工程师来说,谈到单片机的RTOS,很多时候会问一句:“为什么要用RTOS?单片机就这一点资源,使用RTOS能保证效率吗?”......

关键字:单片机 RTOS

[真心话] 漫漫电子工程路:尝百鲜之后,我还是如此钟情于单片机

漫漫电子工程路:尝百鲜之后,我还是如此钟情于单片机

现在想起来,当时的情形还历历在目。当时工作非常艰辛,累得我是满地找牙。记得进厂的第一天,就加班通霄,以后天天晚上加班至12点,早上7点起床。......

关键字:电子工程师 单片机

[真心话] 单片机大师郭天祥的大学六年,看看与你的有何不同?

单片机大师郭天祥的大学六年,看看与你的有何不同?

在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......

关键字:单片机 郭天祥
条评论

我 要 评 论

网友评论

热门关键词

技术子站

更多

项目外包

更多

推荐博客