历史上的今天
返回首页

历史上的今天

今天是:2025年06月07日(星期六)

2020年06月07日 | 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单片机的设计开发方法。

推荐阅读

史海拾趣

Hi-Optel Technologly Co Ltd公司的发展小趣事

随着公司规模的扩大和市场份额的提升,C&T开始积极拓展海外市场。通过设立分支机构、参加国际展会等方式,C&T的产品逐渐打入国际市场,赢得了全球客户的认可。同时,C&T还积极与海外企业开展合作,共同推动半导体技术的发展和应用。

D3 Semiconductor公司的发展小趣事

为了更好地拓展市场,D3 Semiconductor与全球知名的电子元件分销商贸泽电子(Mouser Electronics)建立了合作伙伴关系。根据协议,贸泽电子储备了D3 Semiconductor的完整650伏额定电压超结MOSFET产品线,并将其推向全球市场。这一合作不仅加强了D3 Semiconductor在全球市场的竞争力,也为公司带来了更多的商业机会。

All Sensors公司的发展小趣事

All Sensors公司的创始人Dennis被誉为美国硅谷的传奇人物。在70年代,Dennis在硅谷成功发明了全球第一颗压力传感器,这一创新不仅奠定了All Sensors在传感器领域的领先地位,也为整个电子行业带来了新的技术革命。这颗传感器的诞生,标志着All Sensors正式踏上了传感器技术的研发之路,为后续的发展奠定了坚实的基础。

德芯半导体(Doeshare)公司的发展小趣事

作为一家有社会责任感的企业,德芯半导体始终关注社会发展和环境保护。公司积极参与社会公益活动,为当地社区提供力所能及的帮助和支持。同时,公司还注重环保和可持续发展,通过采用环保材料和工艺、推广绿色产品等方式,为保护环境贡献自己的力量。这些举措不仅增强了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

请注意,以上故事框架是基于对德芯半导体公司的有限了解而构建的,并非真实事件的具体描述。如需更详细和准确的信息,请参考公司官方发布的相关资料或进行深入研究。

得倍(DBIC)公司的发展小趣事

在激烈的市场竞争中,倍(DBIC)公司不断优化供应链管理,降低成本,提高效率。公司与全球多家供应商建立了长期稳定的合作关系,确保原材料的稳定供应。同时,倍(DBIC)公司还加强了对生产过程的监控和管理,确保产品质量和交货期。这些措施使倍(DBIC)公司在成本控制和交付能力方面具备了明显的竞争优势。

超音(CY)公司的发展小趣事

随着科技的不断进步,超音意识到技术创新对于公司发展的重要性。因此,公司加大了研发投入,积极引进高端人才,不断推出具有创新性和竞争力的产品。其中,超音的一款高端音响产品凭借其卓越的音质和精美的外观设计,在市场上获得了广泛的好评。此外,超音还积极与其他科技公司合作,共同研发新产品,不断拓宽产品线。

问答坊 | AI 解惑

有没有让色盲者也看的清的红绿灯

能不能设计一个让色盲的人看的清的红绿灯,有什么方法呢…

查看全部问答>

wince 6.0 生成sdk的问题

请问大家一个sdk定制问题 在定制系统时,我选择了开发板给的bsp,编译通过后生成新的sdk时却出现问题。 一般在生成新的sdk时,emulation项中可以设置长、宽的。而我这却是灰色,无法设置。当我编译sdk后安装成功后,在tools-》device emulator ma ...…

查看全部问答>

能不能动态改变已经在初始化时设置了大小的窗体的大小?比如显示视频图像,原来是半屏现在要全屏显示!怎么实现?

能不能动态改变已经在初始化时设置了大小的窗体的大小?比如显示视频图像,原来是半屏现在要全屏显示!怎么实现? 通过重新调用MoveWindow( )函数来重新设置大小吗?…

查看全部问答>

关于上位机与430单片机的串口通信问题

     我现在想实现上位机与430单片机串口通信,单片机接受到pc机命令后就执行相应的命令,上位机程序通过vb或者vc实现。那位有相关的程序代码,或者清晰的思路,请多多指教   我是新手,很多问题都不懂,先谢谢各 ...…

查看全部问答>

新手请教LCD1602的光标移动问题

新手请教LCD1602的光标设置的问题,谢谢了 想实现以下功能:显示四个数值,光标停在第一个数下面闪动,按1号键右移一位,光标在第二位数位置闪,按2号键光标位置数值加1。   定位到第一个数下面并让数字闪动实现了,但是光标移位怎么都 ...…

查看全部问答>

基于单片机的电子抢答器的程序设计问题

执行下列程序,输出不对,显示乱码!哪位大侠帮忙改正一下我QQ601694858 OK EQU 20H ;抢答开始标志位RING EQU 22H ;响铃标志位 DATA0 EQU 36H ;抢答按键口数据存放地址 ORG 0000HAJMP MAINORG 0003H AJMP INTT0ORG 000BHAJMP T0INTORG 001BHAJMP T ...…

查看全部问答>

北京有没有好的pcb制版厂?

北京有没有好的pcb制版厂?…

查看全部问答>