单片机点阵式LED简单图形显示技术

发布者:古泉痴迷者最新更新时间:2012-08-01 来源: 21ic 关键字:单片机  点阵式LED  图形显示技术 手机看文章 扫描二维码
随时随地手机看文章

1.实验任务

在8X8点阵式LED显示“★”、“●”和心形图,通过按键来选择要显示的图形。

2.电路原理图

 

点阵式LED简单图形显示技术Character displayer

 

3.硬件系统连线

(1).把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上;

(2).把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上;

(3).把“单片机系统”区域中的P2.0/A8端子用导线连接到“独立式键盘”区域中的SP1端子上;

4.程序设计内容

(1).“★”在8X8LED点阵上显示图如下图所示

1.jpg

12H,14H,3CH,48H,3CH,14H,12H,00H

(2).“●”在8X8LED点阵上显示图如下图所示

2.jpg

00H,00H,38H,44H,44H,44H,38H,00H

(3).心形图在8X8LED点阵上显示图如下图所示

3.jpg

30H,48H,44H,22H,44H,48H,30H,00H

5.汇编源程序

CNTAEQU 30H

COUNTEQU 31H

ORG 00H

LJMP START

ORG 0BH

LJMP T0X

ORG 30H

START:MOV CNTA,#00H

MOV COUNT,#00H

MOV TMOD,#01H

MOV TH0,#(65536-4000) / 256

MOV TL0,#(65536-4000) MOD 256

SETB TR0

SETB ET0

SETB EA

WT:JB P2.0,WT[page]

MOV R6,#5

MOV R7,#248

D1:DJNZ R7,$

DJNZ R6,D1

JB P2.0,WT

INC COUNT

MOV A,COUNT

CJNE A,#03H,NEXT

MOV COUNT,#00H

NEXT:JNB P2.0,$

SJMP WT

T0X: NOP

MOV TH0,#(65536-4000) / 256

MOV TL0,#(65536-4000) MOD 256

MOV DPTR,#TAB

MOV A,CNTA

MOVC A,@A+DPTR

MOV P3,A

MOV DPTR,#GRAPH

MOV A,COUNT

MOV B,#8

MUL AB

ADD A,CNTA

MOVC A,@A+DPTR

MOV P1,A

INC CNTA

MOV A,CNTA

CJNE A,#8,NEX

MOV CNTA,#00H

NEX:RETI

TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH

GRAPH:DB 12H,14H,3CH,48H,3CH,14H,12H,00H

DB 00H,00H,38H,44H,44H,44H,38H,00H

DB 30H,48H,44H,22H,44H,48H,30H,00H

END

6.C语言源程序

#include

unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsigned char code graph[3][8]={{0x12,0x14,0x3c,0x48,0x3c,0x14,0x12,0x00},

{0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00},

{0x30,0x48,0x44,0x22,0x44,0x48,0x30,0x00}

};

unsigned char count;

unsigned char cnta;

void main(void)

{

unsigned char i,j;

TMOD=0x01;

TH0=(65536-4000)/256;

TL0=(65536-4000)%6;

TR0=1;

ET0=1;

EA=1;

while(1)

{

if(P2_0==0)

{

for(i=5;i>0;i--)

for(j=248;j>0;j--);

if(P2_0==0)

{

count++;

if(count==3)

{

count=0;

}

while(P2_0==0);

}

}

}

}

void t0(void) interrupt 1 using 0

{

TH0=(65536-4000)/256;

TL0=(65536-4000)%6;

P3=tab[cnta];

P1=graph[count][cnta];

cnta++;

if(cnta==8)

{

cnta=0;

}

}

关键字:单片机  点阵式LED  图形显示技术 引用地址:单片机点阵式LED简单图形显示技术

上一篇:基于PTR6000的足球机器人无线通信系统的设计
下一篇:51单片机如何进行ROM外扩

推荐阅读最新更新时间:2024-03-16 13:04

单片机的指令系统和寻址方式介绍
1、MOVA,#20H 这条指令表示把20H这个数送入累加器A中(一个特殊功能寄存器)。 2、ADDA,70H 这条指令表示把累加器A中的内容(在上例中送入的#20H)和存贮器中地址为70H单元中的内容(也是一个数字),通过算术逻辑单元(英文缩写为ALU)相加,并将结果保留在A中。这里MOV、ADD等称为操作码,而A、#20H、70H等均称为操作数。在汇编语言程序中,操作码通常由英文单词缩写而成,这样有助于记忆,所以又称助记符。如MOV就是英文单词MOVE的缩写,含有搬移的意思;而ADD即为英文单词,其意为相加。因此,对于略懂英语的用户,掌握单片机指令的含意是较为方便的。操作数有多种表示法,如以上的#20H称为立即数,
[单片机]
单片机编程中在C语言中嵌入汇编语言
在C语言中可以嵌入汇编语言,以发挥汇编语言在编程中的优点 方法是,在项目建好以后,加入建立的C文件,其他设置不变,先把 汇编语言写在 #pragma asm ...... ;汇编语言编写区 #pragma endasm 之间,同时还要对进行编译器相应汇编语言混编设置。 第一步: 第二步 第三步编译运行 如果取消了C语言中的汇编程序,则前面的设置也应相应的去掉,否则会出错。 #include reg51.h int i,k; void main(void) { P2=0x00; while(1) { for(i=0;i 8;
[单片机]
<font color='red'>单片机</font>编程中在C语言中嵌入汇编语言
单片机开发调试应注意的问题
1、使用总线不外引的单片机 ·是最正统的单片机使用模式 ·符合小型、简单、可靠、廉价的单片机设计初衷 ·总线封闭的产品最可靠 2、使用单片机C语言编程 * C语言是简洁、高效、而又最贴近硬件的高级编程语言 * 90年代初单片机C语言就已成熟为专业水平的高级语言,不应再有顾虑 * 当前厂商在推出新的单片机产品时纷纷配套C语言编译器 3、使用中、高档的单片机仿真工具 * 只有中、高档仿真工具才能仿真总线封闭式的单片机 * 仿真器必须使用band-out chip或hooks chip * 应支持高级语言的调试,提供全数据类型的查看和修改 * 支持多家软件公司汇编和编译产生的目标代码格式 * 中档仿真器的起步要求是至少解决了上
[单片机]
51单片机学习之路 —— 1.7 独立键盘
1   作业回顾      作业               2 独立键盘概念         s2 s3 s4 s5 为独立键盘与P3^0 P3^1 P3^2 P3^3 相连接   s2 = 0 就是s2被按下的意思    3 程序编写   1 先写个简单的     要求 按下s2按键 led点亮,再次按下熄灭     代码 s2按键    分析:       1         sbit S2 =P3^4;                  在板子的原理图中,S2 接的是P3.4口不要写错了     2                    假如S2 被按下,如果10ms后还是
[单片机]
51<font color='red'>单片机</font>学习之路 —— 1.7 独立键盘
基于PIC16C73单片机的智能热量计量表设计
随着人民生活居住条件的不断改善,环保意识的增强,现今城镇居民及企事业单位采暖大都采用集中供热方式,供热热源生产规模逐年扩大。供热热源为各片用户供热的主供热管道的进水口、回水口往往相距几百米,热源生产厂家热切需要在此工况下能安全、可靠、准确、长期稳定工作的热量计量表。热量计量表同时还能进行其它相关数据的记录、储存及远程通讯传输。为缴费和运行管理提供可靠数据。 1 计量原理 根据传热学知识可知,1.6 Mpa压力下,在0~95℃温度范围内,水的密度 =1 001.093 78-0.076 73t+0.003 57t2 (1) 式中, 为水的密度,单位kg/m3;t为温度,单位℃。 水的焓值为 h=27.596 1+1.52
[单片机]
基于PIC16C73<font color='red'>单片机</font>的智能热量计量表设计
PIC单片机-步进电机的正转与反转
一、步进电机单双八拍正转 步进电动机是一种将电脉冲信号转换成角位移或线位移的机电元件。步进电动机的输入量是脉冲序列,输出量则为相应的增量位移或步进运动。正常运动情况下,它每转一周具有固定的步数;做连续步进运动时,其旋转转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。 本程序采用单双八拍工作方式:A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度)。 如要实现电机反转,只要更改脉冲方向即可。可更改为:D-CD-C-BC-B-AB-A-DA。 #include htc.h #define uint8 unsigned char #define uint16 unsigned i
[单片机]
单片机编译错误 error A45: UNDEFINED SYMBOL
问: MOV A,#FFH Power.asm(118): error A45: UNDEFINED SYMBOL (PASS-2) JBC P2.0,CXSM LJMP CIRCLE Power.asm(179): error A51: TARGET OUT OF RANGE NDIV4: DJNZ B,NDIV2 提示错误:Power.asm(285): error A45: UNDEFINED SYMBOL (PASS-2) CLR PSW.5 RET 答: MOV A,#FFH 后面的16进制数字,不能以字母开头。比如说 :B5H应该写成: 0B5H。FFH 0FFH
[单片机]
基于8051增强型单片机的RJM8L系列超低功耗MCU介绍
对于一些采用电池供电的产品需要长达数年不换电池情况下能连续工作,系统低功耗设计就尤为重要。MCU微控制器的低功耗设计决定系统的成败关键。MCU微控制器的低功耗技术涉及到软件、系统和底层的硬件工艺等。对于应用来说,在空闲的时候,可以将其时钟关闭以节省动态功耗,或小部分电路以低速低功耗的方式运行,SRAM的读写动态功耗相当可观,因此应该尽量减少读写SRAM。 瑞纳捷针对低功耗应用推出了RJM8L151S和RJM8L003系列产品,已大量应用到各领域,如:烟雾报警器,LoRa模组,智能门锁,灯控设备,GPS定位器,安防探测器,电子烟等应用领域。 RJM8L151S和RJM8L003系列产品是基于8051增强型单片机,工作电压2.
[单片机]
基于8051增强型<font color='red'>单片机</font>的RJM8L系列超低功耗<font color='red'>MCU</font>介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved