单片机课设Word文档下载推荐.docx

上传人:b****2 文档编号:783731 上传时间:2023-04-29 格式:DOCX 页数:15 大小:126.59KB
下载 相关 举报
单片机课设Word文档下载推荐.docx_第1页
第1页 / 共15页
单片机课设Word文档下载推荐.docx_第2页
第2页 / 共15页
单片机课设Word文档下载推荐.docx_第3页
第3页 / 共15页
单片机课设Word文档下载推荐.docx_第4页
第4页 / 共15页
单片机课设Word文档下载推荐.docx_第5页
第5页 / 共15页
单片机课设Word文档下载推荐.docx_第6页
第6页 / 共15页
单片机课设Word文档下载推荐.docx_第7页
第7页 / 共15页
单片机课设Word文档下载推荐.docx_第8页
第8页 / 共15页
单片机课设Word文档下载推荐.docx_第9页
第9页 / 共15页
单片机课设Word文档下载推荐.docx_第10页
第10页 / 共15页
单片机课设Word文档下载推荐.docx_第11页
第11页 / 共15页
单片机课设Word文档下载推荐.docx_第12页
第12页 / 共15页
单片机课设Word文档下载推荐.docx_第13页
第13页 / 共15页
单片机课设Word文档下载推荐.docx_第14页
第14页 / 共15页
单片机课设Word文档下载推荐.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课设Word文档下载推荐.docx

《单片机课设Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机课设Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。

单片机课设Word文档下载推荐.docx

数码管的现实方式有静态和动态显示方式两种。

静态显示方式:

把多个LED显示器的每一段与一个独立的并行口相连接,而公共端则根据具体情况连接到“VCC”或“GND”,这种连接方式的每一个显示器都要占用一个单独的具有锁存功能的I/O口,单片机只需把要显示的字形代码输入进接口电路即可。

因此,使用这种方式对I/O的需求较大,电路也较为复杂,但是具有编程简单,显示稳定,单片机效率较高的优点。

动态显示方式:

其接口电路是把所有显示器的笔划段同名端连接在一起,而每一个显示器的公共端COM与各自独立的I/O口连接。

当单片机输送字形码时,所有显示器接受到相同字型码,但具体哪一个显示器亮,则取决于COM端,而这一端由I/O口控制。

所谓动态扫描即分时方法,一位一位的控制各个显示器的COM端,是每个显示器每隔一段时间亮一次,点亮时间即为短暂(约1毫秒),由于视觉暂留和二极管的余辉效应,给人的印象即是一组稳定的数据显示。

本设计将采用静态显示方式。

2.3键盘设计

键盘输入显示数字部分,扩展为4

4的矩阵式键盘,共16个按键,对应从数字0、1、2、3、4、5、6、7、8、9和英文字母A、b、C、d、E、F共16个符号。

使用到AT89C51的P1口。

键盘设计如图2.3所示:

图2.3键盘输入电路及对应输出字符

具体按键的对应输出字符及延时将在后面的程序编写中实现。

3.系统总电路设计及分析

本设计在Proteus软件中完成,系统总电路图如图3.1所示:

图3.1系统总电路图

如图3.1所示,P1.0—P1.7口用来接矩阵键盘;

P2口没有使用,全部置空;

P3口用来连接七段式数码管;

而P0口,因为内部没有上拉电阻,故利用排阻RP1来作上拉电阻,如图3.2所示:

图3.2排阻RP1

该C51单片机的XTAL1和XTAL2用来接内部晶振电路,如图3.3所示:

图3.3晶振电路

复位电路及单片机

端口的使用,

低电平时,将锁定RESET,保持高电平时,可访问内部存储器,如图3.4所示:

图3.4复位电路及

 

4.C语言程序设计

4.1程序流程图

该程序功能是扫描键盘是否有按键按下并做相应显示。

流程图如图4.1所示:

图4.1程序流程图

4.2程序分析

程序根据P1口读入的状态,判断是否输出字符,输出具体哪个字符。

由于七段式数码管形状类似于数字“8”,故在输出英文字母时,为了显示方便,分别显示为大小写不一的“A”、“b”、“C”、“d”、“E”、“F”。

因为采用共阴极数码管,所以列出所要显示的16个数字、字母对应的十六进制数据代码:

0——0x3f;

1——0x06;

2——0x5b;

3——0x4f;

4——0x66;

5——0x6d;

6——0x7d;

7——0x07;

8——0x7f;

9——0x6f;

A——0x77;

b——0x7c;

C——0x39;

d——0x5e;

E——0x79;

F——0x71;

因为要扫描P1口的高4位,即判断矩阵键盘的列,固有:

选取P1.0口的代码为:

P1=0xfe;

选取P1.1口的代码为:

P1=0xfd;

选取P1.2口的代码为:

P1=0xfb;

选取P1.3口的代码为:

P1=0xf7;

为了消除键抖动可能带来的影响,还应设计延时程序来去抖动。

为了提高程序的效率和可读性,将延时程序、显示程序和键盘扫描程序设计为子函数。

并利用while循环,不断检测按键是否被按下。

4.3C语言程序及注释

#include"

reg51.h"

//51单片机头文件

#defineucharunsignedchar

#defineuintunsignedint

ucharcodetable[]={//共阴极数码管0至9,A至F

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

voiddelay(uintxms)//延时函数

{uinti,j;

for(i=xms;

i>

0;

i--)

for(j=100;

j>

j--);

}

voiddisplay(ucharnum)//显示函数

{P3=table[num];

}

voidkeyscan()//键盘扫描函数

{uchartemp,key;

P1=0xfe;

//P1.0=0,扫描列

temp=P1;

//读P1口状态给temp

temp=temp&

0xf0;

//与

if(temp!

=0xf0)//不等于0xf0向下执行

{delay(10);

//延时去抖动

temp=P1;

//重读P1口状态给temp

temp=temp&

//再与

if(temp!

=0xf0)//还是不等于0xf0,说明确实有键按下

{temp=P1;

//再向temp读入P1口状态

switch(temp)

{case0xee:

key=7;

break;

case0xde:

key=8;

case0xbe:

key=9;

case0x7e:

key=10;

}

while(temp!

=0xf0)//等待按键释放

{temp=P1;

temp=temp&

display(key);

P1=0xfd;

//P1.1=0,扫描列

=0xf0)

{case0xed:

key=4;

case0xdd:

key=5;

case0xbd:

key=6;

case0x7d:

key=11;

P1=0xfb;

//P1.2=0,扫描列

{case0xeb:

key=1;

case0xdb:

key=2;

case0xbb:

key=3;

case0x7b:

key=12;

P1=0xf7;

//P3.0=0,扫描列

{case0xe7:

key=15;

case0xd7:

key=0;

case0xb7:

key=14;

case0x77:

key=13;

}

voidmain()

{P3=0;

P3=0xc0;

//初始状态设定为“-”符号

while

(1)

{keyscan();

5.电路及程序仿真

5.1编译C语言程序

为了使AT89C51单片机顺利运行,需要将C语言程序编译为HEX文件,本设计将使用Keil软件进行编译。

打开Keil软件,选择Project,新建工程jp.Uv2,则ProjectWorkspace显示如图5.1所示:

图5.1新建工程

新建文件file,输入C语言代码保存,然后再SourceGroup1上单击右键,添加保存的C语言文件。

如图5.2所示:

图5.2添加C语言代码

单击Optionsfortarget按钮,选择Output选项,在其中勾选上CreateHEXFile,单击确定。

如图5.3所示:

图5.3勾选CreateHEXFile

最后选择菜单栏中的Project选项,点击Buildtarget,即可在工程目录下生成相应的HEX文件。

5.2电路仿真

打开Proteus软件,导入所设计的电路图,然后双击图中的AT89C51单片机,在ProgramFile中选中已经编译好的HEX文件,单击确定。

如图5.4所示:

图5.4导入HEX文件

此时点击软件左下角的运行按钮,整个系统就开始正常工作了。

初始状态为显示“-”符号,如图5.5所示:

图5.5初始未按任何键时

仿真结果:

点击各键开关时,数码管均能正确显示相应的字符,如图5.6所示,显示矩阵为:

A987

b654

C321

dE0F

图5.6仿真结果

6.心得体会

本次课程设计是单片机原理与应用,利用51单片机设计并实现仿真键盘显示电路。

因为是单片机原理与应用的课程设计,必须对C51单片机这一部分非常熟悉。

所以在动手之前,不得不把课本上这一部分再读一遍。

在复习理论知识的过程中,发现自己平时上课时没有高效率的学习,对单片机接口和一些端口功能非常陌生。

于是只好从网上找到的C51系列单片机内容开始看,经过一遍遍反复阅读,终于对键盘设计有了一定的理解。

搜索资料、阅读课本的过程很繁琐,尤其是没有进展的时候,非常焦急。

在慢慢学习的过程中,关于单片机各个接口也有了越来越详细的了解。

特别是端口实现数码管明灭的设置。

当编写C语言程序的时候,因为实验课用的编辑软件比较不容易编辑,而且版本过旧,遇到了很多的困难,后来查询到了比较流行而且实用的软件Keil。

在遇到程序代码方面的困难的时候,一边请教同学,一边不断地找相似的程序配合理解阅读。

在这段学习和写报告的时间里,反复经历了着急,欣喜,烦躁,轻松,紧张等等等等一系列的精神状态,于是在最终完成这个课程设计的时候,心里充满了成就感。

同时也更加了解了自己,了解自己在遇到一个接一个难题时的心态和应对方式,这样了解自己,才能有针对性的克服弱点进而提高能力。

做课程设计也是一个快乐的过程,自己找教程学习,并和大家一起探讨,相互学习,共同进步,同学们紧密的在一块合作,这是一个完成任务的过程,更是一个合作攻坚,磨砺身心的过程,参与其中的人都受益匪浅。

参考文献

[1]李群芳.单片机微型计算机与接口技术,电子工业出版社,2007.

[2]戴佳.51单片机应用系统开发典型事例,中国电力出版社,2005.

[3]赵建领.51单片机开发与应用技术详解,艺术图书出版社,2008.

[4]靳硅.基于51系列单片机的LED显示屏开发技术,电子工业出版社,2003.

[5]刘维.精通汇编程序设计,北京航空航天大学出版社,2005.

[6]姚燕南.微型计算机原理与接口技术,高等教育出版社,2004.

[7]唐继弦.51单片机工程应用事例,机械工业出版社,2003.

[8]张义和.例说51单片机,人民邮电出版社,2008.

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2