关于单片机论文Word格式.doc

上传人:聆听****声音 文档编号:472930 上传时间:2023-04-29 格式:DOC 页数:17 大小:153KB
下载 相关 举报
关于单片机论文Word格式.doc_第1页
第1页 / 共17页
关于单片机论文Word格式.doc_第2页
第2页 / 共17页
关于单片机论文Word格式.doc_第3页
第3页 / 共17页
关于单片机论文Word格式.doc_第4页
第4页 / 共17页
关于单片机论文Word格式.doc_第5页
第5页 / 共17页
关于单片机论文Word格式.doc_第6页
第6页 / 共17页
关于单片机论文Word格式.doc_第7页
第7页 / 共17页
关于单片机论文Word格式.doc_第8页
第8页 / 共17页
关于单片机论文Word格式.doc_第9页
第9页 / 共17页
关于单片机论文Word格式.doc_第10页
第10页 / 共17页
关于单片机论文Word格式.doc_第11页
第11页 / 共17页
关于单片机论文Word格式.doc_第12页
第12页 / 共17页
关于单片机论文Word格式.doc_第13页
第13页 / 共17页
关于单片机论文Word格式.doc_第14页
第14页 / 共17页
关于单片机论文Word格式.doc_第15页
第15页 / 共17页
关于单片机论文Word格式.doc_第16页
第16页 / 共17页
关于单片机论文Word格式.doc_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

关于单片机论文Word格式.doc

《关于单片机论文Word格式.doc》由会员分享,可在线阅读,更多相关《关于单片机论文Word格式.doc(17页珍藏版)》请在冰点文库上搜索。

关于单片机论文Word格式.doc

序号

设计内容

所用时间

1

布置任务及调研

4天

3

制作与调试

8天

4

撰写设计报告书

2天

合计

14天

4.主要参考资料

单片机课程设计指导书 皮大能 北京理工大学出版社 2012.7

8051单片机实践与应用 吴金戎 清华大学出版社 2003.8

单片机技术基础教程与实践夏路易 电子工业出版社  2008.1

单片机原理及应用 张毅刚高等教育出版社2012.11

基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社

2007.7

指导老师签字:

日期:

目录

一、 整体设计思路框图及原理图…………………………5

二、 模块分析………………………………………………5

1.AT89C51单片机……….…………………………..………6

2.A/D转换……………….…………………………..……….7

3.显示电路…………………………………..……………7

三、 软件设计………………………………………………5

四、程序清单……………………………………………6

五、 仿真实验调试…………………………………………12

六、 总结与体会…………………………………………13

七、 参考文献………………………………………………14

一、整体设计思路框图及原理图

数字电压表的设计即将连续的模拟电压信号经过A/D转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。

按系统实现要求,决定控制系统采用AT89C51单片机,A/D转换由于仿真软件里的ADC0809元件有问题,这里用ADC0808代替,它和ADC0809区别很小。

采用ADC0808。

数字电压表系统整体框图如下图1所示。

模拟电压

AT89C51

ADC0808

转换

数据显示

图1整体框图

系统通过软件设置单片机的内部定时器T1产生中断信号。

通过片选选择8路通道中的一路,将该路电压送入ADC0808的EOC端口产生高电平,同时将ADC0808的OE端口置为高电平,单片机将转换后结果存到片内RAM。

系统调出转换显示程序,将转换为二进制的数据在转换成十进制数并输出到LCD显示电路,将相应电压显示出来。

原理图见附录图7。

二、模块分析

1.AT89C51单片机

接口分配电路设计如右图2所示:

图2单片机接口电路

P0口:

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

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

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

在这里P0口作为输入与输出分别与ADC0808的输出端和LCD显示的输入端相连,且P0外部被阻值为1KΏ的电阻拉高。

P2口:

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

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

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

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

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

这里只用到了P2.0~P2.3四个端口,其中P2.1~P2.3都是作为输出端口控制显示电路的寄存器选择、读写信号和使能端口。

P3口:

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

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

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

P3口也可作为AT89C51的一些特殊功能口,在这里用到了P3.3/INT1(外部中断1)、P3.6/WR(外部数据存储器写选通)、P3.7/RD(外部数据存储器读选通)。

2.A/D转换

图3A/D转换电路

接口分配电路设计如图3所示:

  IN0~IN7为8路模拟量输入端,这里只接一路电压信号,其输入信号是由直流电源及可调电阻提供。

  OUT1~OUT8为8位二进制数字量输出端,其另一端连接到AT89C51单片机进行数值转换。

  ADDA、ADDB、ADDC为3位片选地址输入线,用于选通8路模拟输入中的一路。

  ALE为地址锁存允许信号,由单片机P3.6口写信号与P2.0口相或取反输入,高电平有效。

  START为A/D转换启动脉冲输入端,由单片机P3.6口写信号与P2.0口相或取反输入一个正脉冲使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。

  EOC为A/D转换结束信号,当A/D转换结束时,此端输出一个高电平取反给P3.3口(转换期间一直为低电平)。

  OE为数据输出允许信号,高电平有效。

当A/D转换结束时,此端由单片机P3.7读信号与P2.0口相或后取反输入一个高电平,才能打开输出三态门,输出数字量。

  

3.显示电路 

图4显示电路

接口分配设计如图4所示:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

由单片机P2.1口控制

R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电

平R/W为低电平时可以写入数据。

由单片机P2.2口控制

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

由单片机P2.3口控制

D0~D7为8位双向数据线。

由单片机P0口输入,经过阻值为1KΏ的上拉电阻连接。

图5程序流程图

三、软件设计

主程序的内容包括:

起始

地址、中断服务程序的起始地

址、有关内存单元及相关部件的

初始化和一些子程序的调用等。

根据设计要求,设计出如图5所

示的主程序流程图

A/D转换子程序设计:

A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。

当系统置好后,单片机扫描转换结束管脚P3.7的输入电平状态,当输入为高电平则转换完成,将转换的数值显示输出。

若输入为低电平,则继续扫描。

程序流程图如图6所示。

图6A/D转换子程序流程图

四、程序清单

COMEQU50H;

指令寄存器

DATEQU51H;

数据寄存器

RSEQUP2.1;

LCD寄存器选择信号

RWEQUP2.2;

LCD读/写选择信号

EEQUP2.3;

LCD使能信号

ORG0000H

LJMPMAIN;

主程序入口

ORG000BH

LJMPBT0;

T0中断入口

ORG0030H;

主程序,初始化

MAIN:

MOVSP,#60H

LCALLINT

MOV30H,#30H

MOV31H,#30H

MOV32H,#0A5H

MOV33H,#30H

MOV34H,#30H

MOVR7,#30H

LCALLN1;

显示Voltage=00.00

MOVTMOD,#00H;

定时器T0设为方式0

MOVTH0,#00h;

装入定时常数

MOVTL0,#00h

SETBTR0;

启动T0

MOV24h,#03h;

装入T0中断次数

MOVIE,#82H;

开中断

LP:

MOVR7,#30H;

显示缓冲区首地址

LCALLDISPLY

SJMPLP;

循环显示

DISPLY:

MOVCOM,#0CAH;

设置数据起始地址(第而行第10位)

LCALLPR1

MOVR1,#05H

MOVR0,#30H

l:

MOVDAT,@r0

LCALLPR2

INCR0

DJNZR1,l

RET

;

1.逐字依次输入方式演示程序段

N1:

MOVCOM,#01H;

清屏

LCALLPR1

MOVCOM,#06H;

设置输入方式

MOVCOM,#081H;

设置数据起始地址(第一行地二位)

MOVDPTR,#TAB1

MOVR2,#0EH

MOVR3,#00H

WRIN1:

MOVA,R3

MOVCA,@A+DPTR

MOVDAT,A

INCR3

DJNZR2,WRIN1

MOVCOM,#0C1H;

设置数据起始地址(第二行地二位)

MOVDPTR,#TAB2

MOVR2,#9

WRIN2:

DJNZR2,WRIN2

TAB1:

DB"

VOLTAGE="

LCD间接控制方式下的初始化子程序

INT:

LCALLDELAY;

调延时子程序

MOVCOM,#38H;

设置工作方式(2行,8位数据)

LCALLPR1

MOVCOM,#01H;

清屏

MOVCOM,#06H;

设置输入方式

MOVCOM,#0CH;

设置显示方式

RET

DELAY:

MOVR6,#0FH;

延时子程序

MOVR7,#00H

DELAY1:

NOP

NOP

DJNZR7,DELAY1

DJNZR6,DELAY1

LCD间接控制方式的驱动子程序如下

1读BF和AC值

PR0:

PUSHACC

MOVP0,#0FFH;

P0置位,准备读

CLRRS;

RS=0

SETBRW;

R/W=1

SETBE;

E=1

LCALLDELAY

MOVCOM,P0;

读BF和AC6-4值

CLRE;

E=0

POPACC

RET

2写指令代码子程序

PR1:

CLRRS;

SETBRW;

PR11:

MOVP0,#0FFH;

NOP

MOVA,P0

CLRE

JBACC.7,PR11;

BF=1?

CLRRW;

R/W=0

MOVP0,COM

E=0;

3写显示数据子程序

PR2:

PUSHACC

CLRRS;

SETBRW;

PR21:

MOVP0,#0FFH

SETBE;

LCALLDELAY

MOVA,P0;

CLRE;

JBACC.7,PR21

SETBRS

CLRRW

MOVP0,DAT;

写入数据

SETBE

CLRE

POPACC

RET

4读显示数据子程序

PR3:

PR31:

MOVP0,#0FFH;

JBACC.7,PR31

MOVP0,#0FFH;

读数据

MOVDAT,P0

定时器T0中断服务程序,读取ADC0809第0通道的A/D转换结果并化为显示值

BT0:

PUSHACC;

保护现场

PUSHPSW

MOVPSW,#08H

CLRTR0;

停止T0

MOVTH0,#00h;

重装定时常数

MOVTL0,#00h

MOVDPTR,#0F6FFH;

0809端口地址

MOVA,#0;

0通道

MOVX@DPTR,A;

启动0809

MOVR7,#0FFH;

等待A/D转换完

DJNZR7,$

MOVXA,@DPTR;

读0809转换结果

MOVB,#03H;

将转换的值除以3再累加,存入40H中

DIVAB

ADDA,40H

MOV40H,A

MOVA,B;

;

将除以3后的余数累加放入41H中

ADDA,41H

MOV41H,A

DEC24h;

3次中断未到则返回

MOVA,24H

JNZRNT1

MOV24h,#03h;

重装中断次数

MOVA,41H;

将累加的余数再除3后相加

DIVAB

MOV40H,#0;

清零累加数

MOV41H,#0

RTN:

MOVB,#0fh;

A/D转换结果化为显示值

MULAB;

(AD*5)/256

MOV@R0,A

MOVA,B

MOVB,@R0

MOVR0,A

ADDA,#246

MOVA,R0

MOV30H,#00H

JNCLOOP

ADDA,#06H

MOV30H,#01H

LOOP:

MOV31H,A;

AD*5的高字节为整数部分

MOVB,#0AH

AD*5的低字节为/256的结果,为小数部分

MOV33H,B;

二进制小数换为10进制数

MULAB

MOV34H,B

LJMPRTN1

RTN1:

SETBTR0

ORL30H,#30H

ORL31H,#30H

MOV32H,#0A5H;

小数点

ORL33H,#30H

ORL34H,#30H

POPPSW

POPACC

RETI

END

五、仿真实验调试

1.打开WAVE6000软件,菜单栏选择“文件”中的“新建文件”,在弹出的窗口中编写程序,然后保存后缀为“***.asm”的程序。

2.菜单栏选择“项目”中的“编译”,如果程序无误即编译成功,否则修改程序直至编译成功。

3.打开Proteus软件,新建文件File→NewDesign,同样在弹出的原理图编辑窗口中绘制原理图,然后保存。

4.加载程序,选择Source→Add/RemoveSourceFiles,在弹出的对话框中点击“New”选择在WAVE6000软件中编写保存的程序如“***.asm”,点击“OK”即加载成功。

5.在Proteus软件中的左下方点击图标仿真调试开始,即可看到仿真调试的结果。

六、总结与体会

这虽然是一个数字电压表的设计但是实际上就是一个数据采集的程序设计,只不过这里数据采集的是模拟电压罢了。

虽然这个单片机的课题比较简单,但是从中我还是学到了许多新东西。

在之前的学习过程中没有用到Proteus这个软件,所以刚刚开始的时候一边在百度里看Proteus入门教程一边实践操作Proteus这个软件,不过幸好以前学过Protell99绘图软件,举一反三的在短时间内把Proteus磕磕碰碰学会了。

想想我们在大学里速学软件还是比较有心得:

在一两天内只学这个软件,或许还算不上熟练但是入门还是可以了。

在Proteus软件部分的设计中也让我感受良多。

以前做的单片机的设计都只是写写程序,下载到单片机上运行,都只是编程方面的工作,很少涉及选择单片机试验台上已有芯片以外的芯片,更不用说芯片的一些管脚作用。

就像A/D转换器在Proteus中仿真软件ADC0809有问题所以用ADC0808代替。

而且ADC0808是单极性,输入电压范围为0~+5V,而我们课题要求的是0~+15V,所以我利用参考电压可以达到15V这一点把0~+15V转化成0~5V,进行模数转换。

在局部电路图中遇到很多问题,通过查阅大量资料以及老师和同学的帮助讲解才逐渐懂得如何应用。

如在Proteus软件中仿真选用了最常用的直流电压电源和可调电阻组成0~+15V的模拟电压,而在试验台上可以直接连接可调电压源。

这种方法是平时很少注意到的基础性知识运用,在这次的课程设计中让我又有了新的收获。

总的来说结果还是完成了设计任务,虽然整个过程有点不在状态,但还是温故而知新,对单片机有了一种新的认识。

建立组织,明确分工为保证活动成功开展,班级设多个工作小组,由文艺委员刘亚宁同学负责,明确任务,紧紧围绕迎新年这个中心,积极开展工作。

各小组成员全力以赴,保证在预定的时间内完成各项任务,为文艺演出做好充分的准备17

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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