最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

单片机控制8×8 LED点阵屏显示数字的设计

来源:动视网 责编:小OO 时间:2025-10-02 18:36:21
文档

单片机控制8×8 LED点阵屏显示数字的设计

专业综合课程设计报告单片机控制8×8LED点阵屏显示数字的设计班级:姓名(学号):组号:单片机控制8×8LED点阵屏显示数字的设计一、设计要求:用单片机的P0口外接74LS245作为控制8×8LED点阵屏的行驱动,列选通由P1端口控制,程序运行时,8×8LED点阵屏依次循环显示数字0~9。刷新时间由定时器T1的定时中断来完成。二、方案论证:方案一:最小系统加74LS245驱动芯片和成品8*8点阵进行设计。优点:外围电路简单易焊,耗时少!缺点:成本较高。方案二:最少系统加三极管驱动和手焊8*8点
推荐度:
导读专业综合课程设计报告单片机控制8×8LED点阵屏显示数字的设计班级:姓名(学号):组号:单片机控制8×8LED点阵屏显示数字的设计一、设计要求:用单片机的P0口外接74LS245作为控制8×8LED点阵屏的行驱动,列选通由P1端口控制,程序运行时,8×8LED点阵屏依次循环显示数字0~9。刷新时间由定时器T1的定时中断来完成。二、方案论证:方案一:最小系统加74LS245驱动芯片和成品8*8点阵进行设计。优点:外围电路简单易焊,耗时少!缺点:成本较高。方案二:最少系统加三极管驱动和手焊8*8点
专业综合课程设计报告

单片机控制8×8 LED点阵屏显示数字的设计

班级:

姓名(学号):

组号:单片机控制8×8 LED点阵屏显示数字的设计

一、设计要求:

用单片机的P0口外接74LS245作为控制8×8 LED点阵屏的行驱动,列选通由P1端口控制,程序运行时,8×8 LED点阵屏依次循环显

示数字0~9。刷新时间由定时器T1的定时中断来完成。

二、方案论证:

方案一:最小系统加74LS245驱动芯片和成品8*8点阵进行设计。

优点:外围电路简单易焊,耗时少!

缺点:成本较高。

方案二:最少系统加三极管驱动和手焊8*8点阵进行设计。

优点:成本相对较低。

缺点:点阵难焊,耗时长。

本次课设采用方案一,原因是耗时少,电路相对稳定。

三、理论设计:用CAD软件绘制的硬件原理图及工作原理的分析;软件流程图

及带注释的程序清单。

工作原理:P0口外芯片74LS245来驱动行点亮,P1口外接点阵进行列选通,以扫描方式依次显示0-9.软件流图:开始

定时器1初始化

主循环←←↑←←↑

↓无↑↑

定时中断函数→→有无中断→→↑↑

↓有↑

↓↑

调用显示子函数↑

↓→→→→→→

完整程序:

#include

#define uchar unsigned char

#define uint unsigned int

uint i,a,b=0,t;

uchar code dxuan0[]={0x00,0x18,0x24,0x24,0x24,0x24,0x24,0x18,}; //"0" uchar code dxuan1[]={0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x00,}; //"1" uchar code dxuan2[]={0x00,0x3C,0x24,0x0C,0x18,0x30,0x3C,0x00,}; //"2" uchar code dxuan3[]={0x00,0x3C,0x24,0x18,0x0C,0x24,0x38,0x00,}; //"3" uchar code dxuan4[]={0x00,0x08,0x18,0x38,0x28,0x3C,0x08,0x00,}; //"4" uchar code dxuan5[]={0x00,0x3C,0x20,0x3C,0x04,0x24,0x38,0x00,}; //"5" uchar code dxuan6[]={0x00,0x18,0x24,0x20,0x38,0x24,0x24,0x18,}; //"6" uchar code dxuan7[]={0x00,0x3C,0x04,0x08,0x08,0x10,0x10,0x10,}; //"7" uchar code dxuan8[]={0x38,0x44,0x44,0x38,0x44,0x44,0x44,0x38,}; //"8" uchar code dxuan9[]={0x18,0x24,0x24,0x24,0x1C,0x04,0x24,0x18,}; //"9" uchar code wxuan[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,};//位选

void delay(uint z) //延时函数

{

uint x,y;

for(x=z;x>0;x--)for(y=256;y>0;y--);

}

//***********************显示函数**************************//

void display0(){for(a=50;a>0;a--) for(i=0;i<9;i++) {P1=wxuan[i];P0=dxuan0[i];delay(1);} }

void display1(){for(a=50;a>0;a--) for(i=0;i<9;i++) {P1=wxuan[i];P0=dxuan1[i];delay(1);} }

void display2(){for(a=50;a>0;a--) for(i=0;i<9;i++) {P1=wxuan[i];P0=dxuan2[i];delay(1);} }

void display3(){for(a=50;a>0;a--) for(i=0;i<9;i++) {P1=wxuan[i];P0=dxuan3[i];delay(1);} }

void display4(){for(a=50;a>0;a--) for(i=0;i<9;i++) {P1=wxuan[i];P0=dxuan4[i];delay(1);} }

void display5(){for(a=50;a>0;a--) for(i=0;i<9;i++) {P1=wxuan[i];P0=dxuan5[i];delay(1);} }

void display6(){for(a=50;a>0;a--) for(i=0;i<9;i++) {P1=wxuan[i];P0=dxuan6[i];delay(1);} }

void display7(){for(a=50;a>0;a--) for(i=0;i<9;i++) {P1=wxuan[i];P0=dxuan7[i];delay(1);} }

void display8(){for(a=50;a>0;a--) for(i=0;i<9;i++) {P1=wxuan[i];P0=dxuan8[i];delay(1);} }

void display9(){for(a=50;a>0;a--) for(i=0;i<9;i++) {P1=wxuan[i];P0=dxuan9[i];delay(1);} }

void main(void)

{

TMOD=0X10; //设置定时器1为工作方式1

TH1=(65536-50000)/256;

TL1=(65536-50000)%256; //定时50000us

EA=1; //开总中断

ET1=1; //开定时器1中断

TR1=1; //启动定时器1while(1)

{

if(t==40)

{

t=0;

switch(b)

{

case 0: display0();break;

case 1: display1();break;

case 2: display2();break;

case 3: display3();break;

case 4: display4();break;

case 5: display5();break;

case 6: display6();break;

case 7: display7();break;

case 8: display8();break;

case 9: display9();break;

}

b++;if(b==10)b=0;

}

}

}

//*****************定时中断函数****************// void ext1() interrupt 3

{

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

t++;

}

四、电路仿真及仿真结果分析:

电路仿真结果正确,达到预期设计要求,能循环显示0-9,刷新时间由定时器1设定。

五、测试方案与测试结果:

经自焊硬件测试,结果与仿真效果一致,由于材料,点阵引脚与订座子有时会接触不良,导致某条LED不亮。

六、作品功能和使用说明:

接上5V电源即可循环显示0-9.

七、心得体会:

设计过程中遇到程序设计问题,网上找到视频教程学习中断程序的编写,以及查阅C语言课本得以解决。调试过程中发现点阵不亮,到处检查电路有无短路和断路,无果,一次无意间碰到芯片发现在灯闪了一下,这才意识到芯片与插座接触不良,这是由于材料有限,没有匹配的引脚插座,用其他代替所致,后来做了点手脚,好多了!

本次课设收获:通过焊接动手能力增强,积累了究错经验,通过编程对C语言也学到了不少,更重要的是,更进一步理解了单片机的功能与用法。

八、参考文献

《单片机原理及应用》主编李建忠

《C语言程序设计教程》主编杨路明

文档

单片机控制8×8 LED点阵屏显示数字的设计

专业综合课程设计报告单片机控制8×8LED点阵屏显示数字的设计班级:姓名(学号):组号:单片机控制8×8LED点阵屏显示数字的设计一、设计要求:用单片机的P0口外接74LS245作为控制8×8LED点阵屏的行驱动,列选通由P1端口控制,程序运行时,8×8LED点阵屏依次循环显示数字0~9。刷新时间由定时器T1的定时中断来完成。二、方案论证:方案一:最小系统加74LS245驱动芯片和成品8*8点阵进行设计。优点:外围电路简单易焊,耗时少!缺点:成本较高。方案二:最少系统加三极管驱动和手焊8*8点
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top