160 likes | 352 Views
1-5 点阵显示. 项目引入. 点阵显示在各种会议、路牌、广告等场合应用非常广泛 会议上主席台上方的电子横幅. 课堂任务:. 组装 AT89C51 单片机控制一个 8×8 点阵字符显示器的系统,逐字显示“电子设计”四个字。. 跟我想. 1 、点阵如何显示字符?如何控制其显示不同字符?(硬件) 2 、送出的码字如何设计?(软件). 跟我学. 查表指令 MOVC 查表子程序设计 点阵结构. 1 、片外 ROM 传送 MOVC. MOVC A, @A+PC MOVC A, @A+DPTR.
E N D
项目引入 • 点阵显示在各种会议、路牌、广告等场合应用非常广泛 会议上主席台上方的电子横幅
课堂任务: • 组装AT89C51单片机控制一个8×8 点阵字符显示器的系统,逐字显示“电子设计”四个字。
跟我想 • 1、点阵如何显示字符?如何控制其显示不同字符?(硬件) • 2、送出的码字如何设计?(软件)
跟我学 • 查表指令MOVC • 查表子程序设计 • 点阵结构
1、片外ROM传送 MOVC • MOVC A, @A+PC • MOVC A, @A+DPTR 这是两条很有用的查表指令, 可用来查找存放在外部程序存储器中的常数表格。第一条指令是以PC作为基址寄存器, A的内容作为无符号数和 PC的内容 ( 下一条指令的起始地址)相加后得到一个 16 位的地址, 并将该地址指出的程序存储器单元的内容送到累加器A。 这条指令的优点是不改变特殊功能寄存器和PC的状态, 只要根据A的内容就可以取出表格中的常数。缺点是表格只能放在该条查表指令后面的 256 个单元之中, 表格的大小受到限制, 而且表格只能被一段程序所利用。
第二条指令是以DPTR作为基址寄存器, 累加器A的内容作为无符号数与DPTR内容相加, 得到一个 16 位的地址, 并把该地址指出的程序存储器单元的内容送到累加器A。这条指令的执行结果只与指针DPTR及累加器A的内容有关, 与该指令存放的地址无关, 因此, 表格的大小和位置可以在 64 KB程序存储器中任意安排, 并且一个表格可以为各个程序块所共用。
2、 查表程序设计 查表程序是一种常用程序, 它广泛使用于 LED显示控制、 打印机打印控制、数据补偿、数值计算、转换等功能程序中, 这类程序具有简单、执行速度快等特点。 所谓查表法, 就是预先将满足一定精度要求的表示变量与函数值之间关系的一张表求出, 然后把这张表存于单片机的程序存储器中, 这时自变量值为单元地址, 相应的函数值为该地址单元中的内容。查表, 就是根据变量 X在表格中查找对应的函数值 Y, 使 Y=f(X)。
指令系统中, 有两条查表指令: • MOVC A, @A+PC • MOVC A, @A+DPTR
例 一个十六进制数存放在内部 RAM 的 HEX单元的低 4 位中, 将其转换成ASCII码并送回 HEX单元。 十六进制 0~9的ASCII码为 30H~39H, A~F的ASCII码为41H~46H, ASCII码表格的首地址为ASCTAB。编程如下: ORG 1000H HEXASC: MOV A, HEX ANL A, #0FH ADD A, #3 ; 修改指针 MOVC A, @A+PC MOV HEX, A RET
ASCTAB: DB 30H, 31H, 32H, 33H, 34H DB 35H, 36H, 37H, 38H, 39H DB 41H, 42H, 43H, 44H, 45H DB 46H 在这个程序中, 查表指令MOVC A, @A+PC到表格首地址有两条指令, 占用 3 个字节地址空间, 故修改指针应加 3。
3、点阵结构 8*8点阵内部结构图 8*8点阵引脚
跟我做 1、准备器件 2、焊接电路板 3、编写简单程序 4、建立单片机控制点阵系统
跟我总结 1、通过并行口控制点阵显示需要哪些基本电路 2、动态扫描显示原理在显示系统中的应用
课后任务 • 1、编写实训报告:总结实训过程遇到的问题、解决方法和收获 • 2、若是16×16的点阵,硬件、软件需如何修改和设计? • 3、若要按照特定样式显示(如上移、左移等)