1.8X8 LED

LED 点阵是由发光二极管排列组成的显示器件,在我们日常生活的电器中随处可见。

点阵一次只能控制一行LED灯的亮灭,本文使用51单片机P0口控制共阴极,P2口控制共阳极

由于一次只能控制一行LED灯,所以得用动态刷新的方式,当刷新得时间间隔低于30ms,人眼就不能观察到间隔,只能捕捉到一幅画面。

控制好刷新时间就可以显示字符

同时点阵可以分为行刷新和列刷新,本文涉及行刷新

2.消隐

在点阵显示字符时,由于较高的刷新率,在前面的等还没有完全熄灭时后面的灯就点亮了,这样会让字符糊成一坨,难以辨认

具体思路:

先送数据(点亮)——>后选通——>延时——>送数据(熄灭)——>延时——>送数据(点亮)

   …………MOV P2,R4        LCALL TIME_25MS    ;调用延时程序MOV P0,#0FFH    ;给P0高电平,让所有灯熄灭MOV P2,#00H        ;给P2低电平,让所有灯熄灭…………

3.行列数据编码

想让点阵点亮最重要的是进行数据编码,对显示字符进行编码,高电平为1,低电平为0

由于A5开发板是动态刷新行显示,所以LED的每一行都要编码

LED点阵的行是共阳极,所以选通行要给高电平,给其他行低电平。

列是共阴极,给选通的列低电平,其他列高电平(下图由EXCEL制作)

TAP_ROW:DB 80H,40H,20H,10H,08H,04H,02H,01H   ;行点亮编码
TAP_CUL:DB 0EBH,0EFH,000H,0EFH,0D5H,0D3H,0A6H,070H  ;列点亮编码

编码表是一 一对应关系,与实际接线顺序相关,具体现象需要调试

4.汇编代码

ORG 0000HMOV R2,#00H         ;查表计数累加
MAIN :MOV TMOD,#01H     ;使用计时方式1MOV DPTR,#TAP_ROW ;行编码查表MOV A,R2MOVC A,@A+DPTRMOV R4,A          ;列编码查表MOV DPTR,#TAP_CUL MOV A,R2MOVC A,@A+DPTRMOV R5,AINC R2            ;计数累加,用于判断LED点亮到第几行,完成第八行返回就第一行MOV P0,R5      ;选通列的数据MOV P2,R4        ;选通行的数据LCALL TIME_25MS  ;调用延时程序MOV P0,#0FFH ;给P0高电平,让所有灯熄灭MOV P2,#00H        ;给P2低电平,让所有灯熄灭CJNE R2,#09H,SUU ;判断 是否查表超过7次,小于或大于7次跳转
SUU:JC MAIN          ;小于7次跳转初始化MOV R2,#00H       ;大于7次清零R2LJMP MAIN      ;跳转循环主函数
TIME_25MS:           ;延时1MS程序CLR TF0MOV TH0,#0FCHMOV TL0,#018HSETB TR0JNB TF0,$
RETTAP_ROW:DB 80H,40H,20H,10H,08H,04H,02H,01H   ;行点亮编码
TAP_CUL:DB 0EBH,0EFH,000H,0EFH,0D5H,0D3H,0A6H,070H  ;列点亮编码END

1s调试用程序

TIME_1S: MOV      R7,#10    ;延时1S子程序,调试程序用
DL1:   MOV      R6,#200
DL2:   MOV      R5,#248
       DJNZ     R5,$
       DJNZ     R6,DL2
       DJNZ     R7,DL1
        RET

用汇编语言编写8X8LED点阵字符显示程序相关推荐

  1. Microsoft编写优质无错C程序秘诀

      编程精粹 ───     Microsoft编写优质无错C程序秘诀 Writing Clean Code ───     Microsoft Techniques for Developing B ...

  2. 编程精粹 --Microsoft编写优质无错C程序秘诀

    献给我的妻子Beth, 以及我的双亲Joseph和Julia Maguire ────为了他们的爱和支持 序 1986年,在为几家小公司咨询和工作了10年之后为了获得编写Macintosh应用程序的经 ...

  3. 计算机能不能直接识别汇编语言程序,计算机能直接识别执行用汇编语言编写的程序吗...

    不能.用汇编语言编写的程序,计算机是不能直接识别和执行的:必须先把汇编语言源程序翻译成机器语言程序(即目标程序),然后才能被执行.当目标程序被安置在内存的预定位置上后,就能被计算机的CPU处理和执行. ...

  4. 微型计算机原理计算机钢琴,用汇编语言编写计算机钢琴程序.PDF

    用汇编语言编写计算机钢琴程序.PDF 2009年lO月 电 脑 学 习 第5期 用汇编语言编写计算机钢琴程序 汪本慧 摘 要:汇编语言是学习计算机尤其是潋型计算机原理.以及进行披型计算机开发应用不可缺 ...

  5. 汇编语言编写方法及程序分析

    汇编语言编写方法及程序分析   1.             汇编语言程序的编写方法 (1)       汇编语言源程序以.asm为其扩展名. (2)       汇编语言源程序的每一行都可以由4个部 ...

  6. 用计算机语言编写累加程序,用汇编语言实现如下程序:进行自然数相加(1+2+3... 汇编语言 编写程序实现自然数1到100的累加。要求用......

    导航:网站首页 > 用汇编语言实现如下程序:进行自然数相加(1+2+3... 汇编语言 编写程序实现自然数1到100的累加.要求用... 用汇编语言实现如下程序:进行自然数相加(1+2+3... ...

  7. 微型计算机计算机钢琴,用汇编语言编写计算机钢琴程序

    用汇编语言编写计算机钢琴程序 汇编语言是学习计算机尤其是微型计算机原理,以及进行微型计算机开发应用不可缺少的 (本文共3页) 阅读全文>> 汇编语言是微型计算机开发应用不可或缺的重要部分, ...

  8. 汇编语言#编写两个子程序,分别实现:1)使用选择法排序,按成绩从高到低的进行排序;2)分别统计学生某门课程成绩中各分数段的成绩的人数,并输出

    汇编语言#编写两个子程序,分别实现:1)使用选择法排序,按成绩从高到低的进行排序:2)分别统计学生某门课程成绩中各分数段的成绩的人数,并输出 选择排序(Selection sort)是一种简单直观的排 ...

  9. linux 汇编 cmp,使用汇编语言编写C程序的函数

    我必须实现应该是原子操作的set_bit函数.我在linux源代码中发现了这个汇编代码. (我正在使用sparc),并希望将其更改为可在C程序中使用的函数.使用汇编语言编写C程序的函数 static ...

最新文章

  1. Python基础03-运算符
  2. 嵌入式Linux的特点
  3. 反射 -- 业务需求:执行某个类中全部的以test为开头的无参数无返回值的非静态方法。...
  4. undefined reference to 'pthread_create'问题解决
  5. mmap原理及流程(kernel 4.1版本)
  6. Scala可变数组ArrayBuffer:查询/修改/遍历/增加/删除
  7. python 类的内置方法_Python 类的常用内置方法
  8. ASP.NET MVC实践系列6-Grid实现(上)
  9. HTTP和HTTPS详解
  10. curl -s http://192.168.232.191/openapi/v2 | jq 不显示JSON格式的文档说明
  11. Axure设计设备管理系统后台系统界面
  12. 深入浅出JavaScript (五) 详解Document.write()方法
  13. 图解Java类加载机制
  14. operands could not be broadcast together with shapes解决方案
  15. 什么是黎曼和?什么是定积分?
  16. sql server 使用 top WITH TIES
  17. __stack_chk_fail问题及解决方案
  18. 二维泊松方程数值解-五点差分法-共轭梯度法-python实现
  19. HMI-47-【多媒体】Title界面实现 2
  20. Spectral Core Crack,Spectral Core尽快创建数据库副本

热门文章

  1. 最逊文件批处理教程(2)
  2. 地质灾害监测预警系统构成,功能,监测设备介绍
  3. PLA算法实现与展示
  4. 弘辽科技:想要成为优秀的直通车手,这些知识你一定要知道。
  5. 阿里云、腾讯云相继降价!多家云服务巨头价格战打响,面对这场变局,你怎么看?
  6. AVpacket与avframe
  7. 这一次,522 道腾讯大厂真题汇总!
  8. 软件工程中的设计原理与设计模式
  9. 西典冲刺上交所:拟募资8.7亿 实控人盛建华已移民加拿大
  10. 趣味学python(018)