单片机综合设计报告.docx

上传人:b****4 文档编号:3445128 上传时间:2022-11-23 格式:DOCX 页数:10 大小:283.95KB
下载 相关 举报
单片机综合设计报告.docx_第1页
第1页 / 共10页
单片机综合设计报告.docx_第2页
第2页 / 共10页
单片机综合设计报告.docx_第3页
第3页 / 共10页
单片机综合设计报告.docx_第4页
第4页 / 共10页
单片机综合设计报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

单片机综合设计报告.docx

《单片机综合设计报告.docx》由会员分享,可在线阅读,更多相关《单片机综合设计报告.docx(10页珍藏版)》请在冰豆网上搜索。

单片机综合设计报告.docx

单片机综合设计报告

 

学前训练综合设计报告

 

(基于AT89S52的篮球计分器的设计实现)

学院名称

计算机科学与技术学院

专业名称

信息安全

学生姓名

学号

指导教师

 

二〇一二年四月

目录

功能设计:

2

(一)可以实现加分功能2

(二)可以实现减分功能2

(三)可以实现分数显示功能2

设计开发平台简介:

3

硬件平台3

软件平台3

硬件设计及实现:

4

软件设计及实现:

5

实现效果测试:

6

设计总结:

7

功能设计:

(一)可以实现加分功能

本设计可以利用4*4键盘实现篮球比赛的加分功能,罚球+1分2分球3分球的分数都可以实现。

(二)可以实现减分功能

如果加分出现错误,可利用键盘按键实现减分。

(三)可以实现分数显示功能

分数可显示利用数码管显示。

设计开发平台简介:

硬件平台

CS—III……

CS-III型单片机实验开发设备是由计算机学院独立设计开发,用于《单片机原理及应用》课程的实验教学。

这套设备的设计和开发采用模块化组合设计,可以结合不同类型的单片机模块进行实验开发。

针对课程的教学采用了ATMEL公司的AT89S52单片机芯片,同时配合keil集成开发环境,支持汇编语言和C语言的程序设计。

1.功能特点

*使用CPU主模块与实验板分离设计的方式,同时可以兼容不同类型的单片机模块,并可根据用户需要独立设计模块。

*采用ISP通信技术,支持在线编程,方便用户开发。

*采用开关电源设计,安全可靠(板上最高电压不超过18v),驱动电流最高

可达5V/3A,过载自动保护,方便用户其他设备的引入

*所有IO端口全部引出,方便与外部端口连接搭配。

*实验板上的功能器件可直接采用跳线器直接连接,减少过多的飞线连接。

*2个端口模拟显示,可直接模拟端口高低电平状态,方便用户观察。

*8个数码管显示,方便开发秒表,时钟,计算器,以及显示特殊提示信息等。

*一个4*4矩阵键盘,可作键盘全扫描和逐行扫描。

*独立脉冲产生模块,可产生脉冲及方波,配合中断和计数器使用。

*普通键盘/鼠标接口,方便用户开发通信协议。

*采用串转并的方式进行端口扩展,同时配合汉字点阵模块显示,可作汉字显示和字库开发。

*扩展显示模块。

*具有发声器,配合定时器方便用户开发电子音乐盒。

*具有RS232转换电路,完成UART通信实验,可与上位机进行通信设计。

*具有液晶显示模块接口,方便用户开发液晶显示以及菜单系统的设计。

*红外模块,数据传输载波可调,用户作红外产品开发以及无线通信协议开发。

2.开发板硬件原理

2.1实验开发板功能框图

软件平台:

KeilC51……

KeilC51……

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

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

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

如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

图2

uVision2IDE是一个基于Window的开发平台,包含一个高效的编辑器,一个项目管理器和一个MAKE工具.

uVision2支持所有的KEILAT89S52工具,包括C编译器,宏汇编器,连接/定位器,目标代码到HEX的转换器。

uVision2通过以下特性加速你的嵌入式系统的开发过程:

⏹全功能的源代码编辑器.

⏹器件库用来配置开发工具设置.

⏹项目管理器用来创建和维护你的项目.

⏹集成的MAKE工具可以汇编,编译和连接你的嵌入式应用.

⏹所有开发工具的设置都是对话框形式的.

⏹真正的源代码级的对CPU和外围器件的调试器.

⏹高级GDIAGDI接口用来在目标硬件上进行软件调试,以及和Monitor-51进行通信.

与开发工具手册和器件数据手册和用户指南有直接的链接.

硬件设计及实现:

图1八段数码管

图2键盘

软件设计及实现:

1、键盘操作功能实现

/*********键盘分布*********/

/*K15K14K13K12*/

/*K11K10K9K8*/

/*K7K6K5K4*/

/*K3K2K1K0*/

/***************************/

K3主队罚球+1分K72分球K113分球K15客队减1分

K0客队罚球+1分K42分球K83分球K12客队减1分

设计代码

#include"at89x52.h"

constunsignedintDis_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

constunsignedintDis_bit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsignedintkey=0;

intRepeat=0;

intCount=0;

intCount1=0;//全局变量

inta,b,c,d;

voiddelay()

{

inttime;

for(time=0;time<100;time++);

}//延时

voidDisplay1()

{a=Count1%10;

b=Count1/10;

P1=Dis_bit[1];

P0=Dis_code[a];

delay();

P1=Dis_bit[0];

P0=Dis_code[b];

}

voidDisplay()

{c=Count%10;

d=Count/10;

P1=Dis_bit[7];

P0=Dis_code[c];

delay();

P1=Dis_bit[6];

P0=Dis_code[d];

}//计数函数

voidKeyboard()

{

inttmp,x=0,y=0,g;

P2=0x0f;

tmp=P2&0x0f;

if(tmp==0x0e)y=1;

if(tmp==0x0d)y=2;

if(tmp==0x0b)y=3;

if(tmp==0x07)y=4;

P2=0xf0;

tmp=P2&0xf0;

if(tmp==0xe0)x=1;

if(tmp==0xd0)x=5;

if(tmp==0xb0)x=9;

if(tmp==0x70)x=13;//键盘扫描

g=x+y;

if(g==Repeat)

{

g=0;

}

if(g!

=0)//按键时

{

key=g;

Repeat=key;

if(g==2||g==3)Count--;

if(g==4||g==5)Count1--;

if(g==6||g==7)Count+=3;

if(g==11||g==10)Count+=2;

if(g==15||g==14)Count++;

if(g==8||g==9)Count1+=3;

if(g==12||g==13)Count1+=2;

if(g==16||g==17)Count1++;//加减分控制

}

}

voidzhongduan()interrupt1

{

Display();

Display1();

Keyboard();//键盘全扫描

TH0=0xff;

}

voidTimer0Init(void)

{

TMOD=0X01;

TH0=0Xdf;

TL0=0X00;//初始化

IE=0X82;

}//设置计时器

voidmain(void)

{

Timer0Init();

TR0=1;//开启计时器

while

(1)

{

}

}实现效果测试:

初始比分0:

0

2分球

3分球

罚球+1分

减分

设计总结:

本次的课程设计,使关于51系列单片机的,正是我们刚刚学到的51单片机,在平时课程的学习中,我们仅限于理论知识的讲解,即使知识是很扎实的,实际应用并不是这样的。

开始时我也觉得自己的理论知识已经够了,但当我拿到课题时,在脑海里想的是非常好的,但真正编成和控制时,理论和实际结合不到一起,甚至于51芯片的使用我都感觉很迷茫,还是经过搜集大量资料才将理论与实际结合到一起了。

本次课程设计我主要负责编程,这次不仅锻炼了我C语言的知识,更加我们正在学习的51的定时与中断结合在一起,进行了实际的操作,让我的知识掌握得更加牢固。

本次的实际经验之后,让我对单片机定时赋初值有了更新的认识,对程序的循环顺序、结构类型都有了非常深刻的认识,对真正硬件的连接也有了认识,不再将自己的知识局限于自己狭隘的空间中。

通过这次课程设计——秒表/时钟计时器,使我又重新开始学习C语言,因为C语言是大一学的,至从学完就再也没用过,所以开始很陌生,我又找了有关资料来了解,才有了一点眉目。

在课堂上学习的都理论的,跟实际永远有一定的差距,不实践就不会发现问题。

通过这次课程设计使我把课堂上学习的东西都用到了实践中,例如:

定时/计数器的应用与中断。

学习的时候不怎么理解,但是在实践中应用了以后就自然了解了。

这次课程设计使我受益匪浅,而且都是实际的东西。

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

当前位置:首页 > 表格模板 > 合同协议

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

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