《单片机原理及接口技术》课程设计报告多通道秒表定时器Word文件下载.docx
- 文档编号:18441785
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:24
- 大小:261.63KB
《单片机原理及接口技术》课程设计报告多通道秒表定时器Word文件下载.docx
《《单片机原理及接口技术》课程设计报告多通道秒表定时器Word文件下载.docx》由会员分享,可在线阅读,更多相关《《单片机原理及接口技术》课程设计报告多通道秒表定时器Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,强化单片机应用电路的设计与分析能力。
提高学生在单片机应用方面的实践技能和科学作风,培育学生综合应用知识理解问题的能力。
2.课程设计要求
课程设计以学生认知为主体,充分调动学生的积极性,重视学生自学能力的培养,根据具体课题安排时间确定课题的设计、编程和调试内容,分团队开展课程设计活动,按时完成每部分工作。
坚持独立完成,实现课题规定的各项指标,并写出设计报告。
要求学生自己查阅资料和充分利用所学知识,根据所要设计系统所要达到的功能,划分软硬件功能、选择器件、编写相关程序,用Proteus在计算机上绘图并用Keil进行程序边编写进行防真,再对整个系统做调试运行,培养学生在遇到问题时能进行独立、系统、认真的思考,并进一步培养学生在团队中的合作精神,不断调试修改,直至达到设计的要求和取得满意的效果,最后编写系统说明书,其内容包括系统的功能介绍,使用范围,主要性能指标,使用方法,注意事项等。
二、设计的步骤和思路
1、总体要求
该课程设计要求基于AT89C51设计一个4位的LED数码管作为“4通道的秒表定时器”。
(1)设计使显示时间为0~99秒;
(2)当各通道定时时间到时,点亮对应的LED灯;
(3)设计一个具有4个按键的键盘:
K1:
“设置”/“定时启动”;
K2:
“通道”/“定时设置”;
K3:
“加一”;
K4:
“减一”;
(4)@设计每到一秒钟有声音或LED提示提醒功能,可通过按钮打开及关闭该提醒功能。
(5)设计提示
1)用4位7段LED数码管作为显示设备,最高位显示通道号,第2位显示时间.
2)可采用定时器,定时时间100ms.
3)参考ProteusPro仿真效果图:
2、设计的步骤
(1)制定相应的设计方案;
(2)硬件的初步设计;
(3)选择设计所用元器件和参数;
(4)在Proteus7.5中设计和连接电路图;
(5)软件的初步设计;
(6)编写程序实现其功能;
(7)在keil_v4中进行调试运行;
(8)硬件和软件联合调试。
3、设计的思路
为使数码管同时显示通道号和定时值(0~99秒),选用4位7段LED数码管,当定时时间到时点亮对应的LED灯,课程中我们选用LED-BLUE灯,并设计有四位按键的键盘,分别为K1、K2、K3、K4来控制定时启动/停止、通道号和定时时间的切换设置、通道号/定时时间加一、通道号/定时时间减一。
通过这四个按键来控制整个电路的运行、LED灯的点亮和数码管的显示。
具体控制如下:
(1)通道号为1~4,对应LED灯为LED1~LED4,执行程序前可任意选择通道号;
定时值可在0~99S内任意设置;
(2)当程序运行初始化化后,如果K2按下,则切换至通道号的设置,通过K3、K4来增加或减小通道号;
当选择好通道号后如果按下K2则切换至定时值的设置,通过K3、K4来增加或减小定时值;
当定时值设置好之后按下K1则程序执行所选通道的秒表定时;
当定时时间到时,对应通道的LED灯点亮;
(3)当程序运行初始化后直接按下K3、K4进行定时时间的设置,通过K3、K4来增加或减小定时值;
当设置好之后按下K1后直接执行一通道的秒表定时;
(4)当程序运行初始化后直接按下K3、K4进行定时时间的设置,通过K3、K4来增加或减小定时值;
当设置好之后按下K2则切换至通道号的设置,通过K3、K4来增加或减小通道号;
当设置好后按下K1则执行对应通道的定时;
(5)当程序运行初始化后直接按下K3、K4进行定时时间的设置,通过K3、K4来增加或减小定时值;
当设置好后按下按下K2则又切换至定时时间的设置,通过K3、K4来增加或减小定时值;
依次可不断循环通道号和定时时间的切换设置,直至达到自己所想要的定时时间,此时按下K1则执行对应通道的秒表定时,当定时时间到时点亮对应的LED灯。
三、硬件的设计
硬件电路设计框图如下图所示,主要由:
4个按键的键盘、单片机、数码管、4个LED灯。
根据硬件系统电路设计框图,对各部分模块的原理进行分析,编写个子模块程序,最终将其组合。
1、AT89C51简介
AT89C51作为秒表计时系统的核心器件。
该器件是INTEL公司生产的MCS-51系列单片机的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS-51的CMOS产品。
不仅结合了HMOS的高速和高密度技术及HMOS的低功耗特征,而且继承和扩展了MCS-48单片机的体系结构和指令系统。
单片机小系统的电路图如图所示:
图1.3AT89C51
单片机AT89C51的主要特征:
与MCS-51兼容,4K字节可编程闪烁存储
灵活的在线系统编程,掉电标识和快速编程特性;
寿命为1000次写/擦周期,数据保留时间可10年以上;
全静态工作模式:
0HZ33HZ;
三级程序存储器锁定;
128×
8位内部RAM,32位可编I/O线;
两个16位定时器/计数器,5个中断源,4个8位并行的I/O接口,1个全双工I/O接口。
2、信号输入电路
独立式按键就是各按键相互独立,每个按键各接入一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。
因此,通过检测输入线的电平状态可以很容易判断哪个按键按下了。
独立式按键电路配置灵活,软件简单。
消除键抖动。
一般按键在按下的时候有抖动的问题,即键的簧片在按下时会有轻微的弹跳,需经过一个短暂的时间才会可靠地接触。
若在簧片抖动时进行扫描就可能得出不正确的结果。
因此,在程序中要考虑防抖动的问题。
最简单的办法是在检测到有键按下时,等待(延迟)一段时间再进行“行扫描”,延迟时间为10~20ms。
这可通过调用子程序来解决,当系统中有显示子程序时,调用几次显示子程序也能同时达到消除抖动的目的。
3、数码管的驱动模块的电路
4、LED灯的驱动模块电路
每当计时到时,对应的LED数码管就会点亮。
四、软件设计
1、单片机选择
AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(ROM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元。
功能强大AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。
此设计中就采用AT89C51。
2、系统软件设计分析
模块的划分:
(1)键盘的设置、启动、停止、加一、减一;
(2)数码管显示通道号和定时时间;
(3)定时时间到后对应通道号的LED灯点亮。
程序流程图如下:
3、主要功能实现的程序
(1)通道号的设置
ucharset_thax()//设置通道函数
{
key_set();
if(set_2==2)
{
delay(10);
if(k3==0)//K3加1
delay(30);
if(k3==0)
{
delay(300);
sec++;
if(sec==5)
{sec=1;
}
}
if(k4==0)//K4减1
if(k4==0)
delay(300);
sec--;
if(sec==0)
{sec=4;
}
a=sec;
returna;
}
(2)定时值的设置
voidset_time()//设置时间函数
if(set_2==1)
if(k3==0)//K3加1
minu++;
if(minu==100)
{minu=1;
minu--;
if(minu==-1)
minu=99;
}
}
五、调试说明
仿真结果和分析:
1、未启动仿真时,初始状态:
2、开始启动仿真后:
3、通过按下K2切换至一、二、三、四通道和定时值的设置,定时时间到后对应通道号LED灯点亮:
六报告总结
在将近一周的学习工作中,我们进行了keil和proteus的学习,并且熟练的用这两个软件进行了这次的课程设计,在这期间,我从开始的一无所知到基本清楚,从不熟练到熟练,通过查阅资料、问老师、问同学,最终完成了这次的课程设计。
通过这次单片机课程设计,我不仅加深了对单片机理论的理解,而且我还学会了如何去培养我们的创新精神,独立自主的去完成一个设计。
这次设计也让我深深的感到仅在课堂上的学到的知识是远远不够的,课下我们应该多到图书馆或网上多了解一下其它的东西,同时更应该加强我们的动手能力的训练,因为学习就是为了将知识应用到生活中,造福人类。
同时,更重要的是,在这一次设计中,我学会了坚持不懈,不轻易言弃。
在设计过程中我也遇到国很多的问题,比如图形看上去大体对了,但是运行起来还是出错了,最为要命的是编写程序,首先要搞清楚是做一件什么事情,然后是基本结构,最后才是细心编写,其中编写程序的时候,只要有一小点不小心,整个过程就不能实现。
所以这次课程设计不仅仅然我增长巩固了知识,还很好的培养了我的细心与耐心的性格,同时还更清楚的认识了解和应用了MCS-51单片机。
在此要感谢我的指导老师,感谢老师给我这样的机会锻炼。
在整个设计过程中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜悦。
虽然这个设计还不是很完善,但是在设计过程中所学到的东西是这次设计的最大收获和财富,使我终身受益。
七、参考文献
(1)《单片机原理与接口技术》吴亦峰陈德为冯维杰曹双贵许艳编造出版社电子工业出版社
(2)《MCS-51单片机原理及应用实例》南建辉熊鸣王军茹编著出版社北京清华大学出版社版次2004年3月第1版2006年2月第3版次印刷
八、附录
#include<
reg52.h>
#defineuintunsignedint
#defineucharunsignedchar
sbitQB1=P2^0;
//选择数码管
sbitQB2=P2^1;
sbitQB3=P2^2;
sbitQB4=P2^3;
sbitk1=P1^0;
//k1按键,
sbitk2=P1^1;
//k2按键,
sbitk3=P1^2;
//k3按键,加1
sbitk4=P1^3;
//k4按键,减1
sbitled4=P3^0;
//LED灯
sbitled3=P3^1;
sbitled2=P3^2;
sbitled1=P3^3;
sbitwhat=P0;
ucharsec=1,minu,mstcnt;
//定义初始量
ucharset_2=1,set_1=1;
ucharmis,mig,ss,sg;
ucharcodetable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
//共阴显示
ucharcodetabl[]={0x3F,0x06,0x5B,0x4F,0x66};
inta;
voiddelay(uint);
//延时函数
voidkey_change();
//扫描K1
voidkey_set();
//扫描K2
voiddisp(uchar,uchar,uchar,uchar);
//显示函数
voidset_time();
//设置时间函数
ucharset_thax();
//设置通道函数
voidtimer0();
voidhaap();
voidmain()//主函数
EA=1;
//系统允许有开放的中断
ET0=1;
//允许T0中断
TR0=1;
//开启中断,启动定时器
TMOD=0x01;
TH0=0x00;
TL0=0x01;
while
(1)
sg=sec%10;
//通道个位
mis=minu/10;
//显示时间十位
mig=minu%10;
//扫描K2
key_change();
//扫描K1
if(set_1==1)//设置显示条件
{haap();
if(k1==1&
&
k2==1)//正常显示
k2==1)
{sg=sec;
disp(sg,mis,mig,ss);
if(set_1==2)//启动条件
timer0();
if(set_1==3)
{minu=0;
voidhaap()//设置显示函数
if(set_1==1)
key_set();
set_time();
key_set();
{
set_thax();
voidtimer0()interrupt1using0//启动函数
{
TH0=0x01;
TMOD=0x01;
if(set_1==2)
mstcnt++;
if(mstcnt==20)
mstcnt=0;
if(minu==0)
{
minu=0;
set_thax();
if(a==1)
{
led1=0;
led2=1;
led3=1;
led4=1;
else
if(a==2)
{
led1=1;
led2=0;
led3=1;
led4=1;
}
else
{
if(a==3)
{
led1=1;
led2=1;
led3=0;
led4=1;
}
else
if(a==4)
{
led1=1;
led2=1;
led3=1;
led4=0;
}
}
else
minu--;
}
if(minu==0)
minu=0;
voidkey_change()//k1按键扫描
if(k1==0)
delay(20);
set_1++;
while(k1!
=1);
if(set_1==4)
{set_1=1;
voidkey_set()//k2按键扫描
if(k2==0)
set_2++;
while(k2!
if(set_2==3)
{set_2=1;
voiddisp(ucharsg,ucharmis,ucharmig,ucharss)//显示函数
{
QB1=0;
QB2=1;
QB3=1;
QB4=1;
P0=table[sg];
//第1个数码管显示通道
//延时一小会
QB1=1;
QB3=0;
P0=table[mis];
//第3个数码管显示十位
QB4=0;
P0=table[mig];
//第4个数码管显示个位
P0=table[ss];
//第2个数码管不显示
if(k3==0)//K3加1
if(k4==0)//K4减1
if(k3==0)//K3加1
voiddelay(uintk)//延时函数
uinti,j;
for(i=k;
i>
0;
i--)
for(j=80;
j>
j--);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理及接口技术 单片机 原理 接口 技术 课程设计 报告 通道 秒表 定时器
![提示](https://static.bdocx.com/images/bang_tan.gif)