跑马灯--动态心形(汇编语言)

合集下载

爱心跑马灯课程设计

爱心跑马灯课程设计

爱心跑马灯课程设计一、课程目标知识目标:1. 学生能理解跑马灯的基本原理,掌握跑马灯电路的搭建方法。

2. 学生能运用所学的物理知识,分析跑马灯电路中的电流、电压和电阻的关系。

3. 学生了解爱心跑马灯的设计理念,将物理知识与实际应用相结合。

技能目标:1. 学生通过动手实践,提高电路搭建和调试的能力。

2. 学生能运用团队协作,共同解决问题,提高沟通与协作能力。

3. 学生通过制作爱心跑马灯,培养创新思维和动手制作的能力。

情感态度价值观目标:1. 学生在课程中培养对物理学科的兴趣,激发学习的积极性。

2. 学生通过爱心跑马灯的制作,体验科技与生活的联系,增强社会责任感。

3. 学生在团队合作中学会关心他人,培养关爱社会的情感。

本课程针对的学生特点为:好奇心强,喜欢动手实践,对物理现象有较高的兴趣。

课程性质为实践性较强的综合实践活动课程。

在教学过程中,要求教师注重引导、启发学生思考,关注学生的个体差异,鼓励学生积极探究、合作交流。

通过本课程的学习,期待学生在知识、技能和情感态度价值观方面取得具体的学习成果,为后续教学设计和评估提供依据。

二、教学内容本课程依据课程目标,结合教材相关章节,组织以下教学内容:1. 跑马灯原理介绍:讲解跑马灯电路的基本工作原理,包括电路组成、电流方向、LED灯的闪烁原理等。

- 相关教材章节:第五章第二节“简单电路的组成与原理”。

2. 电路搭建与调试:指导学生动手搭建跑马灯电路,学会使用万用表进行电路测试和调试。

- 相关教材章节:第五章第三节“电路的搭建与测试”。

3. 电流、电压和电阻的关系:分析跑马灯电路中电流、电压和电阻的变化规律,理解物理量的相互关系。

- 相关教材章节:第四章“电流、电压和电阻”。

4. 爱心跑马灯设计与制作:引导学生运用所学的电路原理,设计并制作具有创意的爱心跑马灯。

- 相关教材章节:第六章“电子制作实践”。

5. 团队合作与展示:学生分组合作,共同完成跑马灯制作,并进行成果展示。

51单片机实用教程入门之跑马灯

51单片机实用教程入门之跑马灯

MCS-8051 单片机实用教程深圳伟凡数码 QQ:59059381上一节讲了 KEIL 软件的基本使用, 本节开始学习编程,编写第一个程序,如果从没学过的朋友不需要深入了解,只 要按照下面写出第一个程序。

好, 就来试试,很有意思的。

这里主要讲些技巧, 而不是专门的 C 语言,如过想学习更深入 的 C 语言, 请参考相关 C 语言书籍。

前面我们已经讲了怎样建立文件,这里就不多讲了。

按照下面动手写下面程序,当写好后, 我们就可以进行编译了, 点工具栏上的按钮或者 按键盘的功能键 F7 开始编译了,在最下面一个白色窗口显示编译结果, 0 Error(s)表示没有错误,正确的通过编译,0 Warning 表示 0 警告,这里 如果有 1 个或多个警告,并不影响程序的正确编译, 只是表明程序有多余的没有应用的程序。

下面表示程序已经正确的通过了. 如果你的也是这样的, 那就恭喜你成功了。

下面我们就来说说这个程序的基本知识,要记住的, a. 符号// 后面表示注释部分,或者程序的说明部分, 比如上面的程序名称, 日期等 b. /* */ 这个也是表示注释部分. 注意, 注释部分是不被编译的,注释是方便我们更能理解程序 c . #include<stdio.h> 这个表示头文件,表示我们要用到的函数或者定义,由#include<头文件名> 组成,编写规则头文件MCS-8051 单片机实用教程存深圳伟凡数码 QQ:59059382后面不能 有分号" ; ". #include<reg51.h> 也是头文件, 这是我们 51 单片机的头文件, 定义了单片机的特殊功能寄器的定义,我们可以打开头文件查看, 方法是: 将鼠标移动到文件名上, 点鼠标右键,出现以下菜单,点击蓝色部 分,这样就打开了 51 头文件。

打开 51 文件之后, 我们看到了对 51 单片机的端口定时器中断等进行了定义,想要了解含义,去看看单片机的资料, 这里不多讲。

汇编语言实现led灯的跑马灯

汇编语言实现led灯的跑马灯

汇编语⾔实现led灯的跑马灯led实验1.看原理图看设备⼯作的原理(可能需要阅读芯⽚⼿册),看设备与cpu的连接关系GPIO具有输⼊输出功能。

输⼊:cpu想知道io引脚是⾼电平还是低电平那么就是输⼊⽅式输出:cpu想控制io引脚为⾼电平还是低电平那么就是输出⽅式跟电流的⽅向没有任何关系2. cpu的相关章节GPJ2CON control是配置这个引脚是什么功能GPJ2有8个引脚,每个引脚由con寄存器中的4个位进⾏配置GPJ2DAT 如果cpu要输出⾼电平或者低电平,就需要设置该寄存器,只有8位有效When the port is configured as input port, the correspondingbit is the pin state. When the port is configured as outputport, the pin state is the same as the corresponding bit.When the port is configured as functional pin, the undefinedvalue will be read.当配置为输⼊模式的时候,dat寄存器中的某⼀位的值由引脚设置,引脚是⾼电平是,对应的位为1,引脚为低电平时,对应的位为0当配置为输出模式的时候,dat寄存器中的某⼀位控制引脚的电平,对应的位为1时,对应的引脚输出⾼电平,对应的位为0时,对应的引脚输出为低电平其他功能模式时,读到的值是未定义的。

@gec210 light first led.globl _start_start:ldr r0,=0xe0200280mov r1,#1<<4str r1,[r0] @config pin0 output modemov r1,#0str r1,[r0,#4] @output low levelb . @same as while(1);arm-linux-gcc -c led.S -o led.o //编译不链接arm-linux-ld -Ttext 0x30008000 led.o -o led.elf //链接指定代码段起始位置arm-linux-objcopy -O binary led.elf led.bin //⽣成⼆进制执⾏⽂件arm-linux-objdump -D led.elf > led.dis //⽣成反汇编代码uboot的⼏个常⽤命令printenv 打印显⽰环境变量ipaddr=192.168.1.4 //开发板的ipserverip=192.168.1.2 //tftp服务器的ip设置为各⾃的ip,只是设置到内存,掉电就没有setenv ipaddr 192.168.1.xsetenv serverip 192.168.1.xsaveenv //保存到flash中,再次启动后为刚刚设置的值ping //单向的,只能从开发板ping电脑alive表⽰⽹络是通的,not alive表⽰⽹络不通tftp 30008000 led.bin //下载⼆进制⽂件到内存0x30008000地址go 30008000 //跳转到0x30008000运⾏程序@gec210 light first led.globl _start_start:ldr r0,=0xe0200280ldr r1,=(1<<0 | 1<<4 | 1<<8 | 1<<12)str r1,[r0] @config pin0-pin3 output modemov r1,#0str r1,[r0,#4] @output low levelb . @same as while(1);简单的makefileAPP=led$(APP).bin:$(APP).oarm-linux-ld -Ttext 0x30008000 $^ -o $(APP).elf arm-linux-objcopy -O binary $(APP).elf $@ arm-linux-objdump -D $(APP).elf > $(APP).dis cp $@ /home/gec/tftp/%.o:%.sarm-linux-gcc $^ -c -o $@%.o:%.Sarm-linux-gcc $^ -c -o $@%.o:%.carm-linux-gcc $^ -c -o $@clean:@rm -f $(APP).bin $(APP).elf $(APP).dis *.o四个灯同时点亮或者同时熄灭循环闪烁@gec210 light first led.globl _start_start:ldr r0,=0xe0200280ldr r1,=(1<<0 | 1<<4 | 1<<8 | 1<<12)str r1,[r0] @config pin0-pin3 output mode loop:mov r1,#0str r1,[r0,#4] @output low levelbl delaymov r1,#0xfstr r1,[r0,#4]bl delayb loopb . @same as while(1);delay:mov r4,#0xff00000delay1:subs r4,r4,#1bne delay1mov pc,lr#define GPJ2CON (unsigned long *)0xe0200280unsigned long *p = (unsigned long *)0xe0200280;p练习:第1个灯到第4个灯依次点亮,第4个灯到第1个灯依次熄灭,循环。

STM32汇编语言 左右跑马灯

STM32汇编语言  左右跑马灯

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;; STM32 LED左右跑马灯实验;;8个LED接在PE口(PE[0..7]);;LED先向右跑,跑完再向左跑,不停左右跑动;;2011-5-3 by 追梦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BIT6 EQU 0X00000040GPIOE EQU 0X40011800 ;GPIOE 地址GPIOE_CRL EQU 0X40011800 ;低配置寄存器GPIOE_CRH EQU 0X40011804 ;高配置寄存器GPIOE_ODR EQU 0X4001180C ;输出,偏移地址0Ch GPIOE_BSRR EQU 0X40011810 ;低置位,高清除偏移地址10h GPIOE_BRR EQU 0X40011814 ;清除,偏移地址14h IOPEEN EQU BIT6 ;GPIOE使能位RCC_APB2ENR EQU 0X40021018STACK_TOP EQU 0X20002000AREA RESET,CODE,READONLYDCD STACK_TOP ;MSP主堆栈指针DCD START ;复位,PC初始值ENTRY;指示开始执行STARTLDR R1,=RCC_APB2ENRLDR R0,[R1] ;读LDR R2,=IOPEENORR R0,R2 ;改STR R0,[R1] ;写,使能GPIOE时钟;PE[0..7] 8个引脚均设置成推挽式输出LDR R0,=0x33333333LDR R1,=GPIOE_CRLSTR R0,[R1]LDR R1,=GPIOE_ODRLDR R0,=0X7F ;初始时最高位点亮MOV R2,#0LOOPSTR R0,[R1]PUSH {R0}MOV R0,#300BL.W DELAY_NMS ;延时300msPOP {R0}ADD R2,#1CMP R2,#7BLE STA TE1CMP R2,#14BEQ RESTARTB STA TE2STA TE1 ;状态1,右循环移位BL.W ByteRor1 ;状态位右循环移一位B LOOPRESTARTMOV R2,#0STA TE2 ;状态2,左循环移位BL.W ByteRol1 ;状态位左循环移一位B LOOP;延时R0(ms),误差((R0-1)*4+12)/8us;延时较长时,误差小于0.1%DELAY_NMSPUSH {R1} ;2个周期DELAY_NMSLOOPSUB R0,#1MOV R1,#1000DELAY_ONEUSSUB R1,#1NOPNOPNOPCMP R1,#0BNE DELAY_ONEUSCMP R0,#0BNE DELAY_NMSLOOPPOP {R1}BX LR;子程序,将R0低八位右循环移一位,高位不变ByteRor1PUSH {R1,R2,R3}LDR R3,=0XFFFFFF00LSR R1,R0,#1AND R1,#0X0000007FAND R2,R0,#0X01LSL R2,#7ORR R1,R2AND R0,R3ORR R0,R1POP {R1,R2,R3}BX LR;子程序,将R0低八位左循环移一位,高位不变ByteRol1PUSH {R1,R2,R3}LDR R3,=0XFFFFFF00LSL R1,R0,#1AND R1,#0X000000FEAND R2,R0,#0X80LSR R2,#7ORR R1,R2AND R0,R3ORR R0,R1POP {R1,R2,R3}BX LREND。

arm汇编实现的跑马灯实验

arm汇编实现的跑马灯实验

arm汇编实现的跑马灯实验平台:fs2410 用arm 汇编编写的跑马灯单文件可以很好运行,不需要包其他的头文件和一些初始化函数。

GPFCON EQU 0x56000050GPFDAT EQU 0x56000054GPFUP EQU 0x56000058 EXPORT LEDTEST AREA LEDTESTASM,CODE,READONLY ;定义了一个代码段,段名为LEDTESTASM,属性只读LEDTEST ;设置GPF4-GPF7 为output ldr r0,=GPFCON ldr r1,=0x5500 str r1,[r0] ;禁止GPF4-GPF7 端口的上拉电阻ldr r0,=GPFUP ldr r1,=0xff00 strr1,[r0] ;将数据端口F 的数据寄存器的地址赋值给寄存器r2 ldr r2,=GPFDAT;跑马灯循环ledloop1 ldr r1,=0xef str r1,[r2] ;使GPF4 输出低电平,灯亮bl delay1;调用延迟ledloop2 ldr r1,=0xdf str r1,[r2] bl delay2ledloop3 ldr r1,=0x7f str r1,[r2] bl delay3ledloop4 ldr r1,=0xbf str r1,[r2] bl delay4;延迟程序delay1ldr r3,=0x8ffff ;设置延迟的时间delay5sub r3,r3,#1 ;r3=r3-1cmp r3,#0x0 ;将r3 的值与0 相比较bne delay5;比较的结果不为0(r3 不为0),继续调用delay1,否则执行下一条语句b ledloop2mov pc,lr ;返回;延迟程序delay2ldr r3,=0x8ffffdelay6sub r3,r3,#1cmp r3,#0x0bne delay6b ledloop3mov pc,lr delay3 ldr r3,=0x8ffffdelay7sub r3,r3,#1cmp r3,#0x0bne delay7b ledloop4mov pc,lrdelay4ldr r3,=0x8ffffdelay8sub r3,r3,#1cmp r3,#0x0bne delay8b ledloop1mov pc,lrEND ;程序结束符tips:感谢大家的阅读,本文由我司收集整编。

心形跑马灯实训报告

心形跑马灯实训报告

一、实训目的本次心形跑马灯实训旨在通过实际操作,让学生掌握心形跑马灯的设计原理、电路搭建、编程控制以及实际应用等方面的知识。

通过实训,提高学生的动手能力、创新能力和团队协作能力,同时加深对电子技术、嵌入式系统及编程的理解。

二、实训背景随着科技的发展,嵌入式系统在日常生活中得到了广泛应用。

心形跑马灯作为一种新颖的电子装饰品,具有较高的观赏性和实用性。

本实训项目以心形跑马灯为载体,让学生在实训过程中学习相关知识,培养创新意识。

三、实训内容1. 心形跑马灯设计原理心形跑马灯采用LED灯珠作为显示单元,通过单片机控制LED灯珠的亮灭,形成动态的心形图案。

设计原理主要包括以下几个方面:(1)心形图案设计:通过数学公式计算心形图案的坐标点,将坐标点映射到LED灯珠上。

(2)LED灯珠驱动电路:设计LED灯珠的驱动电路,确保LED灯珠正常工作。

(3)单片机控制电路:设计单片机控制电路,实现LED灯珠的亮灭控制。

2. 心形跑马灯电路搭建(1)电路元器件:主要包括单片机、LED灯珠、电阻、电容、面包板、导线等。

(2)电路搭建步骤:①根据设计原理,设计电路图。

②在面包板上搭建电路,连接单片机、LED灯珠、电阻、电容等元器件。

③检查电路连接是否正确,确保电路正常工作。

3. 心形跑马灯编程控制(1)编程环境:使用C语言进行编程。

(2)编程步骤:①初始化单片机端口,设置LED灯珠的亮灭模式。

②编写心形图案的生成函数,计算心形图案的坐标点。

③编写控制LED灯珠亮灭的函数,实现心形图案的动态显示。

4. 心形跑马灯实际应用(1)展示平台:将心形跑马灯应用于各类活动、展览等场合,展示其独特魅力。

(2)应用场景:如商场、酒店、旅游景点等。

四、实训过程1. 理论学习:首先,学生对心形跑马灯的设计原理、电路搭建、编程控制等方面进行理论学习,了解相关知识。

2. 电路搭建:在面包板上搭建心形跑马灯电路,连接元器件,确保电路正常工作。

3. 编程实践:使用C语言编写心形跑马灯的代码,实现心形图案的动态显示。

51单片机8个跑马灯程序汇编设计思路

51单片机8个跑马灯程序汇编设计思路

【51单片机8个跑马灯程序汇编设计思路】1. 引言在嵌入式系统中,跑马灯程序是一个非常常见且基础的程序设计。

通过控制LED灯的亮灭顺序,实现灯光在一组灯中顺序轮流亮起的效果。

其中,51单片机是一种常用的嵌入式系统开发评台,本文将探讨如何通过汇编语言设计实现8个跑马灯程序的思路和方法。

2. 分析题目我们需要对题目进行细致的分析。

51单片机8个跑马灯程序要求我们设计并实现一个程序,能够控制8个LED灯依次轮流亮起的效果。

这意味着我们需要对LED灯进行控制,并且需要考虑如何实现循环、延时等功能。

3. LED灯控制在实现跑马灯程序时,首先需要考虑如何控制LED灯的亮灭。

一种常见的方法是通过I/O口控制LED灯的高低电平,从而实现灯的亮灭。

我们需要了解51单片机的I/O口控制方式,并结合LED灯的连接方式进行设计。

4. 循环控制跑马灯程序的核心在于实现LED灯的依次轮流亮起。

这就需要我们设计循环控制的程序结构。

在汇编语言中,可以通过跳转指令和计数器来实现循环效果,我们需要考虑如何设计循环的次数和顺序。

5. 延时控制为了让人眼能够观察到LED灯的亮灭效果,我们需要在程序中添加延时控制。

这需要我们了解51单片机的定时器控制和时钟频率,并根据LED灯的亮度要求设计合适的延时程序。

6. 汇编设计思路在进行汇编设计时,可以按照以下步骤进行:1)设置I/O口控制LED灯的引脚,确定LED的连接方式;2)设计循环控制结构,确定LED灯的顺序和次数;3)添加延时程序,控制LED灯亮灭的时间间隔;4)编写中断程序,处理定时器中断等事件;5)调试程序,验证跑马灯效果是否符合要求。

7. 个人观点和理解通过设计这个跑马灯程序,我深切体会到了汇编语言的精妙之处。

通过对硬件的直接控制和对程序结构的精心设计,我感受到了嵌入式系统开发中的乐趣和挑战。

而对于初学者来说,设计跑马灯程序也是一个很好的学习过程,可以加深对于51单片机结构和编程思想的理解。

汇编课程之跑马灯设计报告

汇编课程之跑马灯设计报告

太原工业学院汇编语言与微机原理课程设计报告学生姓名:刘创学号:*********系部: 计算机工程系专业: 计算机科学与技术题目: 利用8255实现花式跑马灯成绩指导教师李丽2016年6月28日1.设计内容1)设计电路;2)实现6种不同的跑马灯样式;3)跑马灯的运行状态可由开关控制4)要有暂停跑马灯按钮控制即跑马灯的状态切换。

2.总体设计1)设计原理本实验通过循环检测A口数据,判断按得是哪个开关,如开关1按下,则向AL送01h,并送至B口,循环左移AL达到灯的流水下移,调用延时子程序控制灯闪亮时间,通过BH的赋值控制循环次数,达到时间定时效果。

每循环一个周期,CPU都会检测A口的值,从而能即时切换跑马灯花式。

2)设计跑马灯方案a)按下开关1,跑法1,AL初值01H,循环左移,控制一个亮灯自上而下跑动。

b)按下开关2,跑法2,AL初值81H,循环右移,控制一个亮灯自下而上跑动。

c)按下开关3,跑法3,AL初值0AAH,循环左移,控制间隔4个灯同时闪亮。

d)按下开关4,跑法4,AL初值0C0H,循环右移,控制两个亮灯自下而上跑动。

e)按下按键5,跑法5,AL初值05H,循环左移,控制亮暗亮3灯自上而下跑动。

f)按下开关6,跑法6,AL初值0AAH,循环左移,控制间隔4个灯同时闪亮,相比按键3,跑动时间更长,以显示定功能。

g)按下开关7按下,跑马灯暂停工作,再次按下跑马灯继续工作。

3.硬件设计1)Proteus元件清单及功能说明2)电路设计图a)8086微处理机与锁存器、译码器连接b)8255A与跑马灯开关控制连接图c)8255A与跑马灯LED显示灯连接图4. 软件设计1)程序设计思路利用查询式不断循环查询控制跑马灯样式的开关状态,进而编写程序来控制跑马灯的输出样式。

同时,检测是否暂停跑马灯工作状态的按钮,以及时处理暂停与继续工作状态。

2)程序流程图3)程序代码MarqueeHorseRaceLamp.ASM/*文件名*/ CODE SEGMENTASSUME CS:CODESTART: MOV AL,90HMOV DX,206HOUT DX,ALNOKEY:CALL SCANJNZ NOKEYSCAN PROCMOV AL,0FFHMOV DX,202HOUT DX,ALMOV DX,200HIN AL,DXTEST AL,01HJZ P1TEST AL,02HJZ P2TEST AL,04HJZ P3TEST AL,08HJZ P4TEST AL,10HJZ P5TEST AL,20H JZ P6RETP1:CALL PA1PA1 PROCMOV BH,0MOV BL,01HA1:MOV AL,BLMOV DX,202HOUT DX,ALMOV CX,50000CALL DELAY ROL BL,1CALL STOPCALL SCANCMP BL,01HJNZ J1INC BHJ1:JMP A1PA1 ENDPP2:CALL PA2PA2 PROCMOV BH,0MOV BL,80HA2:MOV AL,BLMOV DX,202H OUT DX,AL CALL DELAY ROR BL,1CALL STOP CALL SCANCMP BL,80HJNZ J2INC BHJ2:JMP A2RETPA2 ENDPP3:CALL PA3PA3 PROCMOV BH,0MOV BL,0AAH A3:MOV AL,BLMOV DX,202H OUT DX,AL CALL DELAY MOV CL,1ROL BL,CL CALL STOP CALL SCAN CMP BL,0AAHJNZ J3INC BHJ3:JMP A3RETPA3 ENDPP4:CALL PA4PA4 PROCMOV BH,0MOV BL,0C0HA4:MOV AL,BLMOV DX,202HOUT DX,ALCALL DELAYMOV CL,1ROR BL,CLCALL STOPCALL SCANCMP BL,0C0HJNZ J4INC BHJ4:JMP A4RETPA4 ENDPP5:CALL PA5 PA5 PROCMOV BH,0MOV BL,05HA5:MOV AL,BLMOV DX,202HOUT DX,ALCALL DELAYROL BL,1CALL STOPCALL SCANCMP BL,05HJNZ J5INC BHCALL RETURNJ5:JMP A5RETPA5 ENDPP6:CALL PA6 PA6 PROCMOV BH,05HMOV BL,0AAHA6: MOV AL,BLMOV DX,202HOUT DX,ALMOV CX,50000CALL DELAYROL BL,1CALL STOPCALL SCANCMP BL,0AAHJNZ J6INC BHCALL RETURNJ6:JMP A6RETPA6 ENDPDELAY PROCMOV CX,50000LOOP1: LOOP LOOP1RETDELAY ENDPRETURN PROC CMP BH,04HJZ NOKEYRETSTOP PROC L1:MOV AL,00HMOV DX,202HOUT DX,ALMOV DX,200HIN AL,DXTEST AL,40HJNZ DONEJMP L1DONE:RETSTOP ENDPRETURN ENDPSCAN ENDPCODE ENDSEND START5. 仿真调试与分析a)连接好完整电路后,加载已经写好的跑马灯程序b)调试已经加载的代码,直至代码无编译错误为止c)启动Proteus调试d)拨动相关控制开关,进而控制跑马灯的工作风格e)调试结果基本符合实验前的设计,跑马灯以正确的工作风格进行工作,符合逻辑,整个实验分析正确f)跑马灯实验设计成功,结束实验6. 结论由于之前曾学习过组成原理,对Proteus的电路连接颇为了解,所以本次的电路连接没有太大的问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DELAY: MOV R3 , #08FH DJNZ R3 , $ DJNZ R2, DELAY MOV P1 , #0 INC R0 CJNE R0 , #8 , KKK MOV R0 , #0 DJNZ R4 , KKK INC DPTR INC R6 CJNE R6 , #08H, III MOV R6,#0 MOV DPTR,#200H SJMP III ORG 200H TAB: DB 0E3H, 0C1H, 081H,03H,03H,081H,0C1H, 0E3H, DB 0E3H, 0C1H ,081H,03H,03H,081H,0C1H, 0E3H END
• 一根横柱:对应的行置0,而列则采用扫描的方法 来实现。
实现效果一:
点阵全亮 编程控制使P0口输出高电平,各列
置1;P1口输出低电平,各行置0。各二极管均 处于导通状态,点阵全亮。 程序:
ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV A, #0FFH MOV B, #00H LOOP: MOV P1, A MOV P0 , B END

实现效果二:
一列亮,向右移动 编程控制使P0各端口依次输
出高电平,各列相应置1;P1口输出低电平,各行 置0。相应二极管均处于导通状态,点阵亮。
ORG LJMP ORG MAIN: 0000H MAIN 0100H MOV A, #01H MOV B, #00H LOOP: MOV P1, A MOV P0 , B LCALL DELAY RL A SJMP LOOP SJMP $ DELAY: MOV R2, #0FFH DELAY1: MOV R3, #0FFH DJNZ R3, $ DJNZ R2, DELAY1 RET
实现效果四:
显示“♡”形
:画出“♡”形,根据二极管的
亮灭,设置相应扫描码,编程显示结果。
各列扫描码:
0E3H, 0D1H, 0D2H, 0C3H, 0D2H, 0C3H, 0E4H, 0E2H
编写程序:
ORG 000H AJMP MAIN ORG 100H MAIN: MOV R6, #0 MOV R0, #0 MOV R1, #1 MOV DPTR, #200H III: MOV R4, #02FH KKK: MOV A, R0 MOVC A,@A+DPTR MOV P0 , A MOV P1 , R1 MOV A , R1 RL A MOV R1 , A MOV R2 , #01h
利用IO口实现跑马灯功能
通信工程一班二组
跑马灯简介
• 概念 : 跑马灯又称为流水灯。简单地说就是一 组灯在控制系统的控制下按照设定的时间和顺序 来发亮或熄灭,组成不同的图形,从而达到一定 的视觉效果。 • 基本跑马灯电路的组成: MCS—51单片机,LED小灯泡,电容电阻, 振荡电路,译码电路,光源电路等。
实现效果三:
三列同时亮,向右移动 编程控制使P0中各次均
有三个端口输出高电平,各列相应置1;P1口端口 全部输出低电平,各行置0。相应二级管导通,点 ORG 0000H 阵亮。 LJMP MAIN
ORG MAIN: 0100H MOV A, #07H MOV B, #00H LOOP: MOV P1, A MOV P0 , B LCALL DELAY RL A SJMP LOOP SJMP $ DELAY: MOV R2, #0FFH DELAY1: MOV R3, #0FFH DJNZ R3, $ DJNZ R2, DELAY1 RET END
可以看出上面的端口通过高电平控制每一列, 而下面的端口通过低电平控制每一行,只有两者同 时有效时,对应位的小灯才能点亮。
点阵与51单片机的连接
• P0口接阳极,每个接口控制一列;P1口接低电平, 每个接口控制一行。 • 实现柱的亮的方法如下所述:
• 一根竖柱:对应的列置1,而行则采用扫描的方法 来实现。
实现效果五:
循环显示“Ι ♡∪”字形 画出“Ι ♡∪”
字形,根据二极管的亮灭,设置相应扫描码, 编程显示结果。
I的扫描码
0FFH,0FFH,7DH,01H,01H,7DH,0FFH,0FFH
♡的扫描码
0E3H,0C1H,81H,03H,03H,81H,0C1H,0E3H
U的扫描码 0FFH,81H,01H,3FH,3FH,3FH,01H,81H
TAB: DB DB DB DB END
跑马灯在生活中的应用
圣诞节 宣传语
装饰表达爱意讨论交流请私信我The end,thank you!
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 列置高电平 行置低电平
点阵共有64 个二极管每 个发光二极 管是放置在 行线和列线 的交叉点上
当对应的 某一列置 1电平, 某一行置 0电平, 则相应的 二极管就 亮
极性判断
可以看出点阵上面接口为高电平 控制,下面为低电平控制,才可以点亮小灯。
程序编写:
CJNE R6 , #18H, III MOV R6, #0 MOV DPTR, #200H SJMP III ORG 200H 0FFH, 0FFH, 7DH, 01H, 01H, 7DH, 0FFH, 0FFH 0E3H, 0C1H ,81H, 03H, 03H, 81H, 0C1H, 0E3H 0FFH, 81H, 01H, 3FH, 3FH, 3FH, 01H, 81H 0FFH, 0FFH,7DH, 01H, 01H, 7DH, 0FFH,0FFH
不同类型的跑马灯
跑马灯的工作原理
• 要求: • 51单片机连接二极管点阵,控制发光二极管流水 线式的发亮。 • 实现方式: • 1.点阵全亮 • 2.第一列亮,且逐次向右移动 • 3.三列同时亮,且向右移动 • 4.点阵显示“♡”形 • 5.循环显示“Ι ♡∪”字形
8x8LED点阵
工作原理说明 :
相关文档
最新文档