用汇编语言编写8X8LED点阵字符显示程序
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点阵字符显示程序相关推荐
- Microsoft编写优质无错C程序秘诀
编程精粹 ─── Microsoft编写优质无错C程序秘诀 Writing Clean Code ─── Microsoft Techniques for Developing B ...
- 编程精粹 --Microsoft编写优质无错C程序秘诀
献给我的妻子Beth, 以及我的双亲Joseph和Julia Maguire ────为了他们的爱和支持 序 1986年,在为几家小公司咨询和工作了10年之后为了获得编写Macintosh应用程序的经 ...
- 计算机能不能直接识别汇编语言程序,计算机能直接识别执行用汇编语言编写的程序吗...
不能.用汇编语言编写的程序,计算机是不能直接识别和执行的:必须先把汇编语言源程序翻译成机器语言程序(即目标程序),然后才能被执行.当目标程序被安置在内存的预定位置上后,就能被计算机的CPU处理和执行. ...
- 微型计算机原理计算机钢琴,用汇编语言编写计算机钢琴程序.PDF
用汇编语言编写计算机钢琴程序.PDF 2009年lO月 电 脑 学 习 第5期 用汇编语言编写计算机钢琴程序 汪本慧 摘 要:汇编语言是学习计算机尤其是潋型计算机原理.以及进行披型计算机开发应用不可缺 ...
- 汇编语言编写方法及程序分析
汇编语言编写方法及程序分析 1. 汇编语言程序的编写方法 (1) 汇编语言源程序以.asm为其扩展名. (2) 汇编语言源程序的每一行都可以由4个部 ...
- 用计算机语言编写累加程序,用汇编语言实现如下程序:进行自然数相加(1+2+3... 汇编语言 编写程序实现自然数1到100的累加。要求用......
导航:网站首页 > 用汇编语言实现如下程序:进行自然数相加(1+2+3... 汇编语言 编写程序实现自然数1到100的累加.要求用... 用汇编语言实现如下程序:进行自然数相加(1+2+3... ...
- 微型计算机计算机钢琴,用汇编语言编写计算机钢琴程序
用汇编语言编写计算机钢琴程序 汇编语言是学习计算机尤其是微型计算机原理,以及进行微型计算机开发应用不可缺少的 (本文共3页) 阅读全文>> 汇编语言是微型计算机开发应用不可或缺的重要部分, ...
- 汇编语言#编写两个子程序,分别实现:1)使用选择法排序,按成绩从高到低的进行排序;2)分别统计学生某门课程成绩中各分数段的成绩的人数,并输出
汇编语言#编写两个子程序,分别实现:1)使用选择法排序,按成绩从高到低的进行排序:2)分别统计学生某门课程成绩中各分数段的成绩的人数,并输出 选择排序(Selection sort)是一种简单直观的排 ...
- linux 汇编 cmp,使用汇编语言编写C程序的函数
我必须实现应该是原子操作的set_bit函数.我在linux源代码中发现了这个汇编代码. (我正在使用sparc),并希望将其更改为可在C程序中使用的函数.使用汇编语言编写C程序的函数 static ...
最新文章
- Python基础03-运算符
- 嵌入式Linux的特点
- 反射 -- 业务需求:执行某个类中全部的以test为开头的无参数无返回值的非静态方法。...
- undefined reference to 'pthread_create'问题解决
- mmap原理及流程(kernel 4.1版本)
- Scala可变数组ArrayBuffer:查询/修改/遍历/增加/删除
- python 类的内置方法_Python 类的常用内置方法
- ASP.NET MVC实践系列6-Grid实现(上)
- HTTP和HTTPS详解
- curl -s http://192.168.232.191/openapi/v2 | jq 不显示JSON格式的文档说明
- Axure设计设备管理系统后台系统界面
- 深入浅出JavaScript (五) 详解Document.write()方法
- 图解Java类加载机制
- operands could not be broadcast together with shapes解决方案
- 什么是黎曼和?什么是定积分?
- sql server 使用 top WITH TIES
- __stack_chk_fail问题及解决方案
- 二维泊松方程数值解-五点差分法-共轭梯度法-python实现
- HMI-47-【多媒体】Title界面实现 2
- Spectral Core Crack,Spectral Core尽快创建数据库副本