中易网

51单片机 C语言ADC程序怎么写

答案:3  悬赏:30  
解决时间 2021-01-30 11:46
51单片机 C语言ADC程序怎么写
最佳答案
什么单片机?
全部回答
你得具体看你用什么型号ad呀 简易你可以去www.21ic.com去搜索该型号ad的pdf资料, 然后看ad的时序图,你就照着时序操作就行了。 祝你成功,谢谢
typedef unsigned char BYTE; typedef unsigned int WORD; #include "reg51.h" #include "intrins.h" sfr ADC_CONTR = 0xBC; sfr ADC_RES = 0xBD; sfr ADC_LOW2 = 0xBE; sfr P1ASF = 0x9D; sfr P2M0 = 0x96; sfr P2M1 = 0x95; #define ADC_POWER 0x80 #define ADC_FLAG 0x10 #define ADC_START 0x08 #define ADC_SPEEDLL 0x00 #define ADC_SPEEDL 0x20 #define ADC_SPEEDH 0x40 #define ADC_SPEEDHH 0x60 //延时 void Delay(WORD n) { WORD x; while (n--) { x = 5000; while (x--); } } //初始AD寄存器 void InitADC() { P1ASF = 0xff; ADC_RES = 0; ADC_CONTR = ADC_POWER | ADC_SPEEDLL; Delay(2); } //AD转换 BYTE GetADCResult(BYTE ch) { ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START; _nop_(); _nop_(); _nop_(); _nop_(); while (!(ADC_CONTR & ADC_FLAG)); ADC_CONTR &= ~ADC_FLAG; return ADC_RES; } void main() { BYTE temp; P2M1=0; P2M0=0x03; //P2.0和P2.1强推挽 InitADC(); while (1) { temp=GetADCResult(0);//转换P1.0 if(temp>1) P2|=0x03; //P1.0有电压 P2.0和P2.1输出高 else P2&=0xFC; //P1.0无电压 P2.0和P2.1输出低 } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
想买车,信用卡刷首付1万5分期12个月,每个月要
巩义市体育馆东边的小区叫什么
魅蓝手机5怎么录频
梦幻西游手游电脑版ios怎么多开
电脑玩游戏屏幕不对齐
you can die well l held six 是什么意思?
三星s6怎么进recovery模式
学校办卖东西活动,活动主题有哪些?
为什么很多人说吴语好听,我是绍兴人不觉得?
我的小巴西龟眼角长了一个白色的小疙瘩,该怎
gbc理财保险吗?
一座大桥长2400米。1列火车以每分钟900米的速
我有招商银行信用卡想在京东买苹果手机我想问
巧克力NO.02地址在什么地方,想过去办事
电褥子汗与汗蒸房有何不同
推荐资讯
宿州学院每年有多少人因为论文拿不到毕业证
喝水喝的肚子以经很胀了,可是还感觉口渴是怎
丝绸之路西达地中海沿岸国家和地区
直流逆变250焊机,2.5平方国际线内带得动么
我被我男朋友吃的死死的,她也不要我和别的男
在JAVA中怎么实现输入以EOF结束
墙固可以加水吗?
哪些学校考化学的研究生参考教材是,傅献彩
2014年淘宝虚假交易两次2015会清空吗
上个礼拜你家人在做什么?英语作文
户籍不是本地的可以在本地考幼师证吗?
下面哪些物质彼此混合时,特别容易引起火灾
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?