单片机数字电流表设计(ATmega16单片机)

上传人:龙*** 文档编号:1170315 上传时间:2017-06-01 格式:DOC 页数:17 大小:1.60MB
返回 下载 相关 举报
单片机数字电流表设计(ATmega16单片机)_第1页
第1页 / 共17页
单片机数字电流表设计(ATmega16单片机)_第2页
第2页 / 共17页
单片机数字电流表设计(ATmega16单片机)_第3页
第3页 / 共17页
单片机数字电流表设计(ATmega16单片机)_第4页
第4页 / 共17页
单片机数字电流表设计(ATmega16单片机)_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《单片机数字电流表设计(ATmega16单片机)》由会员分享,可在线阅读,更多相关《单片机数字电流表设计(ATmega16单片机)(17页珍藏版)》请在金锄头文库上搜索。

1、 11.1 设计要求完成一台数字电流表 采用 ATmega16 作为主控芯片, 并用数码管显示结果电流表量程为 0A1A测量结果用四位数字显示, 如 0123测量结果超限(大于等于 1A)时, 数码管显示 EEEE1.2 课程设计目的(1)通过本次课程设计加深对单片机课程的全面认识和掌握。 (2)掌握了通用 I/O 口输出结构的设置和数码管显示器的应用。 (3) 通过完成一个包括电路设计和程序开发的完整过程, 使自身了解开发单片机应用系统的全过程, 强化巩固所学知识, 为以后的学习和工作打下基础。 (4)进一步熟悉和掌握单片机的结构和工作原理。 (5)锻炼团队分工合作与协调能力。 (6) 通过

2、这次课程设计, 掌握以单片机为核心的电路设计的基本方法和技术。 (7)通过实际程序的设计和调试, 逐步掌握模块化程序设计的方法和调试技术。 2.1 系统硬件框图 22.2 电流表工作原理由于通常所说的电流表是指灵敏电流计, 其量程太小不能直接测量电流。 所以要想得到一个量程较大的电流表需要将一个理想电压表改装而成。 用一个内阻无穷大的电压表并联分流电阻, 待测电流流过电阻 R, R 和 U 即为已知, 则根据欧姆定律 U=I R, I 就是电流表测得的电流值, 电压值通过 AD 转换器将模拟电压信号转换为数字电压信号, 传送到 ATmega16 中, 单片机输出到 LED 数码管显示读数。 2

3、.3 LED 动态显示器接口及显示方式单片机中通常使用 7 段 LED 构成字型“8” , 另外, 还有一个小数点发光二极管, 以显示数字、符号及小数点。 这种显示器有共阴极和共阳极两种, 如图。 发光二极管的阳极连在一起的称为共阳极显示器, 阴极连在一起称为共阴极显示器。 一位显示器由 8 个发光二极管组成, 其中, 7 个发光二极管构成字型 8 的 3各个笔画, 另一个小数点为 dp 发光二极管。 当在某段发光二极管上施加一定的正向电压时, 该段笔划即亮;不加电压则暗。 为了保护各段 LED 不被破坏, 需外加限流电阻。 以共阴极 LED 为例, 如图, 各 LED 公共阴极 K0 接地。

4、 若向各控制端 a、bg、dp 顺次送入 11100001 信号, 则该显示 7字型。 在多位 LED 显示时, 为了简化电路, 降低成本, 将所有位的段选线并联在一起, 由一个 8 位 I/O 口控制。 而共阴(共阳)极公共端 K 分别由相应的 I/O 线控制, 实现各位的分时选通。 如14 图所示为 5 位共阴极动态显示接口电路。 其一个显示正负, 其余四个显示电流值。 4五位 LED 动态显示接口电路由于 4 位 LED 所有段选线皆由一个 8 位 控制, 因此, 在OI每一瞬间, 4 位 LED 会显示相同的字符。 要想每位显示不同的字符, 就必须采用扫描方流点亮各位 LED, 即在每

5、一瞬间只使某一位显示字符。 在此瞬间, 段选控制 口输出相应字符段选码OI, 而位选则控制 口在该显示位送入选通电平为共阴, 故应送低OI电平。 以保证该位应显示相应字符。 如图为 ATmega16 控制的 4 位共阴极 LED 动态显示接口电路。 5LED 结构图八段 LED 数码管字符型字段编码表2.4 ATmega16 单片机 6ATmega16 系列单片机VCC 电源正GND 电源地端口 A(PA7.PA0) 端口 A 做为 A/D 转换器的模拟输入端。 端口A 为 8 位双向 I/O 口, 具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特性, 可以输出和吸收大电流。 作为输入

6、使用时, 若内部上拉电阻使能, 端口被外部电路拉低时将输出电流。 在复位过程中, 即使系统时钟还未起振, 端口 A 处于高阻状态。 端口 B(PB7.PB0) 端口 B 为 8 位双向 I/O 口, 具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特性, 可以输出和吸收大电流。 作为输入使用时, 若内部上拉电阻使能, 端口被外部 7电路拉低时将输出电流。 在复位过程中, 即使系统时钟还未起振,端口 B 处于高阻状态。 端口 B 也可以用做其他不同的特殊功能.端口 C(PC7.PC0) 端口 C 为 8 位双向 I/O 口, 具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特性, 可

7、以输出和吸收大电流。 作为输入使用时, 若内部上拉电阻使能, 端口被外部电路拉低时将输出电流。 在复位过程中, 即使系统时钟还未起振,端口 C 处于高阻状态。 如果 JTAG 接口使能, 即使复位出现引脚 PC5(TDI)、 PC3(TMS)与 PC2(TCK)的上拉电阻被激活。 端口 C 也可以用做其他不同的特殊功能.端口 D(PD7.PD0) 端口 D 为 8 位双向 I/O 口, 具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特性, 可以输出和吸收大电流。 作为输入使用时, 若内部上拉电阻使能, 则端口被外部电路拉低时将输出电流。 在复位过程中, 即使系统时钟还未起振, 端口 D

8、 处于高阻状态。 端口 D 也可以用做其他不同的特殊功能.RESET 复位输入引脚。 持续时间超过最小门限时间的低电平将引起系统复位。 门限时间见 P36Table 15。 持续时间小于门限间的脉冲不能保证可靠复位。 XTAL1 反向振荡放大器与片内时钟操作电路的输入端。 XTAL2 反向振荡放大器的输出端。 AVCC AVCC 是端口 A 与 A/D 转换器的电源。 不使用 ADC 时, 该引脚应直接与 VCC 连接。 使用 ADC 时应通过一个低通滤波器与 VCC 8连接。 AREF A/D 的模拟基准输入引脚。 3、主程序及相应模块主程序代码void main(void)DDRA=0x0

9、f;PORTA=0x0f;DDRC=0xff;PORTC=0x00;TCCR0=0x0B;TCNT0=0x00;OCR0=0x7C;TIMSK=0x02;ADMUX=0x47;SFIOR&=0x1F;SFIOR|=0x60;DSCSRA=0xAD;#asm(sei) /使能全局中断while(1)if(time_2ms_ok) 9display();time_2ms_ok=0;主流程图子程序代码unsigned char i;for(i=0;i#define uchar unsigned char#define uint unsigned intflash unsigned char 12le

10、dshow11=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x5F,0x79;flash unsigned char position6=0xfe,0xfd,0xfb,0xf7;/数码管位选unsigned char dis_buff4=0,0,0,0,posit;bit time_2ms_ok;void adc_to_disbuffer(unsigned int adc)unsigned char i;for(i=0;i=1)PORTA|=0x0f;PORTC=ledshow11;elsePORTA|=0x0f;PORTC=ledshowdis

11、_buffposit;if(posit=3)PORTC|=0x80;PORTA&=positionposit;if(+posit=4)posit=0;/主程序 14void main(void)DDRA=0x0f;PORTA=0x0f;DDRC=0xff;PORTC=0x00;TCCR0=0x0B;TCNT0=0x00;OCR0=0x7C;TIMSK=0x02;ADMUX=0x47;SFIOR&=0x1F;SFIOR|=0x60;DSCSRA=0xAD;#asm(sei) /使能全局中断while(1)if(time_2ms_ok)display();time_2ms_ok=0; 15 16 17

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 大学论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号