对智能仪器系统中的在系统编程(ISP)技术及其在仪器系统中在线编程的实现、应用前景等进行了分析。介绍了P89C669相对于传统51系列单片机的增强特性,并给出P89C669快闪存储器的ISP实现电路和具体方法。结合实际介绍了一种可以在系统编程的智能键盘、数码管显示系统。
上传时间: 2013-12-27
上传用户:LouieWu
在单片机应用系统中,用户必须时刻掌握系统的运行状况及某些重要的过程信息,即用户必须通过显示系统获取当前单片机的运行情况,因此显示技术是单片机的重要组成部分。在实际应用中,为了节约端口资源和整机成本,通常采用单片机的通用串行口、8位移位寄存多闪烁现象越严重。本文介绍一种利用SPI器件优化单片机显示系统的方法,该方法克服了一般显示方法的以上两个缺点,具有一定的实用性。器74LS164及LED数码管构成串行动态显示系统,该系统一定程度优化了显示输出通道对单片机I/O端口的占用数量,但它仍需大量(几个LED就占用几条I/O口线)的I/O端口作LED片选,同时由于74LS164本身未提供输出允许端,单片机送来的串行数据从高位LED移向低位LED的过程中,会出现LED本应熄灭的笔划发光而形成闪烁现象,且LED数越多闪烁现象越严重。本文介绍一种利用SPI器件优化单片机显示系统的方法,该方法克服了一般显示方法的以上两个缺点,具有一定的实用性。
上传时间: 2013-10-30
上传用户:asdstation
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
单片机汉字显示系统电路图
上传时间: 2013-11-03
上传用户:chendawei
基于ARM和CPLD的LED彩屏显示系统的研究
上传时间: 2013-10-14
上传用户:ukuk
为了实现对成像测井系统中井下仪器所采集数据的实时显示,设计了一种基于ARM LPC1788的显示系统。该系统主要用来接收上位机命令,采集各种模拟信号,将采集数据实时显示在液晶屏上。软件部分采用Keil RealView MDK+c语言编程。实际应用表明,该系统具有操作简便、测试准确的特点,达到了设计要求,满足成像系统整体需求。
上传时间: 2013-11-02
上传用户:lht618
介绍一种应用于实际工业生产现场中的大型LED显示系统的设计和研制。该系统采用高性能32位ARM微处理器为其控制核心,并由其实现LED显示屏刷新及动态显示效果的控制。系统通过RS485协议与现场总线进行数据通信,LED显示屏的行、列驱动信号分别由ARM处理器的2个SPI口输出。该系统具有硬件结构简单、LED显示刷新速度快、系统可靠、功能强大、成本适宜等特点。本方案经过在某大型物流生产线上的长期实际运行,证明其设计是成功的。
上传时间: 2013-11-16
上传用户:zhichenglu
汉字点阵显示程序
上传时间: 2013-12-02
上传用户:zhaiye
1. 能显示系统当前时间,显示到秒级,并随时间刷新。 显示可采用七段电子表方式也可采用钟表方式,最好可在两种显示方法间进行切换
标签: 显示系统
上传时间: 2015-01-22
上传用户:13160677563
MGLS-240128TA液晶点阵显示驱动程序
上传时间: 2013-12-14
上传用户:003030