单片机应用课程设计格式.docx

上传人:b****4 文档编号:4379802 上传时间:2022-12-01 格式:DOCX 页数:7 大小:101.21KB
下载 相关 举报
单片机应用课程设计格式.docx_第1页
第1页 / 共7页
单片机应用课程设计格式.docx_第2页
第2页 / 共7页
单片机应用课程设计格式.docx_第3页
第3页 / 共7页
单片机应用课程设计格式.docx_第4页
第4页 / 共7页
单片机应用课程设计格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

单片机应用课程设计格式.docx

《单片机应用课程设计格式.docx》由会员分享,可在线阅读,更多相关《单片机应用课程设计格式.docx(7页珍藏版)》请在冰豆网上搜索。

单片机应用课程设计格式.docx

单片机应用课程设计格式

 

单片机应用课程设计报告

(2011~2012学年第2学期)

设计题目:

基于AT89S52单片机的4X4矩阵键盘设计

班别:

姓名:

指导教师:

时间:

 

写作内容

1.设计任务

在数码管上显示0—F,对应按键序号如下图,要现实按那个按键就在数码管上显示哪个字母或数字。

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

2.系统总体方案设计

3.系统硬件电路设计

3.1:

共阳数码管就是把每个LED灯的阳极接在共同接点com,而每个LED灯的阴极分别为a,b,c,d,e,f,g,dp;通过控制LED灯的亮灭来显示数字。

数码管跟据接收到的字形码显示数字。

3.2:

74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。

74LS245还具有双向三态功能,既可以输出,也可以输入数据。

当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。

3.3:

At89s52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

4.系统软件设计

4.1:

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

4.3程序:

#include

#include

sbitP2_0=P2^0;

sbitP2_1=P2^1;

#defineucharunsignedchar

#defineuintunsignedint

unsignedchartable[]={0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,

0xf8,0x80,0x90,

0x88,0x83,0xc6,

0xa1,0x86,0x8e};

voiddelay10ms();

voidmain()

{uchari;

ucharkey;

P2_0=1;

P2_1=1;

while

(1)

{P3=0x0f;

i=P3;

i=i&0x0f;

if(i!

=0x0f)

{delay10ms();

P3=0x0f;

i=P3;

i=i&0x0f;

if(i!

=0x0f)

{P3=0Xef;

i=P3;

i=i&0x0f;

switch(i)

{case0x0e:

key=0;break;

case0x0d:

key=4;break;

case0x0b:

key=8;break;

case0x07:

key=12;break;

}

P0=table[key];

while(i!

=0x0f)

{i=P3;

i=i&0x0f;

}

P3=0xdf;

i=P3;

i=i&0x0f;

switch(i)

{case0x0e:

key=1;break;

case0x0d:

key=5;break;

case0x0b:

key=9;break;

case0x07:

key=13;break;

}

P0=table[key];

while(i!

=0x0f)

{i=P3;

i=i&0x0f;

}

P3=0xbf;

i=P3;

i=i&0x0f;

switch(i)

{case0x0e:

key=2;break;

case0x0d:

key=6;break;

case0x0b:

key=10;break;

case0x07:

key=14;break;

}

P0=table[key];

while(i!

=0x0f)

{i=P3;

i=i&0x0f;

}

P3=0x7f;

i=P3;

i=i&0x0f;

switch(i)

{case0x0e:

key=3;break;

case0x0d:

key=7;break;

case0x0b:

key=11;break;

case0x07:

key=15;break;

}

P0=table[key];

while(i!

=0x0f)

{i=P3;

i=i&0x0f;

}

}

}

}

}

voiddelay10ms()

{TMOD=0X01;

TH0=55536/256;

TL0=55536%256;

TR0=1;

while(TF0==0);

TF0=0;

}

5.实物调试

5.1:

基于AT89S52单片机的4X4矩阵键盘设计仿真图

6.心得体会

本次课程设计和以往单纯作软件不同,做硬件有其特有的考虑问题的方式。

比如,在焊接电路板时,如何布局合理,对最终作出实物来有很重要的影响。

我就是开始时布局没布好,导致后面要多接好多导线,增加了犯错和短路的可能性。

于是我重头再来,再第二次作的时候,充分考虑到这些问题,结果只用了一个下午的时间就把实物作了出来,但是数码管上a线那却不亮,经排查发现可能是排针接触不好,于是用一根导线代替了改排针,最终,数码管得以正常显示,看到自己做出的键盘能实现预期功能,着实让自己兴奋了一把。

通过这次课程设计,我总算对入何作硬件以及以些单片机的知识有了更接近于实际的认识,知道了怎么烧录程序,怎么插芯片,杜邦线的使用等。

并熟悉了KEIL软件的使用。

从最原始的元件如何变为具有实际功能的单片机作的键盘,我感觉这是一种艺术。

很高兴最后我把实物做了出来,这让我很有成就感,也让我对单片机系统的开发和今后的学习产生了浓厚的兴趣。

让我对走硬件这条路充满了信心,一定要一步一个脚印,踏踏实实学习工作,创造属于我的智慧的结晶。

在此,感谢指导老师对于我在课程设计期间的耐心指导,尤其是当数码管不能正常显示时对电路一点点的排查,并告知了我解决方案,在此我表示真诚的感谢!

同时在此我也对,同学,同学对我键盘焊法和USB接口用法的帮助表示真诚的感谢。

 

要求:

图的下面一定要有图标

图1单片机最小系统电路

写作思路清晰,图表清晰,语句通顺。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1