单片机课程设计报告.docx

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

单片机课程设计报告.docx

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

单片机课程设计报告.docx

单片机课程设计报告

单片机系统课程设计报告

专业__________________

学生姓名__________________

学号__________________

指导老师__________________

 

完成日期:

2013年12月16日星期

 

1.设计任务和性能指标

1.1设计任务

2.设计方案

2.1任务分析

2.2方案设计

3.系统硬件设备

3.1时钟的电路设计

3.2中断电路设计

3.3灯控电路设计

3.4倒计时电路设计

3.5按键电路设计

4.系统软件设计

4.11秒定时

4.2定时程序流程

4.3LED灯设计流程

4.4定时器与中断

5.仿真及性能分析

6.心得体会

1.设计任务

利用单片机完成篮球筐上的计时器的设计。

该控制器有数码管和LED灯组成。

每次显示24秒,24秒结束后LED等亮。

数码管重新计时。

如图所示:

2.设计方案

2.1任务分析

单片机的数码管可以作为计时器的数字显示,LED灯可以清晰的显示截止时间。

利用中断功能可以使时间暂停。

2.2方案设计

单片机可选用AT89C51,它与8051系列单片机全兼容,但其内部带有4KB的FLASHROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。

南北向和东西向各采用2个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。

键盘系统可以根据系统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的IO口不够用时,可以考虑扩展8255或8155满足系统的要求

3系统硬件设计

3.1时钟电路设计

如上图所示,采用内部时钟产生方式,在1.1和1.2和1.5接开关

接晶体或陶瓷振荡器,与内部反相器构成稳定的自击震荡。

其发出的

时钟脉冲直接送入片内定时控制部件。

3.2中断电路设计

图中暂停按钮时中断请求,当按下暂停按钮时,时钟停止计时。

3.3灯控电路设计

当数码管的倒计时结束时,所有LED灯点亮,显示结束一个轮回,数码管重新开始计时。

LED之间用串联电阻,接在p3口。

 

3.4倒计时显示电路设计

如上图所示,由两个个共阴极两位数码管来实现倒计时。

由于P0口

控制位,p2口控制段,位的利用只有3和4,段选控制单片机的显示数字。

4系统软件设计

4.11S定时

以在系统中要实现准确的1s定时。

采用89C51内部的定时/计数器TH,TL,工作在方式1,把秒计时用硬件和软件计数相结合的方法实现。

即把定时器的定时时间定为50ms,可用软件方法实现。

设计数初值为工,TH0=(65536-50000)/256;TL0=(65536-50000)%256;从上式计算得到计数初值。

定时器定时采用中断方式完成.以便于通过中断服务程序累计

4.2定时程序流程;4.3LED灯流程及程序。

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodetab[]={~0xc0,~0xf9,~0xa4,~0xb0,~0x99,~0x92,~0x82,~0xf8,

~0x80,~0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管段码表

ucharwei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

uinti=0;

uintj=0;

uinta=24;

uchark1flag=0;

uchark2flag=0;

sbitk1=P1^1;

sbitk2=P1^5;

sbitk3=P1^2;

voiddelay(uintz);

voiddisplay();

voidscan();

voidmain(void)

{

TMOD=0x01;

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

EA=1;

ET0=1;

TR0=0;

while

(1)

{

scan();

if(k1flag==1)

{

k2flag=0;

TR0=1;

}

display();

if(k2==0)

{

k2flag=1;

k1flag=0;

}

if(k2flag==1)

{

TR0=0;

}

}

}

voidscan()

{

if(k1==0)

{

delay

(1);

if(k1==0)

{

k1flag=1;

}

}

}

voidtime1()interrupt1//中断服务

{

TR0=0;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

j++;

if(j==20)

{

j=0;

a=a-1;

P3=0xff;

}

if(a==-1)

{a=24;

P3=0x00;

delay(500);

}

}

voiddisplay()

{

P2=wei[2];

P0=tab[a/10];

delay

(2);

P0=0x00;

P2=wei[3];

P0=tab[a%10];

delay

(2);

P0=0x00;

}

voiddelay(uintz)

{

uintx,y;

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

for(y=110;y>0;y--);

5仿真与性能

 

6心得体会

这次单片机课程设计历时三个星期的时间,在这三个星期里我们体验了从设计、画板、编程、焊板到调试的整个过程,让我们小小的体验了一次工程师的感觉。

起初我们先到图书馆和网上查阅了大量有关超声波测距仪的资料,然后开始设计我们自己的方案,为了设计精度要求和抱着学习新知识的想法,我们选择则了从没接触过的DS18B20和LCD1602液晶芯片,虽然我们并没把这两个芯片的应用原理研究的很透彻,但基本的应用编程是可以实现的,说实话整天抱着电脑查资料、看资料是一件很痛苦的事情,一天下来眼都花了,但每学会一点新知识还是挺高兴的,有的时候想要的资料查不到我们就向老师求助,他们都会毫无保留的帮助我们。

设计完电路以后我们便开始画PCB板,这是我们上学期学习的一门课程,趁着这次机会也让我们又将这部分只是复习了一下,并将其应用于实际,终于发现我们所学的知识和实际有点联系了,也对其产生了一点兴趣。

不过我们学得并不全面,只能说是引路用的,所以在实际当中我们还要再加深一下学习,这也是我们获得新知识的一个地方。

画板时需要注意的地方很多,比如封装要根据实际器件的尺寸来设计孔的大小,间距也要符合要求,布线时线宽与线距也有一定讲究,部件摆放要按一定规律等等。

这三周的时间说轻松也不轻松,说紧张却稍带着愉快的气氛,整个过程应该是充实的,时而惊喜,时而烦闷特别是最后调试阶段有一块调通了都会让我们高兴不已,当卡在某处时也确实是让人抓狂。

总之通过这次课设,我们不但复习了过去所学,并且学到了一些新东西。

更重要的是通过这一次切身实践,才使我们真正将理论与实际结合起来,并且遇到了很多实实在在的需要我们亲自解决的问题。

通过解决这些问题,我们处理实际问题的能力有了很大提高,积累了我们的实践经验,以便为以后打下牢固的基础。

而这些才是我们作为一名工科学生最宝贵的财富。

 

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

当前位置:首页 > 自然科学 > 物理

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

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