完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "UART.H" // 包含IAP15W4K58S4寄存器定义文件
#define VCC 5.06 // 存放用万用表实测的单片机供电电压 ***it up=P2^1; ***it dn=P2^2; ***it key=P2^3; unsigned int dat=39,addr=0; void DAC(unsigned char addr,bit rng,unsigned char dat); void init_5620(); unsigned int ADC_P11() { unsigned int i; // 用于软件延时程序 unsigned char status; // 用于判断AD转换结束的标志 unsigned int AD_Dat=0; // 10位AD转换值 unsigned char Tmp; // 临时变量用于将AD转换出来的2个字节合成一个字节 ADC_CONTR|=0x80; // 开AD转换电源,第一次使用时要打开内部模拟电源 for (i=0;i<10000;i++); // 适当延时等待AD转换供电稳定,一般延时1ms以内即可,为了缩短AD // 调用时间,可把这2行剪切到主程序中去。 P1ASF|=0x02; // 选择P1.1作为AD转换通道,0x02= 0000 0010 ADC_CONTR=0xE1; // 选择P1.1作为AD转换通道,最高转换速度,清转换完成标志。 for (i=0;i<1000;i++); // 如果是多通道模拟量进行AD转换,则更换AD转换通道后要适当延时, ADC_CONTR|=0x08; // 启动 A/D 转换,ADC_START=1。 status=0; while(status==0) // 等待AD转换结束。 { status=ADC_CONTR&0x10; // 判断ADC_FLAG是否等于1,0x10=0001 0000B。 } ADC_CONTR&=0xE7; // 将ADC_FLAG清0, 0xE7=1110 0111B,ADC_FLAG=0,ADC_START=0。 AD_Dat = ADC_RES; // 默认高字节高8位。 AD_Dat <<= 2; Tmp = ADC_RESL; // 默认低字节低2位。 Tmp &= 0x03; // 屏蔽无关位 AD_Dat |= Tmp; // 高低字节拼接成一个10位数。 return AD_Dat; } unsigned int scan() { if(up==0) { dat+=1; if(dat>=255) dat=255; while(!up); } if(dn==0) { dat-=1; if(dat<=1) { dat=1; } while(!dn); } return dat; } unsigned int zidong() { float vo; unsigned int temp; temp=ADC_P11(); vo=VCC*temp/1023; printf("%.3f ",vo); vo=(int)vo; if(vo==2) { dat=78; } if(vo==3) { dat=117; } if(vo>5) { dat=1; } return dat; } void main(void) { unsigned int s=0; UART_init(); // 串口初始化9600/22.1184MHz init_5620(); //初始化5620 while(1) { if(key==0) { s=s+1; if(s==2) {s=0;} } switch(s) { case 0:DAC(0,0,zidong()); break; case 1:DAC(0,0,scan()); break; default:s=0;break; } delay500ms(); } } |
|
相关推荐
1个回答
|
|
这种类似模块化的程序且自定义H文件别人看不明白,自己慢慢找问题吧。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
280 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1083 浏览 0 评论
846 浏览 0 评论
886 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
869 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11824 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 12:57 , Processed in 0.594574 second(s), Total 72, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号