基于单片机的进制换算毕业论文.docx

上传人:b****6 文档编号:13683834 上传时间:2023-06-16 格式:DOCX 页数:41 大小:955.41KB
下载 相关 举报
基于单片机的进制换算毕业论文.docx_第1页
第1页 / 共41页
基于单片机的进制换算毕业论文.docx_第2页
第2页 / 共41页
基于单片机的进制换算毕业论文.docx_第3页
第3页 / 共41页
基于单片机的进制换算毕业论文.docx_第4页
第4页 / 共41页
基于单片机的进制换算毕业论文.docx_第5页
第5页 / 共41页
基于单片机的进制换算毕业论文.docx_第6页
第6页 / 共41页
基于单片机的进制换算毕业论文.docx_第7页
第7页 / 共41页
基于单片机的进制换算毕业论文.docx_第8页
第8页 / 共41页
基于单片机的进制换算毕业论文.docx_第9页
第9页 / 共41页
基于单片机的进制换算毕业论文.docx_第10页
第10页 / 共41页
基于单片机的进制换算毕业论文.docx_第11页
第11页 / 共41页
基于单片机的进制换算毕业论文.docx_第12页
第12页 / 共41页
基于单片机的进制换算毕业论文.docx_第13页
第13页 / 共41页
基于单片机的进制换算毕业论文.docx_第14页
第14页 / 共41页
基于单片机的进制换算毕业论文.docx_第15页
第15页 / 共41页
基于单片机的进制换算毕业论文.docx_第16页
第16页 / 共41页
基于单片机的进制换算毕业论文.docx_第17页
第17页 / 共41页
基于单片机的进制换算毕业论文.docx_第18页
第18页 / 共41页
基于单片机的进制换算毕业论文.docx_第19页
第19页 / 共41页
基于单片机的进制换算毕业论文.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的进制换算毕业论文.docx

《基于单片机的进制换算毕业论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的进制换算毕业论文.docx(41页珍藏版)》请在冰点文库上搜索。

基于单片机的进制换算毕业论文.docx

基于单片机的进制换算毕业论文

基于单片机的进制换算毕业论文

摘要1

绪论2

课题背景2

课题意义2

程序扩展2

本章小节2

第一章系统功能及操作3

1.1系统功能的确定3

1.2基本功能9

1.3本章小结10

第二章系统模块介绍11

2.1主控模块11

2.2引脚说明11

2.3主控模块设计13

2.3.1电源电路模块设计13

2.3.2时钟电路模块设计14

2.3.3复位电路模块设计14

2.4LCD显示模块15

2.5按键模块17

第三章系统硬件设计—实验板介绍18

3.1硬件总图18

3.2主控硬件模块19

3.3按键硬件模块化20

3.4LCD显示硬件模块化21

3.5本章小结21

第四章系统软件设计22

4.1数据单元分配22

4.2主程序设计流程图24

4.3程序说明25

4.3.1包含数据库25

4.3.2程序初始化25

4.3.3字符串显示25

4.3.4实现计算设定25

4.4本章小结26

第五章系统调试27

5.1硬件调试27

5.2软件调试28

5.3本章小结28

结束语29

致谢30

附录:

程序清单31

参考文献37

 

摘要

本次设计是基于单片机的进制换算,在设计中需要进行进制间的转换。

所需要MCS-51单片机、LCD1602型液晶显示。

在此设计中主控模块我们选要的是AT89S52芯片。

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

设计当中显示采用LCD液晶显示,其特点是:

1、显示质量高2、没有电磁辐射3、可视面积大4、应用围广5、画面效果好6、数字式接口7、“身材”匀称小巧8、功率消耗小等。

点阵字符型LCD是专门用于显示数字、字母、图形符号及少量自定义符号的液晶显示器。

这类显示器把LCD控制器、点阵驱动器、字符存储器、显示体及少量的阻容元件等集成为一个液晶显示模块。

鉴于字符型液晶显示模块目前在国际上已经规化,其电特性及接口特性是统一的。

所以在本设计中采用AT89S52主控、LCD1602显示。

不仅功能能实现而且经济实惠。

关键词:

单片机AT89S52进制换算LCD液晶显示

绪论

课题背景

本文讨论的单片机多功能时钟系统的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能多等特点。

不仅能满足所需要求而且还有很多功能可供扩展,有着广泛的应用领域。

本课题是基于单片机的进制间换算,进制间换算比较复杂,有时需要快速计算二,八,十,十六之间的转换。

为了转换快速所以专门制作了一种计算器。

专门计算进制间的相互换算。

当输入相应的进制数是能够转换成自己想要的进制数。

是一种快捷方便的设计。

课题意义

通过用单片机最小系统开发一种进制见换算计算器,能够以按键输入0~9(十进制),0~G(十六进制)0~7(八进制),0~1(二进制)。

学习了我们所学的按键扫描和LCD扫描。

通过单片机中的程序计算进制间的换算,计算结果通过LCD显示出来。

实际意义是一种新型计算机,快速计算进制间的换算。

在此设计中不仅得到进制换算的一种工具,同时通过亲自焊接最小系统,得到了完全的最小系统。

并且能够完成程序的实现,在此也是件非常值得高兴之事。

程序扩展

在本程序中只涉及到了十进制转二进制、八进制、十六进制。

在以后的运行中可以开发成进制相互转换,包括二转八、二转十、二转十六、八转二、八转十、八转十六等。

同样以AT89S52型开发,通过修改程序,增加硬件上的按键,增加接线口等。

既可以完成设计的扩展。

本章小节

本章主要介绍了课题背景、设计任务和课题意义,对单片机的优点及结构作了简要叙述,也对本系统的应用及概况进行了说明。

 

第一章系统功能及操作

1.1系统功能的确定

进制间的转换:

1.十----->二

  一个十进制,比如:

6,将它转换成二进制数。

十进制数转换成二进制数,是连续除2的过程:

把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。

最后将所有余数倒序排列,得到数就是转换结果。

  比如要转换6为二进制数。

“把要转换的数,除以2,得到商和余数”。

  那么:

  

图1-1十转二示意图

要转换的数是6,6÷2,得到商是3,余数是0。

“将商继续除以2,直到商为0……”现在商是3,不是0,所以继续除以2。

那就:

3÷2,得到商是1,余数是1。

“将商继续除以2,直到商为0……”现在商是1,不是0,所以继续除以2。

那就:

1÷2,得到商是0,余数是1“将商继续除以2,直到商为0……最后将所有余数倒序排列”。

现在商已经是0。

三次计算依次得到余数分别是:

0、1、1,将所有余数倒序排列,就是:

110。

6转换成二进制,结果是110。

表1转换方式

被除数

计算过程

余数

6

6/2

3

0

3

3/2

1

1

1

1/2

0

1

  (在计算机中,÷用/来表示)

2.二---->十

  二进制数转换为十进制数:

二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……所以,设有一个二进制数:

01100100,转换为10进制为:

  下面是竖式:

  01100100换算成十进制

  "^"为次方

  第0位0*2^0=0

  第1位0*2^1=0

  第2位1*2^2=4

  第3位0*2^3=0

  第4位0*2^4=0

  第5位1*2^5=32

  第6位1*2^6=64

  第7位0*2^7=0+

  公式:

第N位10^(N-1)

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

  100

  用横式计算为:

  0*2^0+0*2^1+1*2^2+0*2^3+0*2^4+1*2^5+1*2^6+0*2^7=100

  0乘以多少都是0,所以我们也可以直接跳过值为0的位:

  1*2^2+1*2^5+1*2^6=100

3.十---->八

  10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:

除数由2变成8。

  将十进制数120转换成八进制数:

用表格表1示:

表2转换方式

被除数

计算过程

余数

120

120/8

15

0

15

15/8

1

7

1

1/8

0

1

  120转换为8进制,结果为:

170。

4.八---->十

  八进制就是逢8进1。

八进制数采用0~7这八数来表达一个数。

  八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……所以,设有一个八进制数:

1507,转换为十进制为:

  用竖式表示:

  1507换算成十进制。

  第0位7*8^0=7

  第1位0*8^1=0

  第2位5*8^2=320

  第3位1*8^3=512

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

  839

  同样,也可以用横式直接计算:

7*8^0+0*8^1+5*8^2+1*8^3=839

  结果是,八进制数1507转换成十进制数为839

5.十---->十六

10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:

除数由2变成16。

同样是120,转换成16进制则为,如表2:

表3转换方式

被除数

计算过程

余数

120

120/16

7

8

7

7/16

0

7

  120转换为16进制,结果为:

78。

6.十六---->十

  16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。

字母不区分大小写。

  十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……

  所以,在第N(N从0开始)位上,如果是是数X(X大于等于0,并且X小于等于15,即:

F)表示的大小为X*16的N次方。

  假设有一个十六进数2AF5,那么如何换算成10进制呢?

  用竖式计算:

  2AF5换算成10进制:

  第0位:

5*16^0=5

  第1位:

F*16^1=240

  第2位:

A*16^2=2560

  第3位:

2*16^3=8192+

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

  10997

  直接计算就是:

5*16^0+F*16^1+A*16^2+2*16^3=10997

  (在上面的计算中,A表示10,而F表示15)

  现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。

十进数1234可以给这么一个算式:

1234=1*10^3+2*10^2+3*10^1+4*10^0

7.二---->八

  (11001.101)

(二)

  整数部分:

从后往前每三位一组,缺位处用0填补,然后按十进制方法进行转化,则有:

  001=1

  011=3

  然后将结果按从下往上的顺序书写就是:

31,那么这个31就是二进制11001的八进制形式

  小数部分:

从前往后每三位一组,缺位处用0填补,然后按十进制方法进行转化,则有:

101=5

  然后将结果部分按从上往下的顺序书写就是:

5,那么这个5就是二进制0.101的八进制形式所以:

(11001.101)

(二)=(31.5)(八)

8.八---->二

  (31.5)(八)

  整数部分:

从后往前每一位按十进制转化方式转化为三位二进制数,缺位处用0补充则有:

  1---->1---->001

  3---->11

  然后将结果按从下往上的顺序书写就是:

11001,那么这个11001就是八进制31的二进制形式,小数部分:

从前往后每一位按十进制转化方式转化为三位二进制数,缺位处用0补充则有:

  5---->101

  然后将结果按从下往上的顺序书写就是:

101,那么这个101就是八进制5的二进制形式

  所以:

(31.5)(八)=(11001.101)

(二)

9.十六---->二;二---->十六

  二进制和十六进制的互相转换。

直接就能转换为十六进制数,反之亦然。

  首先一个二进制数:

如:

1111,

  计算:

1*2^0+1*2^1+1*2^2+1*2^3=1*1+1*2+1*4+1*8=15。

由于1111才4位,所以必须直接记住它每一位的权值,并且是从高位往低位记,:

8、4、2、1。

即,最高位的权值为2^3=8,然后依次是2^2=4,2^1=2,2^0=1。

对于任意一个4位的二进制数,都可以很快算出它对应的10进制值。

  下列列出四位二进制数xxxx所有可能的值

  仅4位的2进制数快速计算方法十进制值十六进值

  1111=8+4+2+1=15F

  1110=8+4+2+0=14E

  1101=8+4+0+1=13D

  1100=8+4+0+0=12C

  1011=8+0+2+1=11B

  1010=8+0+2+0=10A

  1001=8+0+0+1=99

  ....

  0001=0+0+0+1=11

  0000=0+0+0+0=00

  二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。

  如(上行为二制数,下面为对应的十六进制):

  11111101,10100101,10011011

  FD,A5,9B

  反过来,当看到FD时,如何迅速将它转换为二进制数,先转换F:

F,需知道是15,然后15用8421凑,应该是8+4+2+1,所以四位全为1:

1111。

接着转换D:

看到D,知道它是13,13用8421凑,应该是:

8+4+1,即:

1101。

所以,FD转换为二进制数,为:

11111101

由于十六进制转换成二进制相当直接,所以,需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制。

比如,十进制数1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。

所以可以先除以16,得到16进制数。

如表4:

表4转换方式

被除数

计算过程

余数

1234

1234/16

77

2

77

77/16

4

13(D)

4

4/16

0

4

结果16进制为:

0x4D2

  然后可直接写出0x4D2的二进制形式:

010011010010。

其中对映关系为:

  0100--4

  1101--D

  0010--2

  同样,如果一个二进制数很长,需要将它转换成10进制数时,除了前面学过的方法是,还可以先将这个二进制转换成16进制,然后再转换为10进制。

  下面举例一个int类型的二进制数:

01101101111001011010111100011011

按四位一组转换为16进制:

6DE5AF1B。

再转换为10进制:

6*16^7+D*16^6+E*16^5+5*16^4+A*16^3+F*16^2+1*16^1+B*16^0=1,843,769,115

1.2基本功能

在本设计中能够实现按键输入、软件的数据处理、输出显示的基本功能。

1、按键输入:

在硬件中有案件模块。

上面有4*4的按键矩阵。

输入的数据包括0~9数字、确认、取消等键功能。

当按下相应的数字或功能键时,信号会传入单片机,单片机会做出相应的反应。

再由显示屏显示出结果。

2、数据处理:

通过按键的输入,数据传入芯片。

芯片会按照输入的程序运行方式处理数据。

最后将计算结果输出给显示屏。

3、输出显示:

通过按键的输入软件的处理。

会将输入的数字或者软件计算的数据按照规定的方式显示在相应的位置。

下图为系统结构图:

 

图1-2系统结构框图

4、操作说明:

当按下SB1~SB10中的键就输入相应的数字,在LCD上也会显示相应的数。

当需转换进制时先决定你输入的数是那种类型,在此只涉及到了十进制转换成二进制、十六进制。

开发方向可以向二进制转换成十进制、八进制、十六进制。

八进制转换成二进制、十进制、十六进制。

现在只需输入相应的十进制数。

数字输入完后,按下转换的“确认”键。

则输入的十进制就转换成二进制和八进制。

1.3本章小结

本章主要介绍了本次设计的方向,以及确定转换方式和转换流程。

同时也叙述了操作方式和得出的结果。

 

第二章系统模块介绍

2.1主控模块

在本次设计中使用AT89S52芯片:

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

图2-1AT89S52芯片以及引脚结构图

2.2引脚说明

MCS单片机都采用40引脚的双列直插封装方式。

如图为引脚排列图,图中引脚可以分为以下四类:

电源类引脚2个、时钟类引脚2个、并行I/O类引脚32个、控制类引脚4个。

电源类引脚:

1Vss20号引脚Vss为电源接地端。

②Vcc40号引脚Vcc是芯片电源的输入端,接+5V电源。

时钟类引脚:

①XTAL1部振荡电路反相放大器的输入端,是外接晶体的一个引脚。

当采用外部振荡器时,此引脚接地。

②XTAL2部振荡电路反相放大器的输出端,是外接晶体的另一端。

当采用外部振荡器时,此引脚接外部振荡源。

控制类引脚:

①RST/VPD当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位。

②ALE正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器。

③PSEN外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,在每个机器周期两次有效。

同样可以驱动八LSTTL输入。

④/Vpp为部程序存储器和外部程序存储器的选择端。

当/Vpp为

高电平时,访问部程序存储器;当/Vpp为低电平时,则访问外部程序存储器。

并行I/O类引脚:

①P0口(P0.0-P0.7)

P0口(P0.0-P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。

②P1口(P1.0-P1.7)

P1口(P1.0-P1.7)是一个带有部提升电阻的8位准双向I/O口。

能驱动(吸收或输出电流)四个LSTTL负载。

③P2口(P2.0-P2.7)

P2口(P2.0-P2.7)是一个带有部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。

P2口可以驱动(吸收或输出电流)四个LSTTL负载。

④P3口(P3.0-P3.7)

P3口(P3.0-P3.7)是一个带有部提升电阻的8位准双向I/O口。

2.3主控模块设计

电源、时钟信号以及复位电路是单片机工作的基本条件,缺一不可。

单片机基本系统——包括:

电源电路、时钟电路、复位电路。

图2-2主控电路

2.3.1电源电路模块设计

电源模块:

提供+5V电源,系统板为从USB接口获取+5V电源,只要用相应配套的USB线从电脑主机获取+5V直流电源。

2.3.2时钟电路模块设计

单片机的时钟信号用来为单片机芯片部各种微操作提供时间基准。

MCS-51的时钟信号产生方式:

①部时钟方式,利用芯片部的振荡电路;

②外部时钟方式。

图2-3时钟电路

由于AT89S52单片机芯片有时钟振荡电路,因此本项目中采用部时钟方式。

只要在单片机的XTAL1和XTAL2引脚外接石英晶体和微调电容,就构成了自激振荡器并在单片机部产生时钟脉冲信号,具体电路设计如图所示。

图中电容C1和C2的作用是稳定频率和快速起振,电容置在5~30pF,在此选择30pF;晶振X1的振荡频率围在1.2~12MHz间选择,本项目中选择12MHz。

时钟电路为单片机产生时钟脉冲序列,作为单片机工作的时间基准,典型的晶体振荡频率为12MHz。

2.3.3复位电路模块设计

图2-4复位电路

复位电路使单片机或系统中的其他部件处于某种确定的状态。

当在51单片机的RST引脚引入高电平并保持2个机器周期,单片机部就执行复位操作。

复位操作基本形式:

1上电复位;

②另一种是按键复位。

2.4LCD显示模块

 

图2-5LCD引脚图

LCD1602型液晶显示的外部接口信号有16条,与AT89S52芯片的接口有8条数据线DB0~DB7、3条控制线RS、RW、E,见表5:

表5LCD液晶引脚功能表

引脚

符号

状态

功能

1

Vss

电源地

2

Vcc

电源正极接5V

3

Vl

液晶显示偏压

4

RS

输入

寄存器选择,为1时数据寄存器,为0时指令寄存器

5

RW

输入

R\W为读写,为1时为读操作为0时为写操作

6

E

输入

使能信号

7

DB0

三态

数据总线

8

DB1

三态

数据总线

9

DB2

三态

数据总线

10

DB3

三态

数据总线

11

DB4

三态

数据总线

12

DB5

三态

数据总线

13

DB6

三态

数据总线

14

DB7

三态

数据总线

15

A

背光源正

16

K

背光源负

 

1602LCD显示模块可以与AT89S52单片机直接接口,1602LCD的8位双向数据线D0—D7连接P0口的P0.0—P0.7,1602LCD使能信号E连接P2口线的P2.2;1602LCD读/写选择信号R/W连接P2口线的P2.1,当P2.1=0为写数据信号,当P2.1=1为读数据信号;1602LCD数据/命令选择信号RS连接P2口线的P2.0,当P2.0=0为命令信号;当P2.0=1为数据信号;1602LCD的VCC引脚接+5电源,引脚GND接地。

见图2-6:

图2-6LCD显示模块与单片机的接口电路原理图

 

2.5按键模块

AT89S52单片机的P1口用作键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线接到P1口的高4位。

列线P1.0—P1.3分别接有4个上拉电阻到正电源+5V,并把列线P1.0—P1.3设置为输入线,行线P1.4—P1.7设置为输出线。

4根行线和4根列线形成16个相交点。

见图2-7:

图2-7键盘模块与单片机的接口电路原理图

列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入端。

这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。

行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

图2-8系统整体原理图

2.6本章小结

本章主要介绍了主控模块、按键模块、显示模块和复位电路、时钟电路。

同时也说明了各个模块的引脚的连接方法和引脚说明。

第三章系统硬件设计—实验板介绍

3.1硬件总图

 

图3-1硬件总图

通过焊接得到如图的硬件图,按键是4*4键阵,LCD为1602A型

3.2主控硬件模块

图3-2主控硬件

 

主控模块包括时钟电路、复位电路、滤波电路、按键插排、LCD插排等。

 

3.3按键硬件模块化

图3-3按键实物图

本电路采用4输入与门用于产生键盘中断,其输

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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