单片机
返回首页

AT90S8515单片机对LED数码显示管的控制设计

2020-06-07 来源:elecfans

一、电路

附图是AT90S8515控制数码显示的电路略图(图中只画出了与数码管接口的电路,其余接线略)。单片机的PBO~PB7接LED共阴数码管的a~h脚,控制段码;单片机的PDO—PD5分别接六只LED数码管DO~D5的共阴极,控制位码。其中PDO~PD5是通过SL-AVR开发实验器上的LED数码管短路块DLED接至数码管DO—D5的。

AT90S8515单片机对LED数码显示管的控制设计

二、字符8右循环移位显示程序

在SL-AVR开发实验器LED上实现字符8右循环移位显示的源程序清单如下:

AT90S8515单片机对LED数码显示管的控制设计

AT90S8515单片机对LED数码显示管的控制设计

第1行表示程序中包含定义AT90S8515特殊功能寄存器的头文件8515def.inc,指明所用器件为AT90S85150接着定义寄存器r16、r22分别为暂存器temp、scndp。在程序前面用伪指令equ为寄存器赋予能帮助编程者识别数据用途的符号,提高了程序的可读性,便于程序的修改,读者也应养成用这种方法编程的习惯。程序中其他语句的功能见注释。


本程序在SL-AVR开发实验器的随机光盘中的文件名为SLAVR731.ASM。


三、编辑、汇编、串行下载和运行

1.编辑、汇编

运行汇编程序wavr.asm,编辑SIJAVR731.ASM。

执行Assemble命令对SLAVR731.ASM程序进行汇编,生成SLAVR731.EEP、SLAVR731.OBJ、SLAVR731.HEX、SLAVR731.LST文件。


2.串行下载和运行

用串行下载线将SL-AVR的C22与AT3接好,将单片机AT90S8515插入锁紧插座并锁紧。将SL-AVR开发实验器与PC机串口连接好,接上电源,开电源,运行串行一F载程序Avl‘Prog,将SLAVR731.


HEX文件下载到SL-AVR开发实验器中的AT90S8515中。按复位键,程序开始运行,符号8从块接至左侧的发光二.极管,因此,程序运行时锁綮插座左侧对应于PD0一PD5输出状态指示的发光二极管也在同时循环显示。


四、修改显示程序练习

1.修改、显示字符

共阴数码管显示0—F,所对应的段码为3FH、06H、SBH、4FH、66H、6DH7DH、07H、7FH、6FH、77H、7CH、39H、5EH、79H、71H、F3H、76H.如欲点亮小数点;则要将最高位高位写为1.$修改显示字符只需修改源程序中的指令$lclitemp,秽’o如要循环显示字符A,则将“lditemp,7f”改成“lditemp,77”。tSL-AVR开发实验器的随机光盘中的SLAVR731.ASM为只读文件。先将其属性改为“正常”《修改文件属性的操作如下:选中待改文件SLAVR731.ASM,从显示框的左边可见文件属性为“只读”。单击鼠标右键,,弹出选择菜单,点击“属性”弹出属性显示框,取消属性显示选择框中只读栏的黑点,按“确定”键,就将SLAVR731.ASM文件的属性改为“正常”了。此时,从显示框的左边可见文件属J为“正常”)。运行汇编程序wavr.a$ni,打开文件SLAV$731.ASM,将指令“lditemp.7f”改成“ldlitemp.‘77”。按第三条进行汇编,串行“下载,并运行程序,显示的字符就改变了。


2.显示2位字符

置显示初值指令“ldiscndp,Ob11()11111”中的二进制数Ob11011111的低6位对应LED数码管的显示。


状态。其O的个数表示显示字符的个数。因此,最简单的方法是修改Ob11011111来改变同时显示的字符数。如要同时显示2位数,可将Ob11011111改成Ob11001111。但应当注意的是,由于数码管DO~D5的a—h直接接到单片机的PBO—PB7,同时显示的位数多了,会增加口线的负载电流,必须考虑单片机的口线驱动能力,故用此法同时显示的位数不宜多。


采用动态扫描的方式显示两位数若干次后,再向右循环显示下两位数,依此类推,则可根据需要同时显示任意位数的字符。


3.改变字符移动的方向

将指令“ldiscndp,Ob11011111”改为“ldiscndp,Ob11111110”,指令“rors.cndp”改为“r1scndp”,便可以将字符移动的方向改成从右向左。


4.改变字符移动的$速度

将指令“lditemp,40”中的立即数40改大,字右到左循环显示。由于SL-AVR中的PDO~PD5用短路符移动的.速度变慢,反之字符移动的速度变快。


以上为同一字符的移动显示,也可以:过程序进行修改,增加查表程序,实现字符O~F交替循环移动,还可以先将欲显示的字符存到指定的显示缓冲区,用查表的方式取出对应的段码,再进行动态显示。


通过以上实验,读者对AVR单片机的指令系统、AVR汇编软件、AVR串行下载软件,以及SL-AVR开发实验器的硬件环境有了进一步的了解,同时熟悉了利用SL-AVR开发实验器随机光盘中提供的程序进行编程实验的方法。


SL-AVR开发实验器随机光盘中的实验程序很多,读者可以自选程序进行实验,通过此法掌握AVR单片机的设计开发方法。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 永不缺相启动运行的电动机控制电路

  • CCFL的工作原理及电子驱动电路解析

  • MT3608构成3.7V转12V的升压电路图

  • 运算放大器IC741的基本工作原理及在电路中的实现方式

  • 基于M66T旋律发​​生器的电路图解析

  • 基于TDA1554的立体声放大器电路

    相关电子头条文章