基于PIC单片机的LED点阵手写屏设计

发布者:CuriousObserver最新更新时间:2011-05-16 关键字:PIC单片机  LED点阵手写屏 手机看文章 扫描二维码
随时随地手机看文章

    概述

    本文采用PIC 16F877A单片机为主要核心控制元件,设计了一个32×32 LED点阵模块的书写显示屏。它主要由光笔模块和点阵显示模块组成,光笔模块利用光敏电阻的光电特性,实现微亮检测功能。光笔反馈信号经放大器LM324比较后,送给单片机处理。32×32点阵显示模块、驱动模块由74HC595外设驱动阵列和8位串行输入/输出移位寄存器ULN2803A组成。光笔通过显示屏微亮扫描寻找坐标值,按键和LED指示灯可实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等书写显示功能。

    系统系统总体构成

    本系统设计包括三大部分:PIC 16F877A单片机主控器、光笔控制器、点阵显示屏。系统的结构如图1所示。

图1 系统结构图

    PIC系列单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。其内部还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,并包括A/D和D/A模块,执行速度快,功能强大。

    光笔选用光敏电阻作为感应器件,根据光敏电阻的光电特性,光敏电阻两瑞电压因光电阻的变化而变化。电压值经电压比较器LM324比较后可输出高/低电平。光电特性非线性易调节,且灵敏度较好。

    LED与数码管同步使用,LED用于功能指示灯,数码管用于32×32点阵LED模块书写显示屏当前光笔所在的行/列坐标值。

    分析与计算

    (1)光笔选取与参数设计

    点阵用微亮的光进行扫描,光笔用来感应。当光笔感应到光时,通过程序可获当前点阵光对应的坐标值。从而做出相对应的处理。光笔起着关键作用,其感应器件是光敏电阻。光敏电阻的光电特性如图2所示。

图2 光敏电阻光电特性[page]

    光敏电阻安装在光笔笔头,用于感应点阵扫描光。光笔电路图如图3所示。电路经过放大器LM324进行正相输入/反相输入电压比较,输出高低电位。经测量可知,在光照条件下,LM324输出端为0V(RB0),光敏电阻两端电压为0V;无光时,光敏电阻两端电压为2.8V,LM324输出端为高电位。由分压公式可得出RP阻值为7360Ω。当光笔接收到不同光线时,只需调节电位器,光笔正常工作。所以,在不同环境下,只需调节电位器,点阵显示屏一样正常工作。


图3 光笔电路图

    点阵屏驱动参数设计无现成的32×32点阵LED模块,因此采用16块8×8点阵拼成32×32点阵。但这样占用单片机I/O过多,必须对其进行扩展。点阵工作电压在1.5V~2.2V左右,驱动电流较大。

    (2)屏亮自动调节设计

    屏亮自动调节设计采用光敏电阻和LM317(三端可调正电压稳压器)实现屏亮自动调节。由光敏电阻光电特性原理可知,光敏电阻在不同光线照射下,阻值不一样。根据此原理,光敏电阻与LM317可调电阻并联。当光线不一样时,LM317输出不一样的电压阻值。屏亮自动调节电路如图4所示。

图4 LID屏亮度自动调节电路

    LM317输出电压计算,Vout由调节端的总电阻R和电流I共同决定。其输出电压计算公式为:
。这里通过改变电阻而改变电压。

    (3)超时关显示节电设计

    当光笔长时间(1~5min时间可由控制器输入设定)未接触显示屏,能自动关闭显示并进入休眠状态。进入休眠状态由程序控制,单片机进入休眠后,消耗电流在2mA以下。

    电路设计

    (1)点阵显示屏电路设计

    32×32点阵LED显示屏共有32个端口,如不驱动点阵,占用单片机I/O过多。这里采用74HC595(八外设驱动阵列)、ULN2803A(8位串行输入/输出移位寄存器)点阵行驱动和74HC154、7404点阵列驱动。共同完成32×32点阵LED显示屏驱动。显示屏行驱动电路如图5所示、列驱动电路图如图6所示。仅仅用到8个I/O口,点用资源少,易控制并且显示效果很好。


图5 显示屏行驱动电路图


图6 显示屏列驱动电路图

[page]

    (2)坐标显示电路设计

    根据题目要求,在“点亮”功能下,光笔接融到显示屏某点时,控制板同步显示该点的坐标值。坐值标为数字,所以可采用四个数码管作为显示器件。采用74LS164扩展单片机I/O口,其电路如图7所示。共有四套这样的电路,其中两套用于X轴显示,另外两套用于Y轴显示。


图7 坐标显示电路

    软件设计

    该系统对软件设计要求高,大部分功能只能由软件完成。因程序量大,时间有限,采用C语言编程,这样就大大提高了程序移值性问题,提高了编程效率。编程关键点在于微亮扫描与捕捉储存,如图8所示。


图8 扫描与储存部分流程图

    总结

    本文所设计的32×32点阵LED模块书写显示屏,应用光敏电阻的光电特性,对光进行检测感应,反馈给单片机,通过处理可实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等书写显示功能。

 

关键字:PIC单片机  LED点阵手写屏 引用地址:基于PIC单片机的LED点阵手写屏设计

上一篇:基于dsPIC30F4012的冰箱制冷压缩机控制器
下一篇:PIC单片机的I2C 24LC02 C读写程序

推荐阅读最新更新时间:2024-03-16 12:35

基于PIC单片机的IC卡读写器设计与应用
引言   本设计的主要目的是介绍IC卡的数据存储技术和IC卡的数据通信,因而使用存储器卡。由于本设计中既可与IC卡进行串行同步通信,又要与上位机进行中行异步通信,因而需要选择一种同时具有这两种通信方式的单片机。因为PIC16F877不仅具有本设计所需要的两种通信方式,而且还具有运行速度快、低功耗、价格低等优点,所以选择PIC16F877单片机作为本设计的单片机。   图1是本设计的电路图,图中电源变换电路和发光二极管等指示电路没有画出。图中的二极管电路是单片机与IC卡通信数据线的保护电路。当数据线上的电压为负电压时,与地相连的二极管导通;当数据线上的电压大于 5V时,与 5V相连的二极管导通,从而保证数据线上的电压在0V~ 5
[单片机]
基于<font color='red'>PIC单片机</font>的IC卡读写器设计与应用
PIC单片机开发板之独立键盘扫描C语言代码
/* 为自已写的独立键盘扫描 犯的错:unsigned密写成了unsigner一直提示找不到a,b PORTD0=1;不行,要写成PORTD=0x01;才可以,如果一定要写,应写为RD0=1; PORTD=0x03;不是第三个灯亮,而是0000 0011是两个灯亮 PORTD=0x8则是0000 1000是第4个灯亮。。。。。出错因原进制转化,刚开始写程序进制转化混掉了。 */ #include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); const unsigned char table = {0x3f,0
[单片机]
<font color='red'>PIC单片机</font>开发板之独立键盘扫描C语言代码
PIC单片机模拟异步串行通讯UART
用TMR0实现定时查询。任何带中断的PIC上都可以实现。可用此法扩展多个串口。 ;|--------------------------------------------------------------| ;| Implement duplex USART base on normal I/O pin | ;| Using TIMER0 interrupt for bit timing | ;| Tested on PIC16F83 running at 4MHz | ;| Written by Paul Zhang, Microchip Tech Inc
[单片机]
基于UCC3895与PIC单片机的智能充电器的设计
采用新一代移相PWM控制芯片 UCC3895 和PICl6F917单片机,针对常用的铅酸蓄电池设计开发了一种智能充电器,介绍了其硬件设计思路和软件实现方法,并提出了智能控制策略。 关键词:UCC3895;PIC;智能充电器 0 引言 现代通讯设备、电子产品、电动车辆、UPS等普遍采用蓄电池作为电源,然而多数充电设备功能单一,通用性差,维护质量低,导致产品的使用效率大大降低。本文采用UCC3895和PIC单片机,针对常用的铅酸蓄电池,设计开发了一种智能充电器。 UCC3895是TI公司生产的专用于PWM移相全桥DC/DC变换的新型控制芯片,可工作于电压模式,也可工作于电流模式,并且可实现输出脉冲占空比从0到100%相移
[工业控制]
基于UCC3895与<font color='red'>PIC单片机</font>的智能充电器的设计
PIC单片机定时器1的实际应用
#define uint unsigned int __CONFIG(0x3B31); void init(); uint intnum; void main() { init(); while(1) { /*if(intnum==20) { intnum=0; RD0=!RD0; }*/ } #include #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); void init(); uint intnum; void main() { init(); while(1) { /*if(intnum==20) { intnum=0;
[单片机]
<font color='red'>PIC单片机</font>定时器1的实际应用
PIC单片机电源供电设计经验
使用PIC单片机过程中,我经常遇到使用单片机时,只注重软件,而轻视硬件的设计人员。 功能调试一切正常,但是在产品使用时,常出现各种各样的问题;这不仅与软件的健壮性相关,同时也与硬件设计不够完善有很大关系;有些开发人员(尤其是偏重软件设计的开发人员)会提出:硬件不足的软件来弥补。 但实际情况是在硬件设计严重不足,软件弥补的产品将不能提供很高的可靠性。 就此,简单分享下我在硬件设计,提高可靠性的经验;当然,仅是对我使用PIC单片机积累的经验而已,不足之处,还请见谅。 单片机的电源供电设计: 1.芯片无论是否使用模拟部分和AD部分,外围的VDD和GND,VDDA、VSSA、Vref(如果封装有该引脚)都必需要连接,不可悬
[单片机]
PIC单片机最小系统(实物)
1、使用芯片PIC18F25KXX; 2、实物图如下: 3、使用PICKIT3下载器下载程序;使用20pf的贴片电容及4.096无源晶振;外围电路可自行添加 4、亲测可以正常使用; 不过在之前的程序里需要添加配置字,关于配置字有专门的文章
[单片机]
<font color='red'>PIC单片机</font>最小系统(实物)
PIC单片机对摩托车防盗报警器的设计
R3EQU0X03 PORT5EQU0X05 PORT6EQU0X06 R3EQU0X03 KEY_STATUSEQU0X10;低半字节为按键标志,高半字节为控制标志 SIGNAL_LOWEQU0X11;信号电平低计数器 SIGNAL_HIGHEQU0X12;信号电平高计数器 DATA_RECORDEREQU0X13;接收码数据字节 CODE_RECORDER2EQU0X14;接收码地址高字节 CODE_RECORDER1EQU0X15;接收码地址低字节 CODE_TOTALEQU0X16;接收数据位计数器 KEY_COUN TE REQU0X17;两次按键检测计数器 /**********************KEY_S
[单片机]
<font color='red'>PIC单片机</font>对摩托车防盗报警器的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved