单片机课设报告.docx

上传人:b****8 文档编号:9674846 上传时间:2023-02-05 格式:DOCX 页数:21 大小:1.39MB
下载 相关 举报
单片机课设报告.docx_第1页
第1页 / 共21页
单片机课设报告.docx_第2页
第2页 / 共21页
单片机课设报告.docx_第3页
第3页 / 共21页
单片机课设报告.docx_第4页
第4页 / 共21页
单片机课设报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

单片机课设报告.docx

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

单片机课设报告.docx

单片机课设报告

目录

1设计目的1

1.1设计题目1

1.2题目分析1

2设计原理或方法2

2.151单片机2

2.2STC89C51/52单片机芯片2

2.3定时/计数器的控制3

2.3.1TMOD3

2.3.2TCON4

2.4单片机中断4

2.4.1定时器中断4

2.4.2外部中断4

2.5Proteus软件5

2.6Keil软件5

3系统硬件线路设计图6

3.1对于外部中断的使用6

3.2LED连接6

3.3晶振电路7

4基于51单片机的程序代码与分析8

4.1程序框图8

4.2C51代码8

5基于Proteus软件的仿真11

5.1电路图11

5.2结果展示12

5.3结果分析13

6实物设计步骤和展示14

6.1设计步骤14

6.1.1元件清单14

6.1.2焊接15

6.1.3调试15

6.2实物运行展示16

6.3优点和问题16

7心得体会17

1设计目的

1.1设计题目

使用51单片机设计一个由8个发光二极管组成的可控动态闪烁系统、要求8个发光二极管初始状态为全灭,然后每间隔1秒,从右向左依次点亮一个发光二极管,当8个发光二极管全被点亮后,再回到全灭状态,循环进行。

硬件平台要求如下:

1.需要具有可驱动点亮的8个发光二极管;

2.设计“+”和“—”等2个按键;

软件要求实现:

1.设计1秒定时的实现方式;

2.初始化程序:

系统初始状态,中断及定时计时器的初始化;

3.主程序:

2个键的扫描,按一下“+”键,移动速度加快一级(量级自定),按一下“—”键,移动速度减慢一级;并指出快慢一级的时间是多少?

4.定时计时器中断服务程序:

动态闪烁控制。

1.2题目分析

在本设计题目中,发现了以下的要点:

1.中断

2.定时

中断可以利用本身的定时器和外部中断类型。

发现如果需要设计1秒定时,则对于一个6MHz晶振芯片来说,其机器周期为2us,按照T0的工作方式1来看,其最大的计数数据为2^16=65536,而实际上,其定时初值不可能这么大,需要500000才可以计时1秒。

于是在程序中实现一个循环,使其变成一种25*40ms=1s的情况,即使T0能够循环中断25次才会有LED的状态变化。

2设计原理或方法

2.151单片机

单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

2.2STC89C51/52单片机芯片

STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。

STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。

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

具有以下标准功能:

8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35MHz,6T/12T可选。

图2.1芯片引脚图

2.3定时/计数器的控制

2.3.1TMOD

图2.2TMOD各位功能描述

2.3.2TCON

图2.3TCON各位功能描述

2.4单片机中断

中断装置和中断处理程序统称为中断系统。

中断系统是计算机的重要组成部分。

实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。

中断系统的应用大大提高了计算机效率。

中断过程分为中断请求、中断执行、中断返回。

2.4.1定时器中断

在本题中,使用的是定时器T0的工作方式1(16位定时计数),在此方式中,以T0计数溢出为一个中断请求。

2.4.2外部中断

在本题中,使用两个按键分别触发两个外部中断口(INT0、INT1)低电平来请求中断。

其中一个“+”按键表示提高led的频率、一个“-”按键表示减少led的频率。

2.5Proteus软件

Proteus软件是英国LabCenterElectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前比较好的仿真单片机及外围器件的工具。

虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

本次使用的是Proteus7.8版本。

2.6Keil软件

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

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

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

3系统硬件线路设计图

3.1对于外部中断的使用

图3.1外部中断的两个按键设置

3.2LED连接

图3.2LED的连接

3.3晶振电路

XTAL1和XTAL2指的是8051系单片机上常见的用于接“晶振”(晶体谐振器-CrystalResonator”)的两个引脚。

从原理上来说,这两个引脚和MCU内部一个反相器相连接。

这个反相器与外部的“晶振”组成一个构成一个皮尔斯振荡器(Pierceoscillator)。

因为这个振荡器集成在器件内部的组件比较简单:

一个反相器和一个电阻。

适于各种数字IC的设计制造流程。

图3.3晶振电路

4基于C51的程序框图与代码

4.1程序框图

开始

N

Y

优先

N

Y

4.2C51代码

#include

unsignedchari=0;

unsignedchara=0,k;

charled_mod[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xff};//九个亮灭状态

bitT1S_flag;

int0()interrupt0//定义外部中断0程序

{

a++;//如果外部中断0被响应(-按钮按下),则状态周期变化50ms

}

int1()interrupt2//定义外部中断1程序

{

a--;//如果外部中断1被响应(+按钮按下),则

}

time0()interrupt1//定义定时器T0中断程序

{TH0=(65536-20000-1000*a)/256;//对T0高位置数40ms(a=0时)

TL0=(65536-20000-1000*a)%256;//对T0低位置数

k++;//机器周期2us,则设置的40ms需要循环25次才可以

if(k==25)//k为25时表示已经计数到1s

{

T1S_flag=1;

k=0;

}

}

voidmain(void)

{

TMOD=0x01;//T0工作于方式1(16位定时计数)

TH0=(65536-20000-1000*a)/256;//为T0高位置数

TL0=(65536-20000-1000*a)%256;//为T0低位置数

k=0;//k赋初值

IT0=1;//外部中断0低电平中断方式

IT1=1;//外部中断1低电平中断方式

EX0=1;//允许外部中断0

EX1=1;//允许外部中断1

PX0=1;//INT0的中断优先级别高,若两键同时按下则响应外部中断0

ET0=1;//允许T0中断

EA=1;//开总中断

TR0=1;//启动定时器T0

while

(1)//循环按照led_mod规定的LED亮灭九种情况

{

if(T1S_flag==1)

{

T1S_flag=0;

P1=led_mod[i];//输出使LED对应亮灭

i++;

if(i==9)i=0;//产生循环

}

}

}

5基于Proteus软件的仿真

5.1电路图

图5.1仿真电路图

5.2结果展示

图5.2Proteus仿真展示

(1)

图5.3Proteus仿真展示

(2)

5.3结果分析

在此电路图中,可以看到一种比较符合预想的结果,首先开始调试后,所有的LED会按照1秒规定的时间亮灭改变状态,且按键也会对LED的变化快慢产生规定的影响。

每按下按键,其都会相应变化50ms的快慢。

6实物设计步骤和展示

6.1设计步骤

6.1.1元件清单

图6.1仿真中元件清单

注:

在采购元件时,我们使用了STC89C52芯片、220Ω电阻以及6MHz晶振。

6.1.2焊接

图6.1焊接效果

6.1.3调试

经过调试,实物从烧入程序、灯的亮灭和按键的作用都是正常的,程序完整且实物可以使用。

 

6.2实物运行展示

图6.2实物运行展示

6.3优点和问题

本实物中需要冷启动写入程序,且断电仍能保证其程序存在。

LED亮度符合要求,且会按照仿真结果定时换状态。

只是时间不会按照理论上的变化。

在反复检查了电路后,为了能够达到要求我适当调大了程序中的k值并且反复烧入单片机芯片进行测试。

电路中只需要烧入程序,下一次可以直接通电使用而不需要再次烧入程序。

7心得体会

这个学期的单片机课已经早早的上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。

关于这次课程设计,我们小组花费了比较多的心思,分工合作,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等。

我觉得在设计课程过程中遇到问题是很正常。

除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。

此次的设计,其实也是我们所学知识的一次综合运用,让我深深的认识到了学习单片机要有一定的基础,要有电子技术方面的数字电路和模拟电路等方面的理论基础,特别是数字电路;也要有编程语言的汇编语言或C语言。

要想成为单片机高手,我们首先要学好汇编语言,然后转入C语言学习,所以我们不能学到后面就忘了前面的知识,更应该将所学的知识紧紧的结合在一起,综合运用,所谓设计,就是要求创新,只有将知识综合运用起来才能真正的设计好。

单片机是一门应用性很强的学科,课程设计是培养我们综合运用所学知识,发现问题,分析问题和解决问题,实践操作的重要环节。

通过本次课程设计,我们小组四人分工合作,从设计方案,到编程上机,再到硬件连线,总体调试,每个人都参与了进来。

加深了单片机的实物和软件及C51等语言的理解和认识。

本次课程设计主题思想是模块化实现系统。

每个模块完成他的子功能,把一个大的复杂的问题分解成了几个较为容易的小问题,减轻了工作负担,提高了效率,并且使做出的东西效果更好。

这种思想对我们今后的学习和工作都有很大的帮助,在设计思路上有很好的作用,值得我们反复学习,反复实践。

参考文献

1.李群芳,肖看,关新,张士军.单片微型计算机与接口技术[M].北京:

电子工业出版社,2015.

2.宋雪松.手把手教你学51单片机[M].北京:

清华大学出版社,2015.

3.皮大能.单片机课程设计指导书[M].北京:

北京理工大学出版社,2010.

4.朱丹,谢云.单片机系统设计基础及应用[M].北京:

北京理工大学,2017.

5.[美]Stephen,Prata.C++PrimerPlus[M].北京:

人民邮电出版社,2017.

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

当前位置:首页 > 工程科技 > 机械仪表

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

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