历史上的今天
今天是:2025年03月10日(星期一)
2021年03月10日 | 基于AVR单片机Atmega16的ADC采集数码管显示仿真程序
2021-03-10 来源:eefocus
电路图

用到的数码管是7SEG-MPX4-CC。
程序代码
#include #include #define uchar unsigned char #define uint unsigned int flash char led_7[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; flash char position[4] = {0xe0, 0xd0, 0xb0, 0xf0}; char ad[4]; //数码管显示函数 void display() { char i; for (i = 0; i < 4; i++) { PORTD = position[i]; if (i == 3) { PORTA .6 = 0; } PORTC = led_7[ad[i]] + 0x80; delay_ms(2); PORTA .6 = 1; } } //处理ADC数据 void progress(uint data) { char i; for (i = 0; i < 4; i++) { ad[3 - i] = data % 10; data = data / 10; } } // ADC数据采集 uint mega16_ad() { uint addata; PORTA = 0xfe; // PA0设为输入 DDRA = 0xfe; SFIOR = 0; //连续转换模式 ADMUX = 0x00; // ADC0单端输入 AVCC参考电压 ADCSRA = 0xC0; //启动AD转换, 并开始转换 while ((ADCSRA & 0x10) == 0); //等到转换结束 addata = ADCL; //读取ADC数据 低位 addata = addata + ADCH * 256; //读取ADC数据 低位 + 高位 ADCSRA |= 0x10; addata = addata / 1024.0 * 5000; //计算电压 return addata; } //主函数 void main() { uint ada; PORTC = 0xff; //初始化PC口 DDRC = 0xff;//设置PC口为输出 PORTA = 0xff; DDRA = 0xff;//设置PA口为输出 PORTD = 0xff; DDRD = 0xff; //设置PD口为输出 while (1) { ada = mega16_ad(); progress(ada); display(); } }
上一篇:我准备自己做一个卫星
史海拾趣
|
在特定应用中,设计要求可能 需要系统的开关模式电源比普通电源能更迅速地提供输出。图 1 显示了这种电源的自举(或称启动)电路。在开关模式电源的 PFC(功率因数校正)预稳压器中,电路的 PWM(脉宽调制器),即 IC1,从辅助绕组 L1 ...… 查看全部问答> |
|
ARM9 2440读取SHT11失败,全是0XFF,原因会有哪些呢? ARM9 2440读取SHT11失败,全是0XFF;2440发送命令后,在第九个时钟没有检测到ACK信号。 硬件上应该是没有问题的,同一个传感器在其他处理器平台上正常运行。 软件上哪些地方容易出问题? 现在打算从头开始检查,我怎么样来测SHT11已经对处理器的 ...… 查看全部问答> |
|
STACK SEGMENT STACK DB 1024 DUP(0) STACK ENDS DATA SEGMENT TABF DW 262,350,352,350,441,393,350,393,441 DW & ...… 查看全部问答> |
|
我写了一个串口程序,在模拟器PPC2003上调试是可以的,能正常的打开串口并收发数据,但部署到真机(WINCE5)串口都打不开,代码如下: try &n ...… 查看全部问答> |
|
//---------TCPMP如何指定从哪帧开始播放,播放到哪帧停止-------- TCPMP如何指定从哪帧开始播放,播放到哪帧停止. 在我的项目中,使用的视频文件是AVI格式的,打算用TCPMP实现,要准确的定位播放起始帧与结束帧,并播放从起始帧到结束帧之间的视频段。 跪求高人指点。… 查看全部问答> |
|
用pl2303做了一个USB转串口,可是电脑怎么都检测不到。只有当我将万用表接到17脚和地时,电脑才能检测到。查了好几天了,请各位老师帮我看看。D:\\网址\\44.jpg… 查看全部问答> |
|
刚去公司的时候BOSS就和我讲,做逻辑的难点不在于RTL级代码的设计,而在于系统结构设计和仿真验证方面。目前国内对可综合的设计强调的比较多,而对系统结构设计和仿真验证方面似乎还没有什么资料,这或许也从一个侧面反映了国内目前的设计水平还比 ...… 查看全部问答> |
|
我刚接触到TI公司的2000系列DSP,我装好CCS2000后,启动SetUpCCS2000后,在configurition里我选择的是F2812Device Sumilator,保存后启动CCS,可在打开和新建工程的时候都有问题,具体的时在新建工程的对话框里Target一栏里没有可选项,所以就不能建 ...… 查看全部问答> |




