实验1: 最简单的八路跑马灯
本例实验主要用到了延时子程序,clr,lcall,ajmp
指令, 通过轮流点亮p1.0 …..P1.7
实现效果。用户可以通过此程序的学习, 初步掌握单片机的IO端口操作。 练习1:
怎样把延时的时间改为更短, 或者更长? 练习2:
怎样用P0,P2,P3端口来操作? 练习3:
怎样实现不同的跑马花样? ;实验1最简单的8路跑马灯。用一条8PIN的数据排线把CPU部份的P1口 ;(JP44)连接到八路指示灯部份的JP32可以看到8路灯轮流闪烁 ;******************************************************************************** ;* 日期: 2007-3-25 * ;* 版本: 3.0 * ;* 作者: 深圳学林电子有限公司 专业8051单片机教程站 * ;* 邮箱: sxj1974@163.com * ;* 网站: http://www.51c51.com http://www.8951.com 更多例程请登陆网站 * ;******************************************************************************** ;* 硬件:此程序在本公司xlisp系列单片机实验仪运行通过 * ;******************************************************************************** ;* 【版权】 Copyright(C)深圳学林电子有限公司 www.51c51.com All Rights Reserved * ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! * ;******************************************************************************** org 0000h ;开始 ajmp loop org 0080h ;到0030h处避开00-30的敏感地址 loop: mov p1,#0ffh;关闭所有灯 clr p1.0 ;点亮灯p1.0 lcall delay ;延时一段时间? clr p1.1 ;点亮灯p1.1 lcall delay clr p1.2 ;点亮灯p1.2 lcall delay clr p1.3 ;点亮灯p1.3 lcall delay clr p1.4 ;点亮灯p1.4 lcall delay clr p1.5 ;点亮灯p1.5 lcall delay clr p1.6 ;点亮灯p1.6 lcall delay clr p1.7 ;点亮灯p1.7 lcall delay AJMP LOOP;到最开始loop处重新运行 delay: mov r5,#20 ;延时。 d1: mov r6,#40 d2: mov r7,#248 djnz r7,$ djnz r6,d2 djnz r5,d1 ret end
接线方法:
用一条8PIN的数据排线把CPU部份的P1口(JP44)连接到八路指示灯部份的JP32 接线图以及运行瞬间的照片(可以看到8路指示灯轮流点亮)

|