时钟程序单片机文档格式.docx

上传人:b****2 文档编号:3892563 上传时间:2023-05-02 格式:DOCX 页数:22 大小:316.06KB
下载 相关 举报
时钟程序单片机文档格式.docx_第1页
第1页 / 共22页
时钟程序单片机文档格式.docx_第2页
第2页 / 共22页
时钟程序单片机文档格式.docx_第3页
第3页 / 共22页
时钟程序单片机文档格式.docx_第4页
第4页 / 共22页
时钟程序单片机文档格式.docx_第5页
第5页 / 共22页
时钟程序单片机文档格式.docx_第6页
第6页 / 共22页
时钟程序单片机文档格式.docx_第7页
第7页 / 共22页
时钟程序单片机文档格式.docx_第8页
第8页 / 共22页
时钟程序单片机文档格式.docx_第9页
第9页 / 共22页
时钟程序单片机文档格式.docx_第10页
第10页 / 共22页
时钟程序单片机文档格式.docx_第11页
第11页 / 共22页
时钟程序单片机文档格式.docx_第12页
第12页 / 共22页
时钟程序单片机文档格式.docx_第13页
第13页 / 共22页
时钟程序单片机文档格式.docx_第14页
第14页 / 共22页
时钟程序单片机文档格式.docx_第15页
第15页 / 共22页
时钟程序单片机文档格式.docx_第16页
第16页 / 共22页
时钟程序单片机文档格式.docx_第17页
第17页 / 共22页
时钟程序单片机文档格式.docx_第18页
第18页 / 共22页
时钟程序单片机文档格式.docx_第19页
第19页 / 共22页
时钟程序单片机文档格式.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

时钟程序单片机文档格式.docx

《时钟程序单片机文档格式.docx》由会员分享,可在线阅读,更多相关《时钟程序单片机文档格式.docx(22页珍藏版)》请在冰点文库上搜索。

时钟程序单片机文档格式.docx

特别是在近年来,80C51系列又有了许多发展,推出了一些新产品,主要是改善单片机的控制功能,如内部集成了高速I/O口、ADC、PWM、WDT等,以及低电压、微功耗、电磁兼容、串行扩展总线和控制网络总线性能等。

鉴于80C51系列在硬件方面的的广泛性、代表性和先进性以及指令系统的兼容性,可用其作为本教材的介绍对象;

至于其他类型的单片机,在深入学习和掌握了80C51单片机之后再去学习已不是什么难事。

图280C51单片机管脚图

单片机内部结构图为如图3所示:

图3单片机内部结构图

80C51单片机管脚说明

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

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

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

P1口:

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

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

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

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

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

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

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

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

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

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为80C51的一些特殊功能口,如下所示:

口管脚

备选功能

P3.0RXD

串行输入口

P3.1TXD

串行输出口

P3.2/INT0

外部中断0

P3.3/INT1

外部中断1

P3.4T0

记时器0外部输入

P3.5T1

记时器1外部输入

P3.6/WR

外部数据存储器写选通

P3.7/RD

外部数据存储器读选通

表1管脚P3口表

P0,P1,P2,P3口引脚图为如图4:

图4P0,P1,P2,P3口引角图

其中我们用了P0口和P1口。

定时/计数器简介

1.工作模式寄存器TMOD(89H)

工作模式寄存器TMOD用于控制T0和T1的操作模式,TMOD中,低4位用于T0,高4位用于T1,如下所示:

D7

D6

D5

D4

D3

D2

D1

D0

GATE

C/T

M1

M0

高4位用于T1

低4位用于T0

⑴门控位GATE。

GATE=0时,只要用软件使TR0或TR1置1就启动了定时器,而不管INT0或INT1的电平是高还是低。

GATE=1时,只有INT0或INT1管脚为高电平,而且由软件使TR0或TR1置1时,方能启动定时器工作。

⑵方式选择位C/T。

C/T=0时,为定时方式。

定时器对8051机器周期计数。

C/T=1时,为计数方式,计数器的输入为来自T0或T1的外部脉冲。

⑶操作模式控制位M1和M0。

M1和M0可形成4种编码,对应于定时器/计数器的4种操作模式。

如下所示:

M1M0

操作模式

功能描述

00

方式0

13位计数器

01

方式1

16位计数器

10

方式2

自动重装8位计数器

11

方式3

两个8位计数器

2.控制寄存器TCON(88H)

定时器控制寄存器TCON除可字节寻址外,各位还可位寻址,TCON字位如下:

8FH

8EH

8DH

8CH

8BH

8AH

89H

88H

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

⑴TF1是T1溢出标志位。

当T1溢出时由硬件自动使中断触发器TF1置1,并向CPU申请中断。

当CPU响应进入中断服务程序后,TF1又被硬件自动清0。

TF1也可以用软件清0。

⑵TF0是T0溢出标志位。

⑶TR1是T1运行控制位。

可用软件置1或清0来启动或关闭T1。

使TR1位置1后,定时器T1便开始计数。

⑷TR0是T0运行控制位。

⑸外部中断位。

低4位是外部中断位,他们是IE1,IT1,IE0,IT0,为外部中断INT1,INT0请求及请求方式控制位。

8051复位时,TCON的所有位被清0。

4.2.180C51简介

4.2.28155简介

8155引脚图及功能描述

8155有40个引脚,采用双列直插封装,其引脚图和组成框图如下页图所示。

我们对8155的引脚分类说明如下:

图58155管脚图

地址/数据线AD0~AD7(8条):

是低8位地址线和数据线的共用输入总线,常和51单片机的P0口相连,用于分时传送地址数据信息,当ALE=1时,传送的是地址。

I/O口总线(22条):

PA0~PA7、PB0~PB7分别为A、B口线,用于和外设之间传递数据;

PC0~PC5为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线。

a.控制寄存器格式如下

D7D6D5D4D3D2D1D0

TM2

TM1

IEB

IEA

PC2

PC1

PB

PA

A口控制位,PA=1输出方式,PA=0输入方式

B口控制位,PB=1输出方式,PB=0输入方式

I/O口方式PC2PC1=00方式1

11方式2

01方式3

10方式4

A口中断允许控制,“1”为允许,“0”为禁止

B口中断允许控制,“1”为允许,“0”为禁止

定时/计数方式控制TM2、TM1=00空操作

11停止计数

01计数值减为1时停止

10启动计数器

(3)控制总线(8条):

RESET:

复位线,通常与单片机的复位端相连,复位后,8155的3个端口都为输入方式。

WR,RD:

读/写线,控制8155的读、写操作。

ALE:

地址锁存线,高电平有效。

它常和单片机的ALE端相连,在ALE的下降沿将单片机P0口输出的低8位地址信息锁存到8155内部的地址锁存器中。

因此,单片机的P0口和8155连接时,无需外接锁存器。

CS:

片选线,低电平有效。

IO/M:

RAM或I/O口的选择线。

当=0时,选中8155的256BRAM;

当=1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。

TIMERIN、TIMEROUT:

定时/计数器的脉冲输入、输出线。

TIMERIN是脉冲输入线,其输入脉冲对8155内部的14位定时/计数器减1;

为输出线,当计数器计满回0时,8155从该线输出脉冲或方波,波形形状由计数器的工作方式决定。

8155的I/O接口及RAM地址分配

表2I/O接口及定时器地址编码

AD2AD1AD0

选中I/O口及定时器

低8位地址编码

000

控制(命令)状态寄存器

00H

000

PA口

01H

010

PB口

02H

011

PC口

03H

100

定时器低8位

04H

101

定时器高8位

05H

作片外RAM使用

当CE=0,IO/M=0时,8155只能做片外RAM使用,共256B。

其寻址范围由以及AD0~AD7的接法决定,这和前面讲到的片外RAM扩展时讨论的完全相同。

当系统同时扩展片外RAM芯片时,要注意二者的统一编址。

对这256BRAM的操作使用片外RAM的读/写指令“MOVX”。

作扩展I/O用

当CE=0,IO/M=1时,此时可以对8155片内3个I/O端口以及命令/状态寄存器和定时/计数器进行操作。

与I/O端口和计数器使用有关的内部寄存器共有6个,需要三位地址来区分。

4.2.33-8线译码器74LS138简介

当一个选通端(E1)为高电平,另两个选通端(/E2)和/(E3))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。

图674LS138管脚图

4.2.4LED数码显示器简介

图7八段数码管图

1、本实验仪提供了8段码数码管LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。

显示共有6位,采用动态方式显示。

8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。

6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。

74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。

写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,向显示位选通地址输出高电平就可以点亮相应的显示位。

本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为0e101H。

本实验涉及到了8155I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。

2、七段数码管的字型代码表如下表:

显示字形

g

f

e

d

c

b

a

段码

1

3fh

06h

2

5bh

3

4fh

4

66h

5

6dh

6

7dh

7

07h

8

7fh

9

6fh

A

77h

B

7ch

C

39h

D

5eh

E

79h

F

71h

4.3数字时钟工作原理图

图8数字时钟电路总图

由于电路设计得极其巧妙,许多功能都可以由硬件完成,因此软件设计就比较简单了。

下面介绍软件设计的要点:

主程序:

首先进行初始化,设置数字时钟的计时初值为23:

59:

00,启动T0进行50ms定时,且允许T0中断。

然后检测S1--S6是否按下,当按键S1--S6按下时,转入时、分、秒计数值的调整程序,系统主程序流程图如图9所示。

图9系统主程序流程图

定时器T0中断子程序:

中断服务子程序的作用是进行时、分、秒的计时与显示。

定时器T0用于定时,定时周期设为50ms,中断累计20次(即1s)。

定时器T0中断服务程序流程图如图10所示。

图10定时器T0中断服务程序流程图

时、分、秒计数值调整子程序TIME:

时间计数单元分别在40H(s),41H(min),42H(h)内存单元中,在计数单元中采用组合BCD码计数。

TIME子程序的作用是当满1秒时,对秒计数单元进行加1操作,满60向分进位;

对分计数单元进行加1操作,满60向时进位;

对时计数单元进行加1操作,满24清零。

程序清单:

OUTBITEQU0E101H;

CLK164EQU0E102H;

DAT164EQU0E102H;

INEQU0E103H;

LEDBUFEQU40H;

0RG0000H

LJMPMAIN

ORG000BH

LJMPINT0;

MAIN:

MOVSP,#60H;

初始化

MOVA,#03H

MOVDPTR,#0E100H

MOV@DPTR,A

MOV40H,#00H

MOV41H,#00H

MOV42H,#00H

MOV43H,#00H

MOV44H,#00H

MOV45H,#00H

MOVR4,#14H

MOVR5,#3CH

MOVR6,#3CH

MOVR7,#18H

MOVTMOD,#01H;

设置定时器

MOVTH0,#3CH;

定时器初值

MOVTL0,#0B0H

SETBTR0;

启动定时器

LOOP1:

LCALLDISPLAY;

显示

sjmploop1

INT0:

;

PUSHDPH

;

PUSHDPL

PUSHA

PUSH  R0

PUSHR1

MOVTH0,#3CH;

重新设置定时器初值

MOVTL0,#0B0H

DJNZR4IN0

MovA,45h

AddA,#01h

ADA

MovA,45h

MOVR4,#14H

DJNZR5IN0

MovA,43h

MovA,43h

MOV45H,#00H

MOVR5,#3CH

DJNZR6IN0

MovA,41h

MovA,41h

MOV43H,#00H

MOVR6,#3CH

DJNZR7IN1

MOV41h,#00h

IN0:

Movr3,#03h

Movr0,#45h

IN1:

mova,@r0

lcallptds拆字子程序

Djnzr3IN0

POPR1

POPR0

POPA

RETI

ptds:

movr1,a

lcallptds1

mova,r1

swapa

ptds1:

anla,#0fh

mov@r0,a

decr0

ret

DISPLAY:

setb0d3h

movr0,#LEDBuf

movr1,#6;

共6个八段管

movr2,#00100000b;

从左边开始显示

Loop:

movdptr,#OUTBIT

mova,#00h

movx@dptr,a;

关所有八段管

mova,@r0

movdptr,#LEDmap

movca,@a+dptr

movB,#8;

送164

DLP:

rlca

movr3,a

movacc.0,c

anla,#0fdh

movdptr,#DAT164

movx@dptr,a

movdptr,#CLK164

orla,#02h

anla,#0fDh

mova,r3

djnzB,DLP

mova,r2

显示一位八段管

movr6,#1

callDelay

mova,r2;

显示下一位

rra

movr2,a

incr0

djnzr1,Loop

mova,#0

clr0d3h;

LEDMAP:

;

八段管显示码

db3fh,06h,5bh,4fh,66h,6dh,7dh,07h

db7fh,6fh,77h,7ch,39h,5eh,79h,71h

END

第六章总结

在本次课程设计中,我通过动手实践操作,进一步学习和掌握了单片机原理的有关知识,特别是程序的编程方面,加深了对单片机原理及应用技术的认识,进一步巩固了对单片机知识的理解,掌握简单单片机应用系统的设计、制作的方法。

在设计时根据课题要求,复习相关的知识,查询相关的资料。

根据实验条件,找到适合的方案,找到需要的元器件及工具,进行实验。

这次的单片机课程设计重点是通过实践操作和理论相结合,提高动手实践能力,提高科学的思维能力,更在一周的时间了解了更多的有关单片机的知识,使知识更加丰富,使自己更加充实。

单片机作为我们的主要专业课之一,大三开学初期我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。

作为一名计算机科学与技术专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。

虽然过去从未独立应用过它们,但在学习的过程中带着问题去学习我发现效率很高,这是我做这次课程设计的又一收获。

然后,要做好一个课程设计,就必须做到:

在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;

要有一个清晰的思路和一个完整的的软件流程图;

在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;

要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。

在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

通过查阅大量有关资料,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。

但通过学习这一次实践,增强了我的动手能力,提高和巩固了单片机方面的知识,特别是软件方面,并让我认识到把理论应用到实践中去是多么重要。

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

当前位置:首页 > 法律文书 > 调解书

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

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