.
..
设计题目:LED点阵显示控制系统设计
《单片机课程设计》设计报告 .
一.前言
二.LED点阵显示控制系统设计 1、系统设计总体结构
2、芯片选择 3、8255A主要特性 三.硬件电路设计 1、AT89S52最小系统
2、8255A与AT89S52单片机接口电路 3、8255A驱动16X16 LED点阵电路设计
四.软件设计 1、主程序设计
2、延时程序设计 3、8255A输出框图
五.调试与测试结果分析 1、实验连线 2、程序调试 3、结果分析 六.设计原理阐述
七.参考文献
八、设计总结及心得体会 附录:程序清单
..
.
一.前言
LED点阵显示屏的设计
设计背景:
设计要求:
系统的总体方案设计:
..
.
..
.
二.LED 点阵显示控制系统设计
1、系统的总体结构:
2、芯片的选择:
3、8255A芯片的主要技术特性: 1)如图所示是8255A芯片的引脚图:
..
单 片 机 行 驱 动 16X16LED显示点阵 电源 列驱动 .
2)8255A与CPU连接部分: DB: AB: CB:
3)与外设接口部分: A口: B口: C口:
..
.
表1 8255的工作方式
5)工作方式选择字:
6)C口置/复位控制字:
..
.
三、硬件电路设计:
1、AT89S52单片机最小系统:
2
、
8255A
与
AT89S52
单
片
机
..
接
.
口
电路设计:
3、8255A
驱动
16×16
LED
点阵电路设计:
..
.
..
.
四、软件设计:
1、主程序框图:
2、延时程序框图:
3、8255A输出程序框图:
五、调试与测试结果分析:
1、实验系统连线图:
..
.
2、程序调试:
3、实验结果分析:
..
.
六.设计原理阐述
七、参考文献:
1、《单片机原理与接口技术》 马淑华、王凤文、X美金编著,邮电大学;
2、《微型计算机原理与接口技术》 冯博琴、吴宁主编,清华大学; 3、《单片机原理与接口技术课程设计指导书》东北大学XX分校自动化系实验室编著;
4、《单片机原理课程设计指导书—硬件部分》东北大学XX分校自动化系实验室编著。
八、设计总结及心得体会
..
.
附录:程序清单和原理图
1、程序清单:
/********X雪爽***王剑***石棉元***陈俐洁********/
#include
#include
#define PA8255 XBYTE[0xff28] //定义扩展A口的地址 #define PB8255 XBYTE[0xff29] //定义扩展B口的地址 #define PC8255 XBYTE[0xff2a] //定义扩展C口的地址 #define P XBYTE[0xff2b] //定义控制口的地址
uchar code HZDZ[256] = {
0x00,0x10,0x11,0x12,0x14,0x18,0xF0,0x17,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00, 0x00,0x04,0x88,0x90,0xA0,0x82,0x81,0xFE,0x80,0x80,0xA0,0x90,0x88,0x04,0x00,0x00,
0x00,0x04,0x04,0x04,0x04,0xFF,0x00,0x00,0x00,0xFF,0x02,0x04,0x08,0x10,0x00,0x00, 0x04,0x06,0x04,0x08,0x08,0xFF,0x00,0x00,0x00,0xFC,0x02,0x02,0x02,0x02,0x1E,0x00,
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00, 0x01,0x01,0x02,0x04,0x08,0x30,0xC0,0x00,0xC0,0x30,0x08,0x04,0x02,0x01,0x01,0x00,
0x02,0x0C,0x88,0x69,0x09,0x09,0x89,0x69,0x09,0x09,0x19,0x28,0xC8,0x0A,0x0C,0x00, 0x20,0x20,0x20,0x20,0x20,0x22,0x21,0x7E,0x60,0xA0,0x20,0x20,0x20,0x20,0x20,0x00,
0x00,0x00,0x00,0x1F,0x11,0x31,0x51,0x91,0x11,0x11,0x11,0x1F,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xFF,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xFF,0x00,0x00,0x00,0x00,
0x02,0x22,0x23,0x22,0x22,0x22,0x02,0x08,0x08,0xFF,0x08,0x08,0x08,0x0F,0x00,0x00, 0x08,0x3C,0xC8,0x08,0x28,0x1D,0x02,0x0C,0x70,0x80,0x02,0x01,0x02,0xFC,0x00,0x00,
0x00,0x01,0x06,0x1F,0xE0,0x00,0x00,0x00,0xFF,0x02,0x04,0x08,0x10,0x20,0x00,0x00, 0x80,0x00,0x00,0xFF,0x00,0x20,0x40,0x80,0xFC,0x02,0x02,0x02,0x02,0x02,0x1E,0x00,
0x00,0x00,0x44,0x4C,0x54,0x65,0x45,0x46,0x84,0x88,0x90,0x81,0x80,0x00,0x00,0x00, 0x00,0x42,0x44,0xC8,0xD0,0x42,0x41,0x7E,0x40,0x40,0x50,0x48,0xC4,0x62,0x00,0x00, } ;
..
.
void delay(void) //延时程序
{ uchar i; //定义字节变量i for(i=300;i>0;i--); }
void sm(uint n)//定义扫描函数 { uint t=0x8000;//定义临时字变量 uchar j;
for(j=0;j<16;j++) //每个字符有16列
{ PB8255=~HZDZ[(n)*32+j]; //将PB8255端口赋值为汉字的左半边点阵码,进行列选 PA8255=~HZDZ[(n)*32+j+16];//将PB8255端口赋值为汉字的又半边点阵码,同上 PC8255=t>>8;//将PC8255赋值为0x80,进行第一列行选 ,以后循环依次向下扫描
P1=t&0xff;//将P1口在前八次循环下进行该口扫描屏蔽,后八次循环进行行的依次扫描
t=_iror_(t,1); //将t进行右循环移位,通过赋值给PC8255和P1进行行的扫描 delay(); //延时
PC8255=0x00; //熄灭发光管 P1=0x00; } }
void main(void) { uchar n,k;
P=0x80; while(1)
{ for(n=0;n<8;n++) //依次循环扫描显示八个汉字 { for(k=0;k<25;k++) 单个汉字扫描的次数 sm(n); } } }
..
LED点阵显示控制系统设计课程设计 - 图文



