电子秒表设计与制作2Word格式.docx
《电子秒表设计与制作2Word格式.docx》由会员分享,可在线阅读,更多相关《电子秒表设计与制作2Word格式.docx(21页珍藏版)》请在冰点文库上搜索。
1.1课程设计目的与要求
目的:
通过课程设计教学环节,学生在进一步熟悉单片机基础知识的同时,学会单片机应用系统的设计、制作方法和开发过程,初步具备运用所学知识分析和解决实际问题的能力,能够独立地完成一个简单应用系统的设计与开发。
要求:
1、熟悉单片机的硬件结构,会使用单片机仿真系统调试程序。
2、熟悉单片机的指令和汇编语言程序设计方法,能够编写一般综合应用问题的程序。
3、熟悉单片机外部接口芯片的接口扩展方法,会利用单片机的定时器/计数器、中断系统和串行通信等内部资源,实现实际应用中的定时、计数和通信功能。
4、熟悉应用系统设计与制作的基本方法与步骤;
能够熟练使用DVCC-J5286、QTH-2005仿真系统软硬件,调试单片机应用系统。
5、养成用科学的方法分析问题和创新思维的习惯。
6、具有独立完成课程设计任务、按要求撰写课程设计报告的能力。
1.2课程设计内容及选题
1.2.1课程设计任务选题
单片机晶振频率为:
DVCC-J5286仿真系统fosc=6MHZ,QTH-2005仿真系统fosc=12MHZ。
用DVCC-J5286仿真系统调试时,8255A的控制端口地址为0FF2BH,用QTH-2005仿真系统调试时8255A的端口地址由8255A的具体接口情况确定
工业顺序控制直流电机的调速控制交通信号灯模拟控制系统
(一)交通信号灯模拟控制系统
(二)彩灯控制系统
(一)彩灯控制系统
(二)彩灯控制系统(三)电脑时钟设计交流异步电动机Y/△起动控制单片机音乐程序设计红外线防盗报警器设计与制作电子秒表设计与制作
倒计时显示装置设计与制作
1.2.2各选题的目的和要求
工业顺序控制系统
设计以51单片机为核心的工业顺序控制程序,由P1.0—P1.6控制注塑机的七道工序,并利用七只发光二极管模拟注塑机的七道工序,高电平有效点亮,编制工业顺序控制系统程序;
要求每道工序时间延时可以设定,P3.4为启动开关,高电平启动。
P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定七道工序只有一位输出。
思考问题:
若要使每道工序中有多位输出,应怎样修改程序?
小直流电机调速系统设计
利用DAC0832芯片进行数/模控制,输出的电压经放大后驱动小直流电机的速度进行数字量调节。
DVCC仿真系统中DAC0832芯片的端口地址为8000H。
交通灯控制系统
(一)设计
交通灯的变化规律:
从初始状态0依次转到状态6,最后循环至状态1。
交通灯的变化状态:
状态0:
东西红灯亮,南北红灯亮;
状态1:
南北绿灯亮,东西红灯亮;
状态2:
南北绿灯闪,东西红灯亮;
状态3:
南北黄灯亮,东西红灯亮;
状态4:
东西绿灯亮,南北红灯亮;
状态5:
东西绿灯闪,南北红灯亮;
状态6:
东西黄灯亮,南北红灯亮。
(1)以单片机为核心,设计交通灯控制系统。
用P1口作输出口接交通灯(红绿黄)。
单片机控制发光二极管按交通灯的控制规律点亮。
(2)用中断技术使系统满足急救车优先通过的要求:
有急救车到达时,交通灯红灯全亮,仅急救车可通过。
设急救车通过路口的时间为10S,急救车通过后,交通灯恢复中断前状态。
可用开关K1来模拟急救车通过的中断申请,用十二只发光二极管(L1~L12)模拟交通灯。
交通灯控制系统设计
(二)
(1)正常情况下A、B道(A、B道交叉组成十字路口,A是主道,B是支道)轮流放行,A道放行1分钟(其中5秒用于警告),B道放行30秒(其中5秒用于警告)。
(2)一道有车而另一道无车(用按键开关K1、K2模拟)时,使有车车道放行。
(3)有紧急车辆通过(用按键开关K0模拟)时,A、B道均为红灯。
1、如何改变程序,使发光二极管点亮时间改变。
2、红绿灯不允许同时点亮,红绿灯交换时黄灯闪烁,怎样实现?
3、填写表1中的控制码。
彩灯控制系统
(一)
(1)用开关K1启动彩灯工作:
十二个彩灯中按双灯轮流点亮。
每隔2秒钟,彩灯状态转为同色灯一起闪烁,按红、绿、黄顺序依次轮流进行,喇叭发出声音报警。
同时,使继电器动作。
须达到某条件(如开关K6断电)时,喇叭停止报警,继电器归位,彩灯恢复到中断前的状态继续双灯轮流点亮。
(2)利用定时器以中断方式完成2秒的定时中断。
(3)用十二只发光二极管(L1~L12)模拟彩灯。
彩灯控制系统
(二)
十二个彩灯轮流点亮。
每隔2秒钟,所有彩灯一起闪烁,喇叭发出声音,然后自动恢复到轮流点亮状态。
(2)利用定时器以中断方式实现2秒的定时中断。
彩灯控制系统(三)
(1)正常情况下,十二个彩灯轮流点亮,不断重复进行,可以人为控制彩灯的启动和停止。
(2)一旦故障发生,引起中断,自动使所有红灯闪烁,其它灯全灭,同时,喇叭发出声音报警。
只有当故障排除后报警才停止,彩灯恢复到故障前的状态继续按轮流点亮的方式工作。
电脑时钟设计
(1)利用89S51内部定时器功能,编写一个能在LED上显示时、分、秒的电脑时钟程序。
(2)编写一个能对上述程序进行校时的程序。
(3)8155芯片的控制端口地址为0FF20H。
单片机音乐程序设计
(1)利用89S51内部定时器产生不同频率的方法,组成乐谱由单片机进行信息处理,经过放大利用单片机的I/O口线输出音乐。
(2)音频脉冲的产生:
根据某一音频的周期(1/频率),利用定时器计时此半周期时间,在输出口线上得到此频率的脉冲。
改变定时初值,以产生不同的频率。
(3)每一个音符使用一个字节,字节的高4位代表音符的高低,低4位代表音符的节拍。
(4)歌曲可自己任选,通过查资料获取相应的音乐控制码。
电子秒表设计与制作
利用定时器进行1秒定时程序设计,并把秒计数00~59显示在LED数码管上,并具有清零、暂停、开始等控制功能。
红外线防盗报警器
(1)用单片机控制,用红外线收发管进行检测,安装隐蔽,不易被发现。
(2)控测信号采用脉冲信号,节能且抗干扰。
(3)当有人试图闯入室内时,能自动进行声光报警。
倒计时显示装置
设计一个60秒或30秒的倒计时数码显示装置,要求有启动、复位和停止功能,当计时到0时,灯光报警。
交流异步电动机Y/△起动控制
用单片机控制电机起动时,定子绕组首先接成星形,待转速上升到接近额定转速时,再将定子绕组的接线换成三角形,电动机便进入全电压正常运行状态。
1.3方法、步骤及时间安排表
1.3.1方法与步骤
(1)分组集中辅导和个别辅导相结合。
(2)根据情况分配或自选设计题目,查找相关资料。
(3)设计硬件电路,绘制原理图。
(4)列出元器件清单,完成硬件电路。
(5)软件设计:
绘制流程图,写源程序清单,完成调试工作,现场答辩。
(6)完善设计题目中要求的功能。
(7)回答设计题目中的思考问题。
(8)最后按要求撰写课程设计报告。
并在指定时间内交到指导教师处。
1.3.2课程设计报告的要求如下
(1)设计名称、目的、任务和要求。
(2)总体方案设计(在总体方案设计过程中,对软件和硬件进行分工是一个首要的环节。
原则上,能够由软件来完成的任务就尽可能用软件来实现,以降低硬件成本,简化硬件结构。
同时,还要求大致规定各接口电路的地址、软件的结构和功能、上下位机的通信协议、程序的驻留区域及工作缓冲区等。
)(3)硬件设计:
整理各部分电路,画完整的硬件原理图,并作原理分析。
(4)软件设计:
绘制总体程序流程图和中断服务程序、子程序流程图;
写源程序清单及程序说明。
(5)系统调试并程序设计过程中的难点、解决办法及编程和调试小结或体会。
(6)结束语及参考资料。
1.3.3时间安排表
时 间
内 容
第十七周
星期一
上午
讲解课程设计内容及要求,明确设计任务
下午
查资料、设计任务需求分析,拟定总体设计方案
星期二
总体方案设计:
软、硬件功能划分。
硬件设计:
硬件电路设计及原理分析
星期三
全天
硬件电路设计与调试
星期四
软件设计:
系统定义(资源分配)、软件结构设计,绘制程序流程图
政治学习
星期五
编写源程序及程序说明
星期六
完善软、硬件资料,为全面调试作准备
第十八周
星期一~星期三
软硬件调试,完善和改进系统。
老师跟踪调试过程,考核学生的调试能力。
星期四~星期六
1、验收调试结果,现场答辩,答辩并记录相应成绩。
2、整理课程设计报告并上交全部资料。
备注:
先完成的先考核。
1.4课程设计考核内容、方法及成绩评定
课程设计结束时,要求写出课程设计报告,硬件电路按设计要求调试与制作;
软件调试通过,完成设计任务要求的相应功能,根据设计性能考虑的完善程度进行成绩评定。
课程设计成绩分三部分,课程设计报告占50%,系统调试、答辩及作品占50%。
课程设计评分表见附表1。
1.5其它
1、课程设计指导教师:
******
2、课程设计结束后三天内交课程设计报告,课程设计指导教师批改课程设计报告,并根据考核与成绩评定方法,综合评定学生课程设计成绩,上报教务处及系部。
3、学生的最终成绩以优、良、合格和不合格四个等次进行评定。
1.6选题及要求
课题:
1)分析题意,进行硬件设计,选择5个独立式按键作为启动、暂停、停止、清零、复位控制。
2)进行资源分配,包括设置定时器的工作方式、定时初值,5个按键的I/O口输入,数码管的I/O口控制段码输出。
3)分析程序的模块构成,及各模块之间的关系图:
4)将程序段输入仿真系统中,运行及调试程序,验证发光二极管的亮灭与状态表是否一致。
5)在项目报告中画出程序流程图,说明程序设计的方法,附程序段。
6)在项目报告中说明程序设计过程中的难点、解决办法及编程小结或体会。
根据相关的单片机材料,利用所学的单片机知识,结合DVCC系列单片机微机仿真实验系统中的软件和硬件(集成电路芯片AT89C51、七段数码管,开关电路及时钟信号电路,按键等),编写能够实现该项目的软件程序,最后将软、硬件有机的结合起来,进行有效的调试,达到完成该实验课程设计的目的要求。
第2章总体方案设计
2.1总体方案
方案一:
采用动态显示,动态显示能节约资源、电路简单、成本较低;
但控制复杂、显示容易出错。
用矩阵键盘实现控制功能,矩阵键盘控制电路简单、控制精确、美观;
但占用较多的I/O口线、设计较复杂。
利用8155扩展为LED提供输入,为矩阵键盘提供输出,并能进行复杂的数据I/O操作、有锁存与缓冲功能、有利于改进与开发。
方案二:
采用静态显示,静态显示显示准确、控制简单、成本较低、亮度较高、管理简单;
但占用I/O口资源较多、电路较复杂。
用简易按钮实现控制功能,简易按钮控制电路简单、控制功能简单、成本较低、占用较少的I/O口线;
控制功能较差。
方案比较:
方案二结构简单、控制功能简单、体积小、成本较低,但方案一相比之下控制功能复杂、体积较大、成本较高、电路复杂。
所以本次课程设计我们选择方案二。
2.2系统功能分析
键盘输入功能:
选择5个独立式按键作为启动、暂停、停止、清零、复位控制。
显示输出功能:
利用单片机的P0、P2口控制LED的段选,来实现LED静态显示,完成秒表计时显示。
定时控制功能:
采用定时器与软件计数相结合的方法实现1S、60S的定时控制。
2.3设计思路
2.3.1硬件整体设计思路及关键技术
本次课程设计选用LED数码显示管为共阳极数码管,LED显示方式为静态显示方式。
2位LED显示的段码由单片机的P0、P2口输出经200Ω限流电阻相接,位选直接加电源。
4个独立按钮(启动、暂停、停止、清零)的控制线经5.1KΩ电阻上拉后与单片机P3口(P3.0~P3.3)三根口线相连,还有一个复位按钮经200Ω限流电阻与单片机的控制脚RST相连。
2.3.2软件整体设计思路及关键技术
是以初始化、查询启动按钮、开中断、启动定时器为主程序,LED静态显示作为中断子程序。
二者间的联系是:
主程序查询有无按钮,无按钮时,等待再次查询,当查询到有按钮信号启动定时器,秒定时采用定时器T0中断方式进行,工作方式一定时50秒。
1秒定时由定时器中断20次得到,60秒计数由1秒定时循环60次实现的,中断及计数的开启与关闭受控于按钮处理程序。
第3章硬件电路的设计
3.1硬件选择
(1)AT89C51
AT89C51是一种带4K字节的闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器。
主要特性:
8031CPU与MCS-51兼容、4K字节可编程FLASH存储器、三级存储器保密锁定、128*8位内部RAM、32条I/O线、两个16位定时器/计数器、6个中断源、可编程串行通道、低功耗的闲置和掉电模式,片内振单荡器和时钟电路。
(2)LED数码管
LED显示器是有发光二极管显示字段的吸按时器件。
通常是用八段LED显示块组成,这八段发光管分别称为a、b、c、d、e、f、g和dp。
通过八个发光段的不同组合,可以显示0~9和A~F等16个数字字母,从而可以实现十六进制整数和小数的显示。
LED显示块可以分为共阴极和共阳极两种结构,如果所有的发光二极管的阴极接在一起,称为共阴极结构,则数码显示段输入高电平有效,当某段输入高电平,该段便发光。
如果所有的发光二极管的阳极接在一起,称为共阳极结构,则数码显示段输入低电平有效,当某段接通低电平时该段便发光。
因此要显示某字形就使次字形的相应段的二极管点亮,实际上就是送一个不同电平组合代表的数据字来控制LED的显示。
在八段LED与单片机接口时,将一个八位并行口与显示块的八个段对应相连,八位并行口输出不同的段字节数据,便可以驱动LED显示块的不同段发光,从而显示不同的数字。
3.2硬件电路图
图3-2-1单片机控制的电子秒表硬件原理图
3.3硬件电路分析
单片机的P0、P2口输出经200Ω限流电阻与两位LED数码管相接,LED数码管位选直接加电源,当P0.6为高电平P0口其他口线为低电平时,P2.1、P2.2为低电平P2口的其他口线为高电平时,LED数码管秒显示01秒,也就是P2口P0口哪个口线输出是低电平时对应的LED数码管的那一段发光(即点亮)。
当按钮没有按下时,电源经5.1K的电阻加在单片机的PC口控制线上,当有按钮K2按下时,电源经电阻到地,单片机的控制线跳变到低电平,给单片机的启动控制线一个下降源(启动信号)。
第4章软件设计
4.1软件功能分析及设计思路
根据系统需要完成的功能,整个程序设计为按钮输入程序、静态显示程序、秒计时程序三大模块。
根据各自的特点确定按钮程序为主程序,静态显示程序为中断子程序,秒计时程序为定时器中断服务程序。
三大模块之间的关系是:
按钮程序在无按钮按下时,数码管显示初始值;
在有按钮按下时,秒计时开始,控制中断服务程序的运行;
处理完毕后,再用静态显示子程序。
经上述处理后,三大模块运行协调一致,既保持了静态显示的稳定性,又保持了按钮的可靠性,还保持了秒计时的准确性,较好地实现了全部功能。
本系统采用11.0592MHz的晶振,调试时改为12MHz晶振,以方便定时
4.2资源分配与系统定义
4.2.1按钮输入口分配
4.2.2显示输出口的分配
单片机的P0、P2口输出经200Ω限流电阻与两位LED数码管相接,LED数码管位选直接加电源。
4.2.3内存分配与定义
两位LED显示的数据由显示缓冲区00H~37H单元中的数据决定,顺序是从左至右,静态显示时,每位显示持续时间为1ms,1ms延时由软件实现。
实现一秒采用第0组工作寄存器,1秒定时采用定时器T0方式1中断,每50ms中断一次,用R1做50ms计数单元,每20次为一个循环,计满20次,60秒计数单元(20H)计数1次。
60秒计数采用第0组工作寄存器的R3,R2单元的数据采用十进制计数,该数据被拆成个位和十位两个数据后分别送至显示缓冲区的30H、31H单元。
显示子程序采用缓冲工作寄存器。
4.3流程图
主程序模块即按钮输入模块:
采用按钮扫描方式取得K2、K3、K4、K5的键值,用按钮处理程序实现秒表的启动、暂停、清零、停止等功能。
主程序又细分为工作寄存器初始化程序、按钮查询程序、显示初始化、定时初始化、开中断、启动定时器,六大部分。
其流程图如图4-3-1所示。
秒计时模块即定时器中断服务程序:
用单片机定时器T0中断方式定时50ms,结合软件计数20次实现1秒定时;
利用单片机工作寄存器R3来实现60秒计数。
流程图如图4-3-2所示。
静态显示模块:
采用单片机的P0、P2口对数码管进行段码控制,LED数码管位选控制接电源。
以LED静态显示方式实现秒表计时显示。
4.4源程序清单
主程序
ORG0000H
AJMPMAIN
ORG0003H
LJMPWBZD0
ORG000BH
LJMPDSQ0
ORG0013H
LCALLWBZD1
ORG0100H
程序初始化
MAIN:
MOVP2,#40H;
数码管初始化
MOVP0,#40H
MOVP3,#0FFH;
按钮初始化
MOVR2,#00H;
工作寄存器初始化
MOVR3,#3BH
MOVDPTR,#TAB;
指针指向TAB表格
MOVTMOD,#01H;
定时器T0初始化
MOVTL0,#76H
MOVTH0,#52H
CLRTR0
JBP3.0,$;
启动
SETBEA;
开中断
SETBEX1
SETBPX1
SETBEX0
SETBET0
SETBTR0;
启动定时器T0
AJMP$;
等待
停止清零
WBZD1:
JBP3.1,$
RETI
暂停播放
WBZD0:
JNBP3.2,$
定时中断
DSQ0:
CLRTR0;
关定时器T0
MOVTL0,#76H;
T0初始化
DJNZR1,LOOP;
判断1S到否
INCR2;
秒记数
秒显示
MOVA,R2
DAA;
十六进制转换成十进制
MOVR2,A;
把十进制送到秒记数工作寄存器
MOV30H,A
MOV31H,A
ANL30H,#0FH;
分离秒记数的个位
ANL31H,#0F0H;
分离秒记数的十位
MOVA,30H
MOVCA,@A+DPTR;
取出个位的数码管显示字符
MOVP2,A;
把取出字符送到数码管上显示
MOVA,31H
SWAPA;
高低两半字节交换
取出十位的数码管显示字符
MOVP0,A;
DJNZR3,LOOP1;
59S到否
LOOP1:
MOVR1,#14H;
1S工作寄存器初始化
LOOP:
SETBTR0;
RETI;
中断返回
TAB:
DB40H,79H,24H,30H,19H,12H,02H,78H,00H,10H;
数码管显示字符表
END
第5章调试和分析
设计、调试大型程序时,需先根据要求划分模块,优化结构;
再根据各模块特点确定何为主程序,何为子程序,何为中断服务程序,相互间如何调用;
再根据各模块性质和功能将各模块细化,设计出程序流程图;
最后才根据各模块流程图编制具体程序。
调试时应先调主程序,实现最基本最主要的功能,在此基础上再将各模块功能往主程序上堆砌,直至各模块联调、统调,实现全部功能
5.1硬件调试
(1)首先检查好各个元件及导线是否有损坏。
(2)打开PC机,在仿真实验系统中编写一个能点亮LED数码显示管的程序,然后接好单片机CPU板与数码显示管上的连接线,再把程序下载到单片机,看数码显示管是否全部点亮。
如果不亮,检查导线和单片机是否有问题,直到数码管全部点亮为止。
(3)连接好单片机CPU板到数码显示管上的连线是否正确,最后检查按钮的连线。
5.2软件调试
(1)首先打开PC机上的仿真实验系统。
(2)输入源程序并保存,然后新建项目,再编译连接装载,看源程序是否有语法错误,检查修改直到没有语法错误为止。
(3)选择“单步执行”,打开“寄存器”窗口观察各寄器是否按程序的指定要求进行工作。
5.3系统调试
5.3.1调试操作步骤:
(1)打开PC机,启动仿真实验系统。
(2)输入源程序,并保存。
再编译检查语法错误,直到无语法错误为止。
(3)按原理图接线。
(4)接好下载线。
并打开PC机上下载图标,正确下载程序。
(5)打开电源开关,并对整个系统进行调试。
(6)观察运行结果是否符合设计要求,若不符和要求则单步运行检查错误。
(7)调试结束后,关机、拆线、整理工作台、断开总电源。
5.3.2程序调试故障分析与处理
(1)如果在调试的过程中单片机上的执行元件未按要求执行,或出错时应在软件中选择“单步执行”,打开“寄存器”窗口观察各寄器是否按程序的指定要求进行工作。
通过这一步可以正确的分析出程序的错误及编译调试出所要正确的源程序。
(2)当程序调试成功后,将反汇编程序与源程序打印并保存。
本课程设计故障:
程序运行过后,数码管的值永远显示初始值。
故障分析及处理:
通过认真的检查及老师的帮助,最终发现是中断的转移指令和程序调用指令概念混淆。
经老师讲解并举例过后,通过改正,最后调试成功
第6章总结与体会
本次课程设计我选的设计题目是“简易秒表的设计”。
拿到这个题目时,我们还对课程设计的概念很模糊,并且个题目的要求中包含了课本中的几大难点内容(如定时器、中断)。
刚开始还对定时器的初始化,初值的确定,如何开中断,中断的嵌套等内容感到有点棘手,一边看书一边向老师求教,还有就是通过现在方便的网络查询资料,并理清了思路,了解了课程设计的基本步骤,写出了正确的程序,并将其程序在实验室的仿真实验系统上调试成功。