介绍了以单片机SST89E554RC 为控制器的点阵中文显示控制屏的设计。详细介绍了系统硬件的结构与软件的控制,以及如何通过PC 机将要显示的汉字汉模提取出来并发送给单片机,然后显示在点阵控制屏上的过程,并对模块中采用USB 接口的原理进行说明。
上传时间: 2013-11-02
上传用户:lty6899826
51单片机动态LED显示电路编程实例:上一节我们讲述了单只LED与单片机的接口电路及编程实例,目的在于让初学者了解LED在单片机中的应用原理,单只LED显示在实际应用中并无多大用途,一般都是多位的LED显示。现在我们作进一步学习,我们要讲解的是8位LED的显示原理及实际的编程方法。这里我们没有采用多I/O口的8051系列单片机,而是采用了完全兼容C51指令系统的质优价廉的AT89C2051单片机,它的软件编程与C51完全一致。 在多数的应用场合中,我们并不希望使用多I/O端口的单片机,原则上是使用尽量少引脚的器件。在没有富余端口的情况下,怎样通过扩展电路达到预期的目的呢?我们希望通过此例使设计人员在实际应用中了解一点电路扩展的原理,对实际的应用有所帮助。 此电路中,74LS273用于驱动LED的8位段码,8位LED相应的"a"—"g"段连在一起,它们的公共端分别连至由74LS138(点击芯片型号可浏览其详细的技术手册)译码选通后经74LS04反相驱动的输出端。这样当选通某一位LED时,相应的地址线(74LS04输出端)输出的是高电平,所以我们的LED选用共阳LED数码管。 动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。在C51指令中,延时子程序是相当简单的,并且延时时间也很容易更改,可参见程序清单中的DELAY延时子程序。 为简单起见,我们只是编写了8位LED同步显示"00000000"—"11111111"直到"99999999"数字,并且反复循环。程序很简单,流程图略去。
上传时间: 2013-11-18
上传用户:皇族传媒
水位监测报警器 (显示部分)摘要:水位监测报警器是利用在江河湖海监测水位高度的水位监测系统。该系统在实际应用当中,能准确显示水水位的高度。水位监测报警器设计新独特,具有体积小,灵敏度高、工作稳定的特点,更重要的就是能够远程接收信号,实现远程自动控制,大大提升技术性能。现在重点介绍水位监测报警器的显示部分的内部电路、性能及应用。关键词:水位监测报警器 MC74HC4511N芯片 共阴显示数码管
上传时间: 2014-01-03
上传用户:569342831
所学的指令LD、LDI、OUT AND、ANI OR、 ORI LDP、 LDF、ANDP、ANDF、 ORP、 ORF ORB、 ANB MPS、 MRD、 MPP MC、 MCRSET RSTNOP END 自锁电路触点的动作发光二极管的工作原理。八段码显示是利用发光二极管的不同段码组合来实现的,它可以实现0到F的显示。抢答器的显示就是利用八段码显示的特性,来完成几个不同组别的显示。用PLC实现八段码显示0~9组的3组以上抢答器的程序编写,并完成以下要求:1)设计由PLC实现的八段码显示0~9组的3组以上抢答器的程序编写,并完成以下要求: ①列出PLC的输入输出地址分配表 ②画出PLC的输入输出接线图(即I/O接线图) ③设计PLC的梯形图 ④根据梯形图列写指令表 2)按PLC控制I/O口(输入/输出)接线图在模拟实验设备上正确接线。
上传时间: 2013-11-22
上传用户:lmeeworm
SHUZIZHONG显示电路 源程序如下: #include <reg51.h>#include <intrins.h> unsigned char data dis_digit; unsigned char code dis_code[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsigned char data dis_buf[16];unsigned char data dis_index;char hour,min,sec,wang,year,mouth,day;unsigned char sec100;
上传时间: 2013-11-24
上传用户:fdmpy
带键盘扫描和LED/LCD驱动显示板电路设计
上传时间: 2013-11-24
上传用户:liaocs77
汇编语言程序设计案例1—动态显示/障碍物检测/障碍物方位检测 10-1. LED数码管显示原理10-2. 案例分析1(2位学号显示)10-3. 案例分析2(简易按键抢答)10-4. CJNE、JC、JNC的应用10-5. 课后思考和实验准备11-1. 智能小车障碍检测原理11-2. 智能小车障碍检测硬件实现11-3. 智能小车障碍检测软件实现11-4. 课后思考和实验准备12-1. 智能小车障碍物方位检测原理12-2. 智能小车障碍物方位检测硬件实现12-3. 智能小车障碍物方位检测软件实现12-4. 课后思考和实验准备
上传时间: 2013-11-10
上传用户:togetsomething
摘 要:介绍了一种以单片机89C51为控制器的点阵LED显示系统。该系统采用RS-232通信标准,通过以89C51和89C2051为核心的控制电路和后续驱动电路,得到了LED显示屏多种显示方式和状态。本文详细说明了该电路的工作原理及编程思路。关键词:89C51 89C2051 RS-232 点阵LED 实时时钟1、 LED点阵显示系统简介随着图形点阵LED显示模块在各行各业的逐步使用,使得人机界面变得越来越直观形象,尤其对于国内大多数需要有汉字和图形显示的用户来说,显示界面的友好与否,将直接影响到其产品的形象和市场竞争力。本文所介绍的点阵LED显示屏,显示汉字和各种常见字符等信息,可广泛应用于各种场所。具有结构简单、安装方便、字型美观、图案清析。采用高性能单片机控制,性能稳定,可靠性高,具有掉电保护功能,可完全脱机运行,可以显示约2000个文字。经过一条RS-232串口线与电脑连接更换信息,操作简单,使用方便。 2、 LED点阵显示系统的硬件设计LED点阵显示系统由计算机、RS-232通讯电路、控制电路和LED点阵显示电路构成,结构框图如图1所示。
上传时间: 2013-11-29
上传用户:时代将军
全遥控6声道AV机的汇编程序:;;;;;;;;;;;;;;;;;;;6CH AMPLIFIER;;;;;;;;;;;;;;;;;----脚位定义-----;;;;;;;;;;;;;;;;;;;6CH AMPLIFIER;;;;;;;;;;;;;;;;;----脚位定义----- PT6311_CLK EQU P3.4PT6311_STB EQU P3.5PT6311_DATA EQU P3.3 UP EQU P3.1DOEN EQU P3.0 PT2313_DATA EQU P0.7PT2313_CLK EQU P2.7 AC3 EQU P2.6 ;(控制4053的信号) M62429_DA EQU P2.3 ;(SURL/R)M62429_CK EQU P2.4 M62429_CK1 EQU P2.5 ;(C/BW) M62429_CK3 EQU P0.0 ;(ECHO,MVOL)M62429_DA3 EQU P1.7M_DELAY1 EQU P0.1M_DELAY2 EQU P0.2 AD_OUT BIT P0.5AD_IN BIT P0.6 ;----片内RAM定义--------GIF_SIGN EQU 40H ; 动画进程标记(=1,走过场字幕 )GIF_TIME1 EQU 41H ; 动画跑字的时间间隔速度GIF_LONG EQU 42H ; 动画字幕的长度 DISP_BUFFER EQU 43H ; 显示缓冲区地址指针DISP_INDEX EQU 44H ; PT6311片内地址指针
上传时间: 2013-10-19
上传用户:fac1003
16 16点阵显示汉字原理及显示程序 #include "config.h" #define DOTLED_LINE_PORT PORTB #define DOTLED_LINE_DDR DDRB #define DOTLED_LINE_PIN PINB #define DOTLED_LINE_SCKT PB1 #define DOTLED_LINE_SCKH PB5 #define DOTLED_LINE_SDA PB3 #define DOTLED_ROW_PORT PORTC #define DOTLED_ROW_DDR DDRC #define DOTLED_ROW_PIN PINC #define DOTLED_ROW_A0 PC0 #define DOTLED_ROW_A1 PC1 #define DOTLED_ROW_A2 PC2 #define DOTLED_ROW_A3 PC3 #define DOTLED_ROW_E PC4 uint8 font[] = { /*-- 调入了一幅图像:这是您新建的图像 --*/ /*-- 宽度x高度=16x16 --*/ 0x00,0x00,0x00,0x00,0x08,0x38,0x18,0x44,0x08,0x44,0x08,0x04,0x08,0x08,0x08,0x10, 0x08,0x20,0x08,0x40,0x08,0x40,0x08,0x40,0x3E,0x7C,0x00,0x00,0x00,0x00,0x00,0x00 }; static void TransmitByte(uint8 byte); static void SelectRow(uint8 row); static void FlipLatchLine(void); static void TransmitByte(uint8 byte) { uint8 i; for(i = 0 ; i < 8 ; i ++) { if(byte & (1 << i)) { DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA); } else { DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SDA); } //__delay_cycles(100); DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKH); //__delay_cycles(100); DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKH); //__delay_cycles(100); } } static void SelectRow(uint8 row) { //row -= 1; row |= DOTLED_ROW_PIN & 0xe0; DOTLED_ROW_PORT = row; } static void FlipLatchLine(void) { DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKT); DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKT); } void InitDotLedPort(void) { DOTLED_LINE_PORT &= ~(_BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH)); DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA); DOTLED_LINE_DDR |= _BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH) | _BV(DOTLED_LINE_SDA); DOTLED_ROW_PORT |= 0x1f; DOTLED_ROW_PORT &= 0xf0; DOTLED_ROW_DDR |= 0x1f; } void EnableRow(boolean IsEnable) { if(IsEnable) { DOTLED_ROW_PORT &= ~_BV(DOTLED_ROW_E); } else { DOTLED_ROW_PORT |= _BV(DOTLED_ROW_E); } } void PrintDotLed(uint8 * buffer) { uint8 i , tmp; for(i = 0 ; i < 16 ; i ++) { tmp = *buffer ++; TransmitByte(~tmp); tmp = *buffer ++; TransmitByte(~tmp); SelectRow(i); FlipLatchLine(); } } void main(void) { InitDotLedPort(); EnableRow(TRUE); while(1) { PrintDotLed(font); __delay_cycles(5000); } } //---------------------------------------------------- config.h文件 #ifndef _CONFIG_H #define _CONFIG_H //#define GCCAVR #define CPU_CYCLES 7372800L #ifndef GCCAVR #define _BV(bit) (1 << (bit)) #endif #define MSB 0x80 #define LSB 0x01 #define FALSE 0 #define TRUE 1 typedef unsigned char uint8; typedef unsigned int uint16; typedef unsigned long uint32; typedef unsigned char boolean; #include <ioavr.h> #include <inavr.h> #include "dotled.h" #endif //-----
上传时间: 2013-11-18
上传用户:mnacyf