《嵌入式系统原理与应用》实验报告07LED点阵显示.docx
《《嵌入式系统原理与应用》实验报告07LED点阵显示.docx》由会员分享,可在线阅读,更多相关《《嵌入式系统原理与应用》实验报告07LED点阵显示.docx(12页珍藏版)》请在冰豆网上搜索。
![《嵌入式系统原理与应用》实验报告07LED点阵显示.docx](https://file1.bdocx.com/fileroot1/2023-1/7/41ff46e5-b09c-4ca9-a933-515ebe81198d/41ff46e5-b09c-4ca9-a933-515ebe81198d1.gif)
《嵌入式系统原理与应用》实验报告07LED点阵显示
《嵌入式系统原理与应用》实验报告
实验序号:
07
实验项U名称:
LED点阵显示实验
ZRZ
专业、班
18计卓1班
实验地点
指导教师
黄鹏程
实验时间
一、实验U的
1.通过实验,理解LED点阵的显示原理,会编写LED点阵的驱动程序。
二、实验设备(环境)及要求硕件:
PC机;
软件:
PC机操作系统windowsXP,Proteus软件,ADS1.2三、实验内容与步骤实验内容:
利用8*8LED点阵显示模块以及LPC2000处理器实现显示自己名字的某一个字的实验,并且要求可以左或右移动显示。
实验步骤:
在Proteus将实验所需的各个部件连接,确保连接正确无误。
2.在ADS当中将相应的代码完成,保证编译通过无异常。
3.在Proteus打开相应的hex文件进行仿真实验。
四、实验结果与数据处理
1.实验连接图
PO.O/TxDOjWVMIP0.14=M)0JPV\M3?
ErJT0
P0・2/SCUW:
a0.0^>O^W©ft0A*ATO-^Ohff1-ro4/SCKCMCAroiZADO6POSMSOOjMATOJ/ADO7POeyMOSOJCAPO,2/A010P0.7J5SeLGUPWM2)DNT2POS/T)D1JPV*M/At>1JP09/Rx01rfPAM6>EWT3PO1OJRTS1CAP1XMAW2PO1lJCrSlJCAW1SCL1PO12QSR1A1AT1OZMM3PO.13jO7R1A1AT1.1/ADI.4P014jOCO1®NT1/S0A1
P5
U2
►STCP
12
74HCS95・
.Ke・
MR"
05
>SMJ:
PDS
1111
58
a
PO.16>EIWT0jMAT02JCAP0iP0.17JCAR1.2SCK1AflATI2
P018/CAPl3MS01JMATI3
POIS/MATI2>MO31CA(>12P020JMAT1.0SSEL1«WT3PO21WW5JAD1.6jCAP13
P0.22X&O17CAP0OMATOO
POJ3
P025/AD04UOUTPO26/ADO5P027ZAO0.(WCAP0.1jMAT0.1P0.28XIU>011CAPO2jMAT02PO-ZacADO2CAPO3AP0.31
2,程序代码
16
^include"config,h"
#defineMSTR
(1
5)
Sdefine
LSBF
(1
6)
ffdefine
SPIE
(1
7)
ffdefine
const
const
const
巧Sv12
Ao
图1实验原理图
SPI_MODE(MSTR|LSBF)
uint32
uint32
uint32
row[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
namel[8]={0x6E,0x89,0xE3,0x89,0x6E,0x00,0xD2,OxCC};
name?
[8]={0xB6,0xD5,0x01,OxFD,0xA9,0x81,0xA9,0x01}:
constuint32name3[8]={0xB6,0xD5,OxFF,OxAC,0x92,0x02,0x92,OxAC};
constuint32big_heart[8]={0xE3,OxCl,0x81,0x03,0x03,0x81,OxCl,0xE3};
{OxFF,0xE7,0xC3,0x87,0x87,0xC3,0xE7,OxFF};
constuint32up_down[8]={OxFE,OxFC,0xF8,OxFO,OxEO,OxCO,0x80,0x00}:
constuint32down_up[8]={0x7F,0x3F,OxlF,OxOF,0x07,0x03,0x01,0x00};
voiddelay(uint32time)
uint32i:
for(:
time>0:
time—)
for(i=0;i<3300;i卄);
uint8HC595_SendData(uint32data)
lOOCLR=lOOCLRI(0x01«7);
SOPDR=data;
while(0==(SOPSR&0x80));
lOOSET=lOOSET|(0x01«7);
return(SOPDR);
voidSendData(uint32data)
lOOCLR=lOOCLRI(OxFF«16);
lOOSET=lOOSETIdata«16;
voidName()
uint32i,j=0:
while(l)
for(i=0;i<8;i++)
HC595_SendData(row[i]);
SendData(name1[i]);
delay(l);
break;
while(l)
for(i=0;i<8;i++)
HC595_SendData(row[i]);
SendData(name2Ei]);
delay(l);
break;
while(l)
for(i=0;i<8;i++)
HC595_SendData(row[i]);
SendData(name3[i]);
delay(l);
break;
voidHeart()
uint32i,j=0,k=0;
while(l)
for(i=k+O;iHC595_SendData(row[i%8]);
SendData(small_heart[i-k]);
delay(l);
if(j>500)
break;
k++:
while(l)
for(i=k+O;iHC595_SendData(row[i%8]);
SendData(small_heart[i-k]);
delay(l);
if(j>500)
break;
while(l)
for(i=k+O;iHC595_SendData(row[i%8]);
SendData(small_heart[i-k]);
delay(l);
if(j>500)
break;
while(l)
for(i=0;i<8;i++)
HC595_SendData(row[i]);
SendData(big_heart[i]);
delay(l);
if(j>500)
break;
while(l)
for(i=k+O;iHC595_SendData(row[i%8]);
SendData(small_heart[i-k]);
delay(l);
if(j>500)
break;
while(l)
for(i=0;i<8;i++)
HC595_SendData(row[i]);
SendData(big_heart[i]);
delay(l);
if(j>500)
break;
voidFlowO
uint32i,k:
while(l)
for(i=0;i<8;i++)
if(i%2==0)
for(k=0;k<8;k++)
HC595_SendData(row[i]);
SendData(up_down[k]);
delay(100);
else
for(k=0;k<8;k++)
HC595_SendData(row[i]);
SendData(down_up[k]);
delay(100);
for(i=8;i>=l;i—)
if(i%2==0)
for(k=0;k<8;k++)
HC595_SendData(row[i-l]);
SendData(up_down[k]):
delay(100);
else
for(k=0;k<8;k++)
HC595_SendData(row[i-l]);
SendData(down_up[k]);
delay(100);
intmain(void)
PINSELO=0x1100:
lOODIR=0x01«7:
lOODIR=lOODIROxFFOOOO:
SOPCCR=0x08;
SOPCR=SPI_MODE:
while(l)
Name();
Heart();
FlowO;
return0;
五、分析与讨论
在这一次实验中,我学会了使用74HC595来对LED点阵进行控制,更加
熟悉了SPI通信的应用,同时也明口了LED点阵的原理,通过不同的控制就能
够做出不同的花样,例如.显示汉字、做流水灯、实现左移右移和放大缩小等效
果,让我收获了很多。
成绩
六、教师评语
签名:
日期: