摘要
摘要
本系统以高速单片机 STCF1132 为核心,设计并制作了一个基于 32×32 点阵 LED 模
块显示屏。该点阵可以实现扫描微亮和显示点亮两种工作模式,在扫描过程中通过自制
光笔检测,获取行列坐标信息,实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写
多字、对象拖移”等书写显示功能,并且通过按键可以实现不同功能之间的切换。同时
还能够根据环境光强的变化,自动连续调节显示屏上显示的亮度。设计
运用了 4-16
线译码器 74HC154 驱动点阵的行和列,通过单片机的控制实现各种显示功能,显示屏亮
度的自动调节采用光敏电阻检测环境光强,通过 A/D 转换、D/A 转换实现对显示亮度的
自动调节。
关键词:LED 点阵 单片机 74HC154
I
目录
目录
摘要..................................................................................................................................................................I
目录................................................................................................................................................................ II
第一章 绪论................................................................................................................................................... 1
1.1 课
来源 .......................................................................................................................................... 1
1.2 设计任务及要求 .............................................................................................................................. 1
第二章 系统方案设计 ................................................................................................................................... 3
2.1.系统的总体设计 ........................................................................................................................... 3
2.2 各模块的设计。 .............................................................................................................................. 3
2.2.1.核心控制模块的的设计 ................................................................................................... 3
2.2.2.光笔设计 ........................................................................................................................... 3
2.2.3.显示方案的设计 ............................................................................................................... 4
2.2.4.点阵显示模式设计 ........................................................................................................... 4
第三章 系统硬件设计 ................................................................................................................................... 5
3.1 光笔的设计 ...................................................................................................................................... 5
3.2 32×32LED点阵的连接 ................................................................................................................... 6
3.3 32×32LED点阵的驱动控制电路 ................................................................................................... 7
3.4 显示电路部分功能及原理 ............................................................................................................. 7
3.5 键盘的使用及设计 ......................................................................................................................... 8
3.6 光照的检测与控制 ......................................................................................................................... 9
第四章 系统软件设计 ................................................................................................................................. 11
4.1 主程序设计 .................................................................................................................................... 11
4.2 外中断 0服务程序(坐标检测) ............................................................................................... 12
4.3.外中断 1服务程序(按键处理) ............................................................................................... 13
4.4.LCM103 驱动程序设计 ................................................................................................................ 13
第五章 系统测试与结果 ............................................................................................................................. 15
5.1 划亮反显擦除拖移的测试和结果 ............................................................................................... 15
5.2 屏亮自动调节测试和结果 ............................................................................................................ 15
5.3 超时关显示节电测试和结果 ....................................................................................................... 15
总结及展望................................................................................................................................................... 16
致谢............................................................................................................................................................... 17
参考文献....................................................................................................................................................... 18
附录 1 总电原理图(单片机系统与点阵驱动电路) .............................................................................. 19
附录 2 总电原理图(32×32 点阵连接电路) ......................................................................................... 20
附录 3 源程序.............................................................................................................................................. 21
II
绪论
第一章 绪论
1.1 课题来源
本课题来源于全国大学生电子设计竞赛 LED 点阵书写显示屏,它是一种控制半导体
发光二极管的显示装置,其主要功能是实现“点亮、划亮、反显、整屏擦除、笔画擦除、
连写多字、对象拖移”等书写显示。
1.2 设计任务及要求
设计并制作一个基于 32×32 点阵 LED 模块的书写显示屏,其系统结构如图 1-1 所
示。在控制器的管理下,LED 点阵模块显示屏工作在人眼不易觉察的扫描微亮和人眼可
见的显示点亮模式下;当光笔触及 LED 点阵模块表面时,先由光笔检测触及位置处 LED
点的扫描微亮以获取其行列坐标,再依据功能需求决定该坐标处的 LED 是否点亮至人眼
可见的显示状态,从而在屏上实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多
字、对象拖移”等书写显示功能。
图 1-1 LED 点阵书写显示屏系统结构示意图
设计的最终要求是:在点亮功能下当光笔接触屏上某点 LED 时,能即时点亮该 LED;
在划亮功能下当光笔快速划过时,能同步点亮划过的各 LED,其速度要求 2S 内能划过
并点亮 40 点 LED;在反显功能下能对屏上显示的信息实现反向显示;在屏幕擦除功能
下能实现对屏上所显示信息整屏擦除;在笔画擦除功能下,能用光笔擦除屏上所显汉字
的笔画;在连写多字功能下,能结合自选的擦除方式,在 30S 内以划亮方式写出四个汉
字且存入机内;在对象拖移功能下,能用光笔将选定显示内容在屏上进行拖移,先用光
笔以划亮方式在屏上圈定欲拖移显示对象,再用光笔将该对象拖移到屏上另一位置;当
光强改变时,能自动连续调节屏上显示亮度;当光笔连续未接触屏面的时间超过 1-5MIN
时,自动关闭屏上显示,并使系统进入休眠模式。
控制器
光笔
32×32
LED
点阵模块
1
淮安信息职业技术学院毕业设计
2
系统方案设计
第二章 系统方案设计
2.1.系统的总体设计
根据课题要求,LED点阵书写显示屏由主控模块,按键电路、LED点阵模块、光笔电
路及LED点阵驱动显示等部分组成。系统框图如图2-1所示:
按键
MCU
驱 动
电 路
LED
点阵
光 笔
检 测
LCD
显示
光 强
检 测
图 2-1 系统框图
2.2 各模块的设计。
2.2.1.核心控制模块的的设计
核心控制模块是系统的大脑,控制着系统的所有输入输出、计算、判断与决策。
“LED 点阵书写显示屏”检测精度要求高且数据存储容量大,选择适合的控制模块,能
确保其快速是实现稳定及达到系统要求的基本条件。使用 STC 系列单片机,该系列单片
机是高集成单片机,功能和性能都要比 51 系列强大很多。比如 STC11F32 是 1T 单片机,
速度是 AT89S51 的 12 倍。而且内部集成了内置振荡器和复位,EEPROM、ADC、PWM、四
态 I/O 接口。
2.2.2.光笔设计
光笔设计的关键是选择合适的传感器件,只有具有很高的灵敏度和一定的响应时间
的传感器才能完成系统的要求及功能。
方案一:采用核心部件为光敏电阻制成的光笔检测系统。光敏电阻是将光能转换为
电能的一种传感器件,它是构成光电式传感器的主要部件。光敏电阻结构简单、使用方
3
淮安信息职业技术学院毕业设计论文
便、价格便宜,但经调试发现其响应时间长,不易检测。
方案二:采用光敏二极管,与光敏电阻相比有较好的高频特性,具有一定的可靠性,
功耗低.相比于光敏电阻而言灵敏度较差,需要较高倍数的放大器才能实现精准识别的
效果。
方案三:采用光敏三极管,其工作原理与光敏二极管相似。但光敏三极管除了具有
光敏二极管能将光信号转换成电信号的功能外,还有对电信号放大的功能。所以其灵敏
度更高,响应时间快。
基于以上分析,我们采用光敏三极管作为光笔的检测部件。
2.2.3.显示方案的设计
采用 LCD 液晶显示器。LCD 有明显的优点:微功耗、尺寸小,超薄轻巧、显示信息
量大、字迹清晰、美观、视觉舒适。使整个控制系统更加人性化。采用 LCM301 液晶显
示器,其是串行口显示,所需 I/O 口较少,节省了资源,焊接电路时也较为方便。
2.2.4.点阵显示模式设计
将点阵的驱动电源分为两路,一路为正常电压,另一路通过硬件电路调节恰好能使
点阵处于微亮状态。结合软件实现点阵的显示模式的改变。这样节省了资源的同时,也
节约了时间
4
系统硬件设计
第三章 系统硬件设计
3.1 光笔的设计
光笔用光电三极管 3DU33 型光敏三极管检测点阵屏发光的强弱变化电压信号,
LM393 为比较器。由于点阵的光强相对较弱,通过光电三极管的电流很小,通过串接硅
二极管来提升光电三极管发射极电压,方便后级比较器作业,便于单片机检测信号。光
笔原理图如下图 3-1 所示:
图 3-1 光笔原理图
在一空的笔壳内,将光敏三极管放置在笔壳底端,光敏三极管的引脚从一个与其直
径等宽的空管引出至空管的顶部,并在其中一引脚中接一弹片,在接近的地方用铜片贯
穿空管且正好卡在笔管的内部。与此同时,用一弹簧套在空管外部,并将其底不固定,
这样,当笔管在点阵屏上上下抖动时,内部光敏三极管就能很好的检测了。其结构如图
3-2 所示:
5
淮安信息职业技术学院毕业设计论文
图3-2 光笔的结构图
3.2 32×32LED点阵的连接
经分析要想得到32×32的点阵需要用16个共阳型8×8点阵(其引脚图如图3-3所示)
来构建。其方法是将点阵对应的行线和列线分别进行连接,使每一条行线引脚接一行32
个LED,列线也相同。
图3-3LED点阵
6
系统硬件设计
3.3 32×32LED点阵的驱动控制电路
32×32 LED 点阵的行信息控制用 2片 74HC154,构成 5—32 译码器,单片机口线控
制其译码输出。列的微亮扫描、点亮也分别用 2 片 74HC154,4 个片选分别单独控制,
微亮扫描(2.5V)、点亮(5V)电源分别通过三极管构成的开关加到点阵的列控制端。
由于整屏显示是 1024 个灯循环亮,为提高显示亮度,限流电阻取 51 欧姆(取消也可以,
但为了防止制作调试过程中烧坏 LED 灯,不取消为好),电路如图 3-4 所示。
微亮扫描时流过 LED 的电流为: (2.5-1.8)/51=13.7mA
点亮点阵时流过 LED 的电流为: (5-1.8)/51=62.7mA
流过 LED 电流虽然比较大,但时间很短,因此不会烧坏 LED 灯。
图 3-4LED 驱动电路
3.4 显示电路部分功能及原理
为了满足系统在工作时能准确显示光笔对应亮点所处的行列坐标值,我们采用型号
为LCM103的液晶显示器显示。LCM103为10位多功能通用型8段式液晶显示模块,内含看
门狗时钟发生器2种频率的蜂鸣驱动电路内置显示RAM,可显示任意字段笔画划3-4线串
行接口可与任何单片机接口。其接口应用模块如图3-5所示:引脚排列图如表3-1所示。
7
淮安信息职业技术学院毕业设计论文
图3-5 LCD接口应用模块
表 3-1 LED 接口引脚排列图
引脚 符号 说明 输入/输
出
1 VDD 正电源,必须接! 输入
2 VLCD LCD 屏工作电压调整,可调整视角对比度,必须
接!。
输入
3 /INT WDT/定时器输出,集电极开路输出,不用可不接。 输出
4 LED 不用 输入
5 BZ 压电陶瓷蜂鸣片驱动 +极 输出
6 /BZ 压电陶瓷蜂鸣片驱动 -极 输出
7 /CS 模块片选,内部上拉,必须接! 输入
8 /RD 模块数据读出控制线,内部上拉 输入
9 /WR 模块数据/指令写入控制线,内部上拉,必须接! 输入
10 DATA 数据输入/输出,内部上拉,必须接! 输入/输
出
11 VSS 负电源,接地线,必须接!
注:B 处焊盘为用户需降低功耗时外加 32.768KHz 晶体。A 处两焊盘分别接 VDD 与
VLCD。
3.5 键盘的使用及设计
键盘是使用比较简单的独立式键盘,而且具有发光二极管指示功能模块。在程序中
采用中断扫描的方式,在没有键操作时 CPU 执行正常程序,只在有键操作时才处理键盘
程序。其电路如图 3-6 所示:
8
系统硬件设计
图 3-6 独立式键盘电路图
按键功能:
按键一:实现点亮等功能;
按键二:修改休眠时间;
按键三:实现多姿连写时的保存与回放;
按键四:实现整屏擦除于休眠唤醒
3.6 光照的检测与控制
经分析,想要实现当环境光强改变时能自动连续调节屏上显示亮度的要
求,其关键是对点阵周围环境光照的检测与控制。我们通过硬件电路很好的
完成了对光照的检测。基本原理是用LM358与光敏电阻够成一恒流源并于三极
管的基极连接,当光敏电阻因光强的变化而改变其自身阻值时,三极管的基
极电压也会随着变化。与其集电极连接的发光二极管的亮度也会伴随着改变,
以此判断周围光强的变化。电路如图3-7所示:
。
图3-7 光照检测电路
9
淮安信息职业技术学院毕业设计论文
10
系统软件设计
第四章 系统软件设计
4.1 主程序设计
主程序包括系统初始化,点阵扫描控制,液晶显示,以及“反显”、“擦除”等功能
下数据处理程序,流程图如图 4-1 所示。其中点阵扫描控制程序,微亮扫描控制由单片
机口控制对以译码器的片选和地址输入,使点阵按行列有规律地循环点亮,由图 3-3 知
点亮显示的列控制信息译码地址与微亮连接在一起,控制点亮的工作过程是通过判断点
阵显示缓冲内容对应位的信息,控制其片选,当需要点亮时,控制片选有效,反之,控
制片选无效,利用微亮扫描过程实现点亮控制。
图 4-1 主程序框图
11
淮安信息职业技术学院毕业设计论文
4.2 外中断 0 服务程序(坐标检测)
外中断0是作为光笔的检测使用,由图3-2知,光笔碰触显示屏过程中,遇到发光点
输出翻转的跳变信号,送给单片机中断,作为中断的触发信号,由于中断程序优先执行,
打断微亮扫描过程,在中断服务程序中根据此时的行列扫描的序号,就可判断光点的坐
标,进而为其他功能的实现提供依据,流程图如图4-2所示
图4-2
图4-2 中断程序框图
12
系统软件设计
4.3.外中断 1 服务程序(按键处理)
外中断1为按键操作处理程序,如图4-3所示:
图4-3 外中断1服务程序框图
4.4.LCM103 驱动程序设计
LCM103 采用的是串行接口,所有数据都是在脉冲的作用下一位一位按顺序写入模
块内部,由时序图知数据线上信息是在脉冲上升沿写入。写命令的数据
是 12 位,
单个写数据的格式是 13 位,写数据也可以连续写,由于每个字位占用内部 3个 RAM 空
间存放字段码,因此写数据采用连续写方式比较好。在数据连续写格式中,前面 9位为
模式位和模块内部 RAM 的起始地址,后面数据格式是每 3位加 1个 0,取三个一组构成
一个字位的信息,也是 12 位,这样就可以将所有写操作(命令和数据)分为写 9位信
息和写 12 位信息两个功能程序。
显示字段的排列方式与 LED 数码管一致,每位字段编码由 8段构成(显示 RAM
13
淮安信息职业技术学院毕业设计论文
笔画表),占用连续的 3个地址空间,但在写入格式中每个数据是 4位,编写字符的字
段码时要给每个数据后加 0,0~9 显示字符的字段码如表 4-1 所示。
表 4-1 0~9 显示字符的字段码
二进制 字符
D0 D1 D2 D3 D0 D1 D2 D3 D0 D1 D2 D3
十六进制
0 1 0 0 0 0 1 1 0 1 1 1 0 86EH
1 1 0 0 0 0 0 1 0 0 0 0 0 820H
2 1 0 0 0 1 1 0 0 1 0 1 0 8CAH
3 1 0 0 0 1 1 1 0 0 0 1 0 8E2H
4 1 0 0 0 1 0 1 0 0 1 0 0 8A4H
5 0 0 0 0 1 1 1 0 0 1 1 0 0e6H
6 0 0 0 0 1 1 1 0 1 1 1 0 0EEH
7 1 0 0 0 0 1 1 0 0 0 0 0 860H
8 1 0 0 0 1 1 1 0 1 1 1 0 8EEH
9 1 0 0 0 1 1 1 0 0 1 1 0 8E6H
地址 低 → 高
在写数据送显示之前,先按照初始化步骤进行初始化,然后写数据,程序见附录。
14
系统测试与结果
第五章 系统测试与结果
5.1 划亮反显擦除拖移的测试和结果
各模块均调通,将调好的模块连在一起,加上 5v 电压源,启动进行系统初始化。
按键进入点亮模式,用光电笔在 LED 点阵书写显示屏上接触,可以看到接触的点点亮,
LCD 上显示亮点的精确坐标。用光笔快速的在书写显示屏上划过,发现划过的地方变亮,
多次操作都能实现。再次按键,进入反显模式,光笔划过,发现经过的地方没有亮其他
的部分高亮,反显测试正常。再次按键进入擦除模式,用光笔在屏幕上划过,显示屏亮
的地方变暗了。再按一次键可以看到整屏由亮变暗,实现了擦除这一功能。最后进入多
字连写模式和区域拖动模式用光笔在 LED 点阵显示屏上写四个字,最后在屏上循环显
示。最后对写的字用笔圈起来可以用笔移动。实现了对象拖移功能。经过反复的测试,
所有的功能都能很好的实现,系统正常。
5.2 屏亮自动调节测试和结果
外部光环境人为地改变后,测试 LED 点阵书写显示屏的亮度是否发生变化如果发生
变化,则表明能够自动调节,结果屏亮随外部环境的变化而改变,系统正常。
5.3 超时关显示节电测试和结果
加 5v 电压启动系统,对系统初始化。设定待机关显示的时间,在测试点接入万用
表,不进行任何操作到设定的时间,看显示屏是否自动关闭。结果书写显示屏自动关闭,
电路板测试点上的电流小于 5mA。表明测试正常,完成系统要求。
15
总结及展望
总结及展望
本作品完成了题目的基本要求和发挥部分的全部要求,系统性能良好。通过对作品
的各项进行了优化,使系统的性能有了提高。应用 74HC154 译码器设计 32×32 点阵的
行列驱动控制信号,扫描速度满足设计要求。
虽然这次设计满足了课题的要求,但在很多方面都有许多的不足,还不能满足正常
的书写需求,但在设计的过程中提高了自己学习思考的能力,让自己能更好的去面对未
来的工作。
16
致谢
致谢
通过这次毕业设计,综合的应用并学习了自己的专业知识,得到了许多平时很难道
道的知识及经验。在设计的过程中我得到了很多其他老师和同学的帮助,从人才完成了
这次设计。在本论文的写作过程中,我的导师徐江海老师倾注了大量的心血,从选题到
开题报告,从写作提纲,到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,
在此我表示衷心感谢。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以
及关心我的同学和朋友。
17
参考文献
参考文献
[1]周航慈,周立功,朱旻等.PHILIPS 51LPC 系列单片机原理及应用设计[M].北京:
北京航空航天大学出版社,2001.
[2]何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社,1999
[3]徐江海,单片机实用
[M],北京:机械工业出版社,2008
[4]张毅刚,MCS-51 单片机应用设计[M],哈尔滨,哈尔滨工业大学出版社,
1992
18
附录
附录 1 总电原理图(单片机系统与点阵驱动电路)
19
淮安信息职业技术学院毕业设计论文
附录 2 总电原理图(32×32 点阵连接电路)
20
附录
附录 3 源程序
#include "reg52.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit cs103=P1^0; // 液晶
sbit wr103=P1^1; // 液晶
sbit da103=P1^2; // 液晶
sbit csH=P2^6; //
sbit p14=P1^4;
sbit p15=P1^5;
sbit p16=P1^6;
sbit p17=P1^7;
uint idata zb[32][2]={0}; //点亮存储单元
uint xdata zb1[32][2]={0}; //第一个字存储
uint xdata zb2[32][2]={0}; //第二个字存储
uint xdata zb3[32][2]={0}; // 第三个字存储
uint xdata zb4[32][2]={0}; // 第四个字存储
uchar xsdy0=2; // 显示缓冲,低位
uchar xsdy1=1;
uchar xsdy2=11;
uchar xsdy3=3;
uchar xsdy4=10;
uchar xsdy5=5;
uchar xsdy6=6;
uchar xsdy7=11;
uchar xsdy8=8;
uchar xsdy9=9; // 显示缓冲,高位
uchar hsmcs=0; //行扫描控制
uchar lsmcs=0; //列扫描控制
uchar p0hc; //P0 缓冲
uchar p2hc; //P2 缓冲
bit bxzb=0; //
bit bhzl=0;
bit blzl=0; //
bit f_x_flag; //反显状态标志
bit zp_cc_flag; //整屏擦除状态标志
bit bh_cc_flag; //笔画擦除标志
bit lz_dx_flag; //连字多写标志
bit shijiang_flag; //时间设置标志
bit xz_bc_flag; //写字保存标志
bit hx_flag; //唤醒标志
bit xm_flag; //休眠
21
淮安信息职业技术学院毕业设计论文
bit yjxs_flag;
uchar js_5ms;
uchar js_s;
uchar js_fen;
uchar js_fen_set=5;
uchar clzl=0;
uint dlzbw; //点亮坐标位
uint dlzbw1; //点亮坐标位 缓冲
uchar z_t=0; //显示方式状态
uchar xzgs;//写字个数
uchar xs_s;//字符显示时间
uchar xs_weishu;
sfr AUXR = 0x8e; //扩展 RAM 的 SFR
uint code lcd[]= //字段编码
{0x86e0,0x8200,0x8ca0,0x8e20,0x8a40,0x0e60,0x0ee0,0x8600,0x8ee0,0x8e60,0x0000,0x0800};
// 0 1 2 3 4 5 6 7 8 9 空 -
void delay(uint x) //12MHZ 晶振延时 Xms 的子函数
{
uint y=0;
while(x>0){
while(y<1000) y++;
x--;
}
}
void del() //延时函数
{
uchar j;
for(j=0;j<10;j++);
}
void write12(int data1) //液晶写 12 位数据
{
uchar i;
for(i=0;i<12;i++)
{
wr103=0; //wr=0
if((data1&0x8000)!=0){//最高位为 1
da103=1; //输出 1
}
else {//最高位为 0
da103=0; //输出 0
}
del();
wr103=1; //上升沿
del();
22
附录
data1<<=1; //数据整体左移 1 位
}
}
void write9(int data1) //液晶写 9 位数据
{
uchar i;
for(i=0;i<9;i++)
{
wr103=0; //wr=0
if((data1&0x8000)!=0){//最高位为 1
da103=1; //输出 1
}
else {//最高位为 0
da103=0; //输出 0
}
del();
wr103=1; //上升沿
del();
data1<<=1; //数据整体左移 1 位
}
}
void yjcsh() //液晶初始化
{
uint k;
for(k=0;k<2000;k++);
cs103=0; //cs=0
del();
write12(0x8480); //定义模块
del();
cs103=1; //cs=1
del();
cs103=0; //cs=0
del();
write12(0x8300); //定义内部振荡方式
del();
cs103=1; //cs=1
del();
cs103=0; //cs=0
del();
write12(0x8020); //开振荡器
del();
cs103=1; //cs=1
23
淮安信息职业技术学院毕业设计论文
del();
cs103=0; //cs=0
del();
write12(0x8060); //开显示器
del();
cs103=1; //cs=1
}
void yjxs() //液晶显示
{
cs103=0; //cs=0
del();
write9(0xa000); //连续写,从地址 00000 开始
write12(lcd[js_s%10]);
write12(lcd[js_s/10]);
write12(lcd[xsdy2]);
write12(lcd[js_fen]);
write12(lcd[xsdy4]);
write12(lcd[xsdy5]);
write12(lcd[xsdy6]);
write12(lcd[xsdy7]);
write12(lcd[xsdy8]);
write12(lcd[xsdy9]);
del();
cs103=1; //cs=1,写结束
}
void del1() //扫描延时函数
{
uchar j;
for(j=0;j<30;j++);
}
void lsm() //列扫描函数
{ uchar j;
dlzbw=0x0001;
lsmcs=0; // 列次数初值
p0hc=p0hc&0xf0;//p0 缓冲低 4 位清 0
p0hc=p0hc|lsmcs;//p0 缓冲添列信息
P0=p0hc; //微亮输出列
for(j=0;j<16;j++) { //zb[hsmcs] //点亮信息
if(bhzl){
dlzbw1=zb[hsmcs+16][clzl]&dlzbw;
}
else {
dlzbw1=zb[hsmcs][clzl]&dlzbw;
24
附录
}
if (dlzbw1==0) { //不亮
p0hc=p0hc|0xc0;
}
else { //点亮
if(bhzl){ //高
p0hc=p0hc|0x40;
p0hc=p0hc&0x7f;
}
else { //低
p0hc=p0hc|0x80;
p0hc=p0hc&0xbf;
}
}
p0hc=p0hc&0xf0;//p0 缓冲低 4 位清 0
p0hc=p0hc|lsmcs;//p0 缓冲添列信息
P0=p0hc; //微亮输出列
del1(); //亮延时
lsmcs++;
dlzbw = _irol_(dlzbw,1); //左移 1 位
}
lsmcs=15;
p0hc=p0hc&0xf0;//p0 缓冲低 4 位清 0
p0hc=p0hc|lsmcs;//p0 缓冲添列信息
P0=p0hc; //微亮输出列
}
void dzsm()
{ uchar k;
p0hc=p0hc|0x20; // // 微亮片选低位
p0hc=p0hc&0xef; // // 微亮片选低位
P0=p0hc;
bhzl=0; //行小于 16
hsmcs=0; //行次数初值
for(k=0;k<16;k++){ //行循环 16 次 0~15 行
blzl=0; //列小于 16
clzl=0;
p2hc=p2hc&0xbf; //p26
p2hc=p2hc&0xf0; //
p2hc=p2hc|hsmcs;//p0 缓冲添列信息
P2=p2hc; //微亮输出列
lsm(); //调列扫描函数
blzl=1; ////列大于 16
clzl=1;
25
淮安信息职业技术学院毕业设计论文
p2hc=p2hc|0x40; //p26
p2hc=p2hc|hsmcs;//p0 缓冲添列信息
P2=p2hc; //微亮输出列
lsm(); //调列扫描函数
hsmcs++;
}
p0hc=p0hc|0x10; // // 微亮片选低位
p0hc=p0hc&0xdf; // // 微亮片选低位
P0=p0hc;
bhzl=1; //行大于 16
hsmcs=0; //行次数初值
for(k=0;k<16;k++){ //行循环 16 次 16~31 行
blzl=0; //列小于 16
clzl=0;
p2hc=p2hc&0xbf; //p26
p2hc=p2hc&0xf0; //
p2hc=p2hc|hsmcs;//p0 缓冲添列信息
P2=p2hc; //微亮输出列
lsm();
blzl=1; //列大于 16
clzl=1;
p2hc=p2hc|0x40; //p26
p2hc=p2hc|hsmcs;//p0 缓冲添列信息
P2=p2hc; //微亮输出列
lsm();
hsmcs++;
}
}
void zbhs() interrupt 0 // 坐标显示
{
uint zbw; //坐标位初值
xm_flag=0;
js_s=0;
js_5ms=0;
js_fen=js_fen_set;
if(bxzb==0){
zbw=1; ////坐标位初值=1
zbw = _irol_(zbw,lsmcs); //左移到当前列位
if(bh_cc_flag){