用单片机控制的数字触发器(编辑修改稿)内容摘要:
汉字的点阵数据。 当需要滚动显示时,则可在接下来的扫描周期的每个行扫描中断处理程序中,将对显示缓冲区的相应行点阵数据左移一位,同时更改显示缓冲区的内容。 (需要注意的是,要确保该操作能在 的中断时间内完成。 这里89C52 采用 22MHz 晶振,实验证明可以实现该操作)。 这样,在一个扫描周期后, 6 整个汉字将左移一列,而显示缓冲区的内容也同时更改。 由于预装载区保存了 1 个汉字点阵数据,即 16 16 点阵,所以当前显示缓冲区的 内容只能移动 16 列。 当下一个滚动到来时,滚动指针将移动到点阵数据存储区的下一个汉字的首地址,并在预装载区存入该汉字的点阵数据。 然后重复执行上述操作便可实现滚动显示。 特殊字符或图形的显示与此类似,这里不再赘述。 打字显示要求汉字在显示屏上按从左到右的顺序一个个的出现,如同打字的效果。 设计时可采用如下方法:首先将 LED 显示屏对应的显示缓冲区全部清零,即 LED 显示空白,然后每间隔一个“软定时器”设定的动态显示时间,显示缓冲区依次加入一个汉字点阵数据并进行扫描显示,这样就可达到打字显示的效果。 图 2 LED滚动显示处理示意图 PC 机控制程序 a.通讯功能的实现 在 Windows 环境下,实现 PC 与单片机的通讯可利用 Windows 的通讯 API 函数或者利用 VC++(或其它语言)的标准通讯函数_ inp、_ outp 来实现。 但上述两种方法比较繁琐,而采用 ActiveX 控件 MSComm32 来实现则非常方便。 该控件用事件的方式简化了对串口操作的编程,并可设置串行通信的数据发送和接收,还可对串口状态及串口通信的信息格式和协议进行设置。 其初始化程序一般情况下, PC 要与多个单片机 89C51 系统进行主从式 通讯,为了区分各单片机系统,可以使 89C51 采用串口工作方式 3,即 11 位异步接收/发送方式,该方式的有效数据为 9 位,其中第 9 位为地址/数据信息的标志位,其作用是使从机据此判断发送的数据是否为地址,从而实现多机操作。 但现在由于采用的是 MSCOMM 控件来实现 PC 机和单片机之间的通讯,这是一种标准的 10 位串口通信方式,即 8 7 位标准数据位和该数据的起始位、停止位各 1 位。 因此二者格式不相符,故很难利用上述方案。 因此可考虑将单片机串口设为工作方式 1,即改为 10 位异步接收/发送方式来解决,其通讯流程如下 : 首先发通信开始标志,接着发送需要操作的单片机系统地址,然后发送显示工作命令字,该命令包括 2 个字节,前一字节用于设定显示方式和滚动方向,后一字节则用于设定显示速度。 再往下是传送显示内容的点阵数据,最后对数据进行校验。 该通讯规约非常简便,能够较好的解决上述问题,从而实现 PC 机与多单片机之间的主从式通讯及对显示的控制。 需要注意的是,当显示内容需要改变时,为了避免在单片机串行中断接收数据时,显示屏出现乱码,应使显示屏暂不显示(处于 “黑屏”状态),直到数据接收完全,串行中断处理结束时再显示。 汉字字模的提取非常关键,本文的字模数据取自 UCDOS 下的字库文件 HZK16。 关于这方面的介绍较多,这里不再赘述。 对于特殊字符或图形点阵数据的提取,简便的方法可以先做一个 BMP 文件,然后用一些取模软件(如字模提取 )来获得。 为了显示方便,点阵数据的格式应为 n( 16 8),不足要求的则应以 0 数据补充。 b.动态效果模拟显示 为了方便调节 LED 的显示效果,笔者在 PC 机的控制界面上设计了 LED 显示屏的模拟显示,它同实际的显示效果完全一样。 用户可以设定显示的模式, 并调节显示速度,然后在界面上对显示 效果进行预览,同时还可以随时修 改和设定参数,因而十分方便简捷。 为此,可先在界面上描绘出虚拟的 LED 显示屏,由于实际的显示屏为 160 16 点阵,故须在界面上设定相同的区域。 实现动态显示效果的方法和以上几种基本类似,这里以滚动显示为例作一说明。 对于需要滚动的文字,可以将其设置为位图格式,暂存于内存中,然后利用VC 提供的位图拷贝函数 BitBlt 将位图复制到显示位置。 对于特殊字符或图形,则可以直接利用 BitBlt 函数调用到显示位置。 然后在类 CLEDDlg 的 OnTimer 函数中调用该函数,以实现文字的 滚动显示。 另外,也可以通过设定不同的响应 时间间隔来改变文字的滚动速度 [2]。 汉字显示屏广泛应用与汽车报站器,广告屏等。 本文介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用 8*8的点阵发光管模块, 而是 8 直接使用了 256 个高量度发光管,组成了 16 行 16 列的发光点阵。 同时为了降低制作难度, 仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。 b 汉字显示的原理: 我们以 UCDOS 中文宋体字库为例,每一个字由 16行 16列的点阵组成显示。 即国标汉字库中的每一个字均由 256点阵来表示。 我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。 事实上这个汉字屏不仅可以显示汉字, 也可以显示在 256像素范围内的任何图形。 [3]用 8位的 AT89C51单片机控制, 由于单片机的总线为 8位,一个字需要拆分为 2个部分。 软件打开后输入汉字,点“检取”,十六进制数据的汉字 代码 即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可。 我们把行列总线接在单片机的 i0口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。 在这个例子里,由于一共用到16 行, 16 列,如果将其 全部接入 89c51单片机, 一共使用 32条 io口,这样造成了 io资源的耗尽,系统也再无扩充的余地。 实际应用中我们使用 416线译码器74ls154来完成列方向的显示。 而行方向 16条线则接在 p0口和 p2口。 程序清单: ORG 00H LOOP: MOV A,0FFH ;开机初始化,清除画面 MOV P0,A ;清除 P0 口 ANL P2,00 ;清除 P2 口 MOV R2,200 D100MS: MOV R3,250 ;延时 100 毫秒 DJNZ R3,$ DJNZ R2,D100MS MOV 20H,00H ;取码指针的初值 l100: MOV R1,100 ;每个字的停留时间 L16: MOV R6,16 ;每个字 16 个码 MOV R4,00H ;扫描指针清零 MOV R0,20H ;取码指针存入 R0 9 L3: MOV A,R4 ;扫描指针存入 A MOV P1,A ;扫描输出 INC R4 ;扫描指针加 1,扫描下一个 MOV A,R0 ; 取码指针存入 A MOV DPTR,TABLE ;取数据表的上半部分的代码 MOVC A,@A+DPTR MOV P0,A ; 输出到 P0 INC R0 ;取码指针加 1,取下一个码。 MOV A,R0 MOV DPTR,TABLE ;取数据表下半部份的代码 MOVC A,@A+DPTR MOV P2,A ;输出到 P2 口 INC R0 MOV R3,02 ;扫描 1 毫秒 DELAY2: MOV R5,248 ; DJNZ R5,$。用单片机控制的数字触发器(编辑修改稿)
相关推荐
As a result, ROH attacked the carbon atom of HCOOCu, the intermediate of step (2), more slowly. But the spatial obstacle of 1butanol is the smallest among all butanols, and this is favorable to the
因数降低,所以一般工厂的自然功率因数都比较低,它给工厂供配电系统造成不利影响。 根据我国制定的按功率因数调整 收费的办法要求,高压供电的工业用户和高压供电装有带负荷调压装置的电力用户,功率因数应达到 以上,当功率因数低于 ,电业局 9 不予供电。 因此,工厂在改善设备运行性能,合理调整运行方式提高自然功率因数的情况下,都需要安装 无功功率补偿装置,提高工厂供配电系统的功率因数。 在工厂中
a result, ROH attacked the carbon atom of HCOOCu, the intermediate of step (2), more slowly. But the spatial obstacle of 1butanol is the smallest among all butanols, and this is favorable to the
外部存储器时将跳过一个 ALE 脉 冲。 对 Flash 存储器编程期间,该引脚还要输入编程脉冲( PROG )。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位, 可禁止 ALE 操作。 该位置位后,只有一条 MOVX 和 MOVC 指令可激活。 此外,此引脚会被微弱拉高,单片机执行外部程序时,应该置 ALE 无效。 PSEN :程序存入允许( PSEN
owever the main factor influencing variability of caro tenoid quality in juice has been shown to be geic diversity. Kato et al. showed that mandarin and orange juices accumμLated high levels of
........................... 10 六、 总结 ...............................................................................................................................................................11