单片机课程设计Word文档下载推荐.docx

上传人:b****1 文档编号:228349 上传时间:2023-04-28 格式:DOCX 页数:17 大小:907.77KB
下载 相关 举报
单片机课程设计Word文档下载推荐.docx_第1页
第1页 / 共17页
单片机课程设计Word文档下载推荐.docx_第2页
第2页 / 共17页
单片机课程设计Word文档下载推荐.docx_第3页
第3页 / 共17页
单片机课程设计Word文档下载推荐.docx_第4页
第4页 / 共17页
单片机课程设计Word文档下载推荐.docx_第5页
第5页 / 共17页
单片机课程设计Word文档下载推荐.docx_第6页
第6页 / 共17页
单片机课程设计Word文档下载推荐.docx_第7页
第7页 / 共17页
单片机课程设计Word文档下载推荐.docx_第8页
第8页 / 共17页
单片机课程设计Word文档下载推荐.docx_第9页
第9页 / 共17页
单片机课程设计Word文档下载推荐.docx_第10页
第10页 / 共17页
单片机课程设计Word文档下载推荐.docx_第11页
第11页 / 共17页
单片机课程设计Word文档下载推荐.docx_第12页
第12页 / 共17页
单片机课程设计Word文档下载推荐.docx_第13页
第13页 / 共17页
单片机课程设计Word文档下载推荐.docx_第14页
第14页 / 共17页
单片机课程设计Word文档下载推荐.docx_第15页
第15页 / 共17页
单片机课程设计Word文档下载推荐.docx_第16页
第16页 / 共17页
单片机课程设计Word文档下载推荐.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计Word文档下载推荐.docx

《单片机课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机课程设计Word文档下载推荐.docx(17页珍藏版)》请在冰点文库上搜索。

单片机课程设计Word文档下载推荐.docx

5.4按键处理程序.......................................................................11

6.程序清单...............................................................................12

7.实验总结...............................................................................17

8.设计心得...............................................................................18

9.参考资料...............................................................................19

1.设计题目

1.1课题研究背景

电子时钟有着很长的历史,在1957年,Ventura发明了世界上的第一块电子表后,他就奠定了电子时钟的基础,电子时钟开始迅速地发展起来。

现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒为一分钟进一,满六十分为一小时进一,满二十四小时清零,从而达到计时的功能。

基于51单片的电子时钟,外围电路简单易于实现,性价比高,是实现电子时钟的不错选择。

1.2课题主要内容

本次课程设计基于单片机内部资源设计出的一款性价比高的电子时钟系统,主要涉及到以下几个研究方向:

(1)熟悉MCS-51单片机内部定时器的工作方式;

(2)掌握单片机内部中断系统的工作模式;

(3)了解MCS-51单片机外部电路的一般设计方法;

(4)熟悉汇编语言的编写规则;

(5)掌握单片机内部ram地址分配方法;

(6)掌握特殊功能寄存器的用法;

(7)熟悉ProteusISIS及KeiluVision2软件的使用。

2.设计任务

我们采用应用广泛的AT89C51作为时钟控制芯片,利用单片机内部的定时/计数器T0实现软时钟的目的。

在六位数码显示器上显示时,分,秒。

选用定时器每隔0.125秒产生一次中断,在内存中设定四个单元,存放0.125秒,秒,分,时,每隔0.125秒对这些单元中的内容进行必要的修改。

存放时分秒及0.125秒的数值的四个单元选用片内RAM:

(50H)——0.125秒的个数

(51H)——秒(BCD码)

(52H)——分(BCD码)

(53H)——时(BCD码)

晶振频率为6MHz,使用方式1定时0.125秒,则定时器的初始值为0BDCH。

可每中断8次更新一次时间显示,每隔两次中断(0.25秒)进行一次键盘检查。

此外还要实现对时间的调整功能,89C51的P1.0、P1.1、P1.2外接三个独立按键,当有键按下时,分别使秒单元清零,时,分内容加一。

3.设计思路

3.1系统框图设计

根据电子时钟能够实现的功能,采用单片机内部资源,设计出了系统原理框图,如图3-1所示:

图3-1

在单片机内部构建三个模块:

控制模块、译码模块、定时模块,用以实现自动计数、译码显示功能。

单片机外部构建三个电路:

复位电路、外部按钮电路、显示电路,用以实现对单片机内部计数控制以及译码输出的正确显示。

该电子时钟是将秒、分、时显示在人的视觉器官面前的一种计时装置。

故将计时周期设置为24小时,当显示满刻度是23时59分59秒时,数码管显示为0。

为了确保时间正常校对,在系统中设有校对按钮,用以实现对数码管显示的正确调整。

3.2系统电路原理设计

在本次的设计中对6MHZ的系统时钟进行定时计数,初值设为0BDCH。

形成定时时间为0.125s。

用片内RAM的50H单元对0.125s计数,计8次1秒钟到,然后对秒计数器51H单元加1,秒计数器加到60后就向分进位,则分计数器52H单元加1而秒计数器51H单元清零;

分计数器加到60后又向时进位,则时计数器53H单元加1而分计数器52H单元清零;

时计数器加到24则时计数器清零。

然后把秒、分、时计数器分成十位和个位放到6个数码管的显示缓冲区,通过数码管显示出来。

显示格式为小时十位、小时个位、分十位、分个位、秒十位、秒个位。

4.硬件原理图和连接图

4.1总原理图

根据电路原理框图设计出电路原理图如图4-1所示,由6MHz的晶振给单片机提供固定的时钟频率,通过k0、k1、k2可以对显示电路时间进行位设定。

图4-1

4.2AT89C51

AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS的8位微处理器,俗称单片机。

AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。

如图4-2所示:

图4-2

由于电路原理中只用到单片机的p0、p1、p2口,所示下面对这三个端口进行详细介绍。

1)、P0口:

P00~P07统称为P0口,在不接片外存储器与不扩展I/O接口时,作为准双向输入/输出接口。

在接有片外存储器或扩展I/O接口时,P0口分时复用为低8位地址总线和双向数据总线。

P0口是一个三态双向口,由一个输出锁存器、两个三态缓冲器、输出驱动电路和输出控制电路组成。

在输入数据时,应人为地先向P0口写“1”,定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

2)、P1口:

P10~P17统称为P1口,可作为准双向I/O接口使用。

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4LSTTL门电流。

P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

3)、P2口:

P20~P27口统称为P2口,一般可以作为准双向I/O接口使用,在接有片外存储器或扩展I/O接口且寻址范围超过256字节时,P2口用作高8位地址总线。

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

4.3复位电路

计算机在启动运行时都需要复位,复位时使中央处理器CPU和内部其他部件处于一个确定的初始状态,从这个状态开始工作。

AT89C51单片机有一个复位引脚RST,高电平有效。

在时钟电路工作以后,当外部电路使得RST端出现两个机器周期(24个时钟周期)以上的高电平,系统内部复位。

复位有两种方式:

上电复位和按钮复位。

在此次的设计中,我采用按键复位,如图4-3所示:

图4-3

只要RST保持高电平,AT89C51单片机将循环复位。

复位期间,ALE、PSEN输出高电平。

RST从高电平变为低电平后,PC指针变为0000H,使单片机从程序存储器地址为0000H的单元开始执行程序。

当单片机执行程序出错或进入死循环时,可按复位按钮重新启动。

4.4按键电路

独立式键盘是各按键相互独立,每个按键各接一根I/O接口线,每根I/O接口线的按键是不会影响其他的I/O接口线。

在本次设计中,按键为K0、K1、K2,他们分别与单片机P1.0、P1.1、P1.2接口线相接。

通过按键控制显示器的显示。

图4-4所示:

图4-4

4.5LED显示电路

在本次的设计中,采用的8位的数码管显示器。

数码管如果按照段数分可为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多了一个小数点的显示;

如果按能够显示多少个“8”分类的话,也可以可分为1位、2位、4位等数码管。

如果按照发光二极管单元的连接方式又可以分为共阳极数码管和共阴极数码管。

共阳极的数码管是将所有发光二极管的阳极接到一起后就形成公共阳极(COM)的数码管,共阳极数码管在应用时要将公共极(COM)接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。

共阴极数码管是将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴极数码管在应用时应将公共极(COM)接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

如图4-5所示:

图4-5

5.程序流程图

5.1主程序

先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有按键按下时,则转入相应的功能程序。

5.2数码管显示

本设计有8个数码管,从右到左为妙、分、时。

在本系统中数码管显示采用软件译码动态显示。

在存储器中首先建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段表中查出所显示的信息的断码,从P0端口输出,同时在P2端口进行数码管显示。

5.3定时器/计数器T0中断服务程序

T0用于计时,选中方式一,重复定时,定时时间设为0.125s,定时时间到则中断,在中断服务程序中用一个计数器对0.125s计数,计8次则对秒单元加一。

秒单元加到60则对分单元加一,同时秒单元清0;

分单元加到60则对时单元加一,同时分单元清0;

时单元加到24则对时单元清0,标志一天时间计满。

在对各单元计数的同时,把他们的值放到存储器单元的指定位置。

流程图如下:

5.4按键处理程序

按键设置为:

如果没有按键,则时钟正常走时。

当按下K0键时,时钟复位,从零开始计数;

按K1键时,秒清零;

按K1键时,分清零,再按时实现加一功能;

按K2键时,时清零,再按时实现加一功能。

6.程序清单

ORG0000H

LJMPTIM

ORG000BH;

中断服务程序入口T0

LJMPLOOP2

ORG0030H;

主程序入口

TIM:

MOVSP,#2FH

MOVTMOD,#01H;

设置T0定时为方1

MOVIE,#0

SETBET0

SETBEA;

打开T0中断

MOVTH0,#0BH;

定时0.125s

MOVTL0,#0DCH

SETBTR0;

启动T0

MOV50H,#0;

各时间存储单元清零

MOV51H,#0

MOV52H,#0

MOV53H,#0

CLRPSW.5;

清除键盘调整标志位

LOOP1:

CALLDISP2;

调用显示子程序

JBCTF0,LOOP2

JMPLOOP1;

主程序循环

;

-------------------------

LOOP2:

MOVTH0,#0BH

INC50H

MOVA,50H

CJNEA,#02H,EQ04

SJMPJIAN

EQ04:

CJNEA,#04H,EQ06

EQ06:

CJNEA,#06H,EQ08

EQ08:

CJNEA,#08H,_END_T0

MOV50H,#0

MOVA,51H;

秒计数

ADDA,#1

DAA

MOV51H,A

CJNEA,#60H,JIAN

ADDF:

;

分计数

MOVA,52H

MOV52H,A

JBPSW.5,_END_T0;

PSW.5为1,是按键调整,时不变

ADDH:

时计数

MOVA,53H

MOV53H,A

CJNEA,#24H,JIAN

JBPSW.5,_END_T0

JIAN:

MOVP1,#0FFH

MOVA,P1;

读取键盘状态

CPLA

ANLA,#00000111B

JZ_END_T0;

为0则无键按下

SETBPSW.5

JBACC.0,CLRS;

为1则是P3.0有键按下

JBACC.1,ADDF

JBACC.2,ADDH

CLRS:

_END_T0:

清除按键调整标志位

RETI

---------------------------------

DISP2:

显示子程序,把51H52H53H的内容送到LED显示器

CALLFEN_JIE2

CALLDISPLAY

RET

FEN_JIE2:

MOVA,51H

ANLA,#0FH

MOV7DH,A

SWAPA

MOV7CH,A

MOV7BH,A

MOV7AH,A

MOV79H,A

MOV78H,A

------------------------------

DISPLAY:

MOVR0,#7DH

MOV7EH,#0FEH

MOV7FH,#6

_DP_L:

MOVA,@R0

MOVDPTR,#_MA_BIAO

MOVCA,@A+DPTR

MOVP0,A;

P0段选P2位选

MOVP2,7EH

XRLP2,#255;

取反否则加三极管

MOVA,7EH

RLA

MOV7EH,A

DECR0

LCALLDL1MS

MOVP2,#0;

关闭显示

DJNZ7FH,_DP_L;

循环显示六个位

_MA_BIAO:

DB0C0H,0F9H,0A4H,0B0H,99H

DB92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H

DB8EH

DL1MS:

DEL1:

MOVR7,#0

DJNZR7,$

END

7.实验总结

在本课题中,采用AT89C51单片机作为主控制器,6MHZ晶振作为振荡源,P0口作为输出字段码,P2口作为输出位选码,采用共阳的LED数码管,P1.0为秒清零按键,P1.1为分加1键,P1.2为时加1键。

片内RAM的78H到7DH单元为LED数码管的显示缓冲区51H,52H,53H分别为秒、分、小时计数单元。

50H为0.125s计数器。

仿真实现如图7:

图7

8.设计心得

经过两周的时间以及对整本教材的知识总结,把课程设计分成了硬件和软件两大模块。

总的来说,硬件部分很好入手,电路也比较简单,主要涉及的是简单的按键、电容、电阻和数码管。

在软件部分,细分为了按键模块、显示模块、定时/计数模块,最后把几个模块整合在主程序模块中,使得程序简单明了。

整个设计过程中遇到的最大问题是软件的编写,由于采用的是汇编语言,其间使用到的各种寄存器、存储器地址、变量很多,很难对程序的整体把握。

通过电子钟的设计,对单片机的原理、结构、外围电路进一步的了解。

在整个设计过程中学到了团体精神和独立解决问题的重要性,为以后的求职之路打下了基础。

9.参考资料

[1]张毅刚单片机原理与应用.高等教育出版社2010

[2]李春晖单片机原理与接口技术实验指导书2007

[3]林立单片机原理与应用电子工业出版社2009[4]李守中51单片机开发入门与经典实例人民邮电出版社2007[5]胡汉才单片机原理与接口技术清华大学出版社1996

[6]杨加国单片机原理与应用及C51程序设计(第二版)清华大学出版2009

[7]杜树春基于Proteus和KeilC51的单片机设计与仿真电子工业出版社2012

[8]陈海宴51单片机原理及应用:

基于KeilC与Proteus北京航空航天大学出版社2010

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2