1 / 20

《 单片机应用技术 》

《 单片机应用技术 》. 电气自动化技术专业. 项目二 数码管并行显示实训. 项目功能 项目知识点与技能点 项目知识准备 项目实施. 【 项目功能 】. 用单片机并行点亮 LED 数码管 控制数码管不同的显示内容 进一步掌握 AVR 单片机的 C 语言编程与调试. 【 项目知识点与技能点 】. 8 段 LED 数码管的显示原理与内部连接 LED 的字形编码、译码的原理 多个数码管动态显示的原理与实现方法. 共阳极. 共阴极. 1 、 LED 数码管的结构和分类. 【 项目知识准备 】. 一、 LED 数码管. 2 、数码管字形编码.

Download Presentation

《 单片机应用技术 》

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 《单片机应用技术》 电气自动化技术专业

  2. 项目二 数码管并行显示实训 • 项目功能 • 项目知识点与技能点 • 项目知识准备 • 项目实施

  3. 【项目功能】 • 用单片机并行点亮LED数码管 • 控制数码管不同的显示内容 • 进一步掌握AVR单片机的C语言编程与调试

  4. 【项目知识点与技能点】 • 8段LED数码管的显示原理与内部连接 • LED的字形编码、译码的原理 • 多个数码管动态显示的原理与实现方法

  5. 共阳极 共阴极 1、LED数码管的结构和分类 【项目知识准备】 一、LED数码管

  6. 2、数码管字形编码 阳1100 0000 1010 0100 阴 0011 1111 0101 1011

  7. 2、数码管字形编码

  8. 二、LED数码管显示方式 • 静态显示,就是指在显示某一个字符时,相应的发光二极管恒定导通或截至。 段选线 位选线

  9. 二、LED数码管显示方式 • 动态显示,是一位一位的地轮流点亮各位数码管,只要轮流速度足够快(每秒轮流50次以上),由于人眼的“视觉暂留”的物性,感觉不到显示器的闪动,所看到的是连续显示一组数字。 并行字型码输入 位选 数码管1亮 数码管2亮 数码管3亮

  10. LED数码管显示方式比较: a.静态显示LED接口 连接方法: 各数码管的公共极(位选线)固定接有效电平,各数码管的字形控制端(段选线)分别由各自的控制信号控制。 优点:LED显示数据稳定,亮度高,程序设计简单,MCU负担小。 缺点 :硬件资源多,耗电量大。 一般仅适用于 显示位数较少的应用场合。 b.动态显示LED接口 连接方法 :各位数码管的字形控制端对应地并在一起,由一组I/O端口进行控制,各位的公共极相互独 立,分别由不同的I/O控制信号控制。 优点: 占用硬件资源少,耗电量小。 缺点: 显示亮度不够稳定,影响因素较多;编程较复杂,MCU负担重。

  11. 三、单个数码管静态显示 • 用AVR的一个I/O口控制共阳极数码管的八个段码。 位选线 段选线 若要显示字码‘1’,PB口则应输出0xF9;PB口则应输出0xFE。

  12. 开始 初始化 送字码‘0’的字型码 延时500ms 送字码‘1’的字型码 延时500ms 流程图:

  13. 参考程序: #include <iom16v.h> #include <macros.h> #include <delay.h> constunsigned char SEG_7[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //共阳极数码管字型码码数组 main() { unsigned char i=0; DDRB = 0xFF; PORTB = 0xFF; while(1) { for(i=0;i<16;i++) //循环16次数码管显示0~F { PORTB = SEG_7[i]; //送字型码到PB口 delay_nms(500); //延时大概500毫秒 } } } 定义在Flash中

  14. 四、数码管并行显示电路原理图 ATmega16单片机的PB口接74HC573的数据输入端,74HC573的数据如输出端接数码管的8位数据端,74HC573的锁存使能接PD4,四位共阳极数码管的选择端分别接PD1、PD0、PC1和PC0。

  15. 流程图: 注意:同一时刻只能有一个数码管被选通,否则多个 数码管将显示同样的内容。

  16. 参考程序: 位选 显示字符 void bx_display(unsigned char bit, unsigned char data) { PORTB=SMG_Conver[data]; // 段码 PORTD|=BIT(4); PORTD&=~BIT(4); switch(bit) //位选 { case 4:PORTD|=BIT(1);delay_nms(1);PORTD&=~BIT(1);break; case 3:PORTD|=BIT(0);delay_nms(1);PORTD&=~BIT(0);break; case 2:PORTC|=BIT(1);delay_nms(1);PORTC&=~BIT(1);break; case 1:PORTC|=BIT(0);delay_nms(1);PORTC&=~BIT(0);break; } }

  17. 参考程序: void main() { DDRB=0xff; //段码并行输出 DDRC=0xff; //位选输出 DDRD=0xff; //位选输出 PORTC=0x03; //位选1、2位 PORTD=0x13; //74HC573使能,位选3、4位 while(1) { bx_display(1,0); //1位显示0 bx_display(2,1); //2位显示1 bx_display(3,0); //3位显示0 bx_display(4,2); //4位显示2 } }

  18. 【举例】 • 利用74LS573 实现数码管的四位显示功能,各小组可在基本功能的基础上,可适当根据兴趣爱好,最终设计出一个完美的项目成果。例如利用有限资源(四位数码管),显示当前年月日。(前移)

  19. 【项目实施】 1、各小组内部进行分工,确定项目内容和实施计划,项目的内容要有创新点。 2、打开AVR Stdio软件建立AVR-ICC项目,编写程序,进行编译(显示内容和形式各小组自行确定)。 3、编译无误,在线调试。使实训箱电源按钮处于关闭状态,IC锁紧座中放入ATmega16单片机,将DC9V/1A电源插头插入电源孔,将USB延长线接头与JTAG硬件仿真器相连接,同时将JTAG仿真器连在实训箱的JTAG接口。 4、接通74LS573芯片锁存使能端PD4,拨码开关在其右侧;接通LED数码管对应的数据端口PB,拨码开关在四位数码管的左侧,作为输出;LED数码管为共阳极,低电平点亮;数码管四个位驱动引脚分别是PC0,PC1,PD0,PD1,拨码开关。 5、按下实训箱电源开关,打开AVRstudio 4与实训箱单片机进行通信,将编译后的文件下载到实训箱单片机中,观察运行结果,运行结果达到实训要求实训完成。 6、实训完成后,切断实训箱电源,将拨动过的拔码开关拨回到原位置,将实训用到的跳线帽拔下,将实训用到的外部接线撤下,将实训用到的器件及连线完好的放回到实训箱储物阁中。 7、完成项目报告,就本组的项目进行总结。

  20. 结 束

More Related