完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
#include
#define ADC_POWER 0x80 //ADC power control bit #define ADC_FLAG 0x10 //ADC complete flag #define ADC_START 0x08 //ADC start control bit #define ADC_SPEEDLL 0x00 //420 cLOCks #define ADC_SPEEDL 0x20 //280 clocks #define ADC_SPEEDH 0x40 //140 clocks #define ADC_SPEEDHH 0x60 //70 clocks #define ADC_CH1 0x01 //选择通道1 typedef unsigned char u8; ***it BEEP = P1 ^ 0; //置1则响 void delay_2ms(unsigned long int time) //2ms的基 { unsigned long int i; for (i = 0; i < time * 100; i++); } void UART1_Init() { SCON = 0x50; EA = 1; ES = 1; TR1 = 1; TMOD = 0x20; TH1 = 0xfd; TL1 = 0xfd; } void Uart1_ISR() interrupt 4 { ES = 0; if (TI == 1) // 如果TI=1,则说明中断是由发送完成引发的 { TI = 0; } else if (RI == 1) // 如果RI=1,则说明中断是由发送完成引发的 { RI = 0; } ES = 1; } void ADC_Init() { P1ASF = 0xff; //Open 8 channels ADC function ADC_RES = 0; //Clear previous result ADC_CONTR = ADC_POWER | ADC_SPEEDLL; delay_2ms(1); //ADC power-on and delay } u8 GetADCVal(u8 ch) { ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START; while (!(ADC_CONTR & ADC_FLAG));//Wait complete flag ADC_CONTR &= !ADC_FLAG; //Close ADC return ADC_RES; //Return ADC result } //------------------------------------------------------------------------- void main() { BEEP = 0; UART1_Init(); ADC_Init(); while (1) { SBUF = GetADCVal(1); delay_2ms(100); } } |
|
|
|
|
只有小组成员才能发言,加入小组>>
3038 浏览 0 评论
800浏览 1评论
1048浏览 0评论
823浏览 0评论
1005浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 10:41 , Processed in 0.537403 second(s), Total 74, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
6336
