基于单片机的LED显示屏硬件设计方案
来源: 作者: 发布时间:2015-09-03 09:19:45 浏览量:2 电路设计
根据系统整体结构设计的电路的原理图如图1 所示。
3 总体设计
3.1 屏体接口模块
屏体接口包括屏体接口头文件、屏幕缓冲区的定义、屏体接口初始化、刷新定时器中断服务程序和SPI中断服务程序几个部分。
屏体接口的头文件screen.h 应该使屏幕缓冲区对其他应用可见, 并提供屏体初始化函数。具体定义如下:
#差模电感器ifndef _SCREEN_H_
#define _SCREEN_H_
#include "in大功率电感贴片电感器cboard.h"
extern u8 xdata SCR_BUF[16][16];
void screen_init(void);
#endif
这样就把屏幕缓冲区的结构暴露给应用, 但应用不必关心具体的屏幕刷新操作。
具体屏体接口的实现集中在一个文件screen.c 中定义。具体如下:
首先是屏幕缓冲区定义:
u8 xdata SCR_BUF[16][16]_at_0x0000;//~0x00ff 256Bytes其次是当前显示行和输出列变量定义, 属于静态变量, 应用程序不可见。
static u8 data row,col;
然后是屏幕初始化, 包括刷新定时器0 的初始化、SPI 的初始化、锁存bLatch 信号的初始化、屏幕缓冲区的初始清零以及定时器和SPI 中断的优先权和使能位的初始化代码略。
SPI 和定时器0 的中断服务塑封电感程序是屏体接口的关键。
定时器0 的中断服务程序首先进行扫描行增量取模运算,并将扫描行输出。然后依据扫描行取出屏幕缓冲区对应行的第一个字节发送到SPI 端口。同时列增量。
void display_ONe_screen(void)interrupt 1 using 3{
row = (++row)&0x0f;
P0 = (P0 & 0xf0)|((~row)& 0xf);
col = 0;SPDAT = ~SCR_BUF[row][col++];
}
这样编写的屏体驱动, 应用只要在初始化屏体后,向屏幕缓冲区中写入要显示的数据即可, 而不必关心屏幕显示的细节。
3.2 UART 接口
UART 接口负责与上位机的数据收发, 尽管发送可以同步进行, 但接收必须异步进行。因而UART 接口的核心仍然应该是一个中断服务程序。
UART 接口的头文件uart.h 隐藏了接收缓冲区的信息, 用户可调用的函数只有初始化、发送和接收。
#ifndef _UART_H_
#define _UART_H_
void uart_init(void);
void uart_put_c(u8 ch);
u8 uart_get_c(u8 *);
#endif
UART 的接口实现首先定义一个接收缓冲FIFO, 以及对FIFO 的读下标uart_rd 和写下标uart_wr, 他们都是文件内可见的静态变量:
static u8 xdata uart_buf[64];
static u8 uart_电感生产rd,uart_wr;
bit fSend
UART 的初始化包括进行FIFO 的初始化和UART格式、波特率、中断的初始化。代码略。
UART 的ISR 主要是服务于接收, 无条件地将数据装入FIFO, 并调整写入指针。
static void uart_isr(void)interrupt 4 using 1{
if(RI){RI = 0;
电感器的种类 uart_buf[uart_wr++] = SBUF;
uart_wr &= 0x0f;
}
}
提供给用户的发送程序首先检测发送结束标记, 如果为0, 表示上次发送尚未结束, 直接返回错误信息1。
基于单片机无线控制的多功能打铃仪设计0 前言针对传统电铃控制器存在施工麻烦(拉专线)、控制不灵活、定时不准、校时繁琐、功能简单的缺点,本作品具有以下几个方面的特色及创新:一是采用GPS 授时技术,控制时间精准,更为重要的是主机不需要调试
工程师分享无线遥控LED广告牌的设计与实现引言LED广告牌是一种面向公众的信息显示终端,有着非常广泛的民用和商用价值。而现在大多数LED广告牌显示的信息都是事先固化在系统中的,这失去了信息的实时性,特别不方便用户更换显示内容;少数LED广告牌
浅谈模块化UPS的技术选择 1. 引言近年来,随着互联网、云计算、移动互联网和物联网等技术的快速发展,数据中心系统规模不断增大,重要性越来越高,其对系统弹性、可用性、运营效率、可运维性等提出了更高的要求。作为数据中心供配电系统