好文档 - 专业文书写作范文服务资料分享网站

LED点阵显示控制系统设计课程设计 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

.

..

设计题目: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 //可使用其中定义的宏来访问绝对地址 #include //汇编语句的C语言调用,在本程序中是iror #define uchar unsigned char #define uint unsigned int

#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); } } }

..

9nbvl6qtvw8iiwn479cv9uewu2s0a001e1x
领取福利

微信扫码领取福利

微信扫码分享