基于单片机的多功能计算器的设计与实现--毕业论文内容摘要:
ALE/PROG( 30 脚) : 地址锁存允许信号端。 需要访问外部存储器时 , ALE 在每个周期输出两次信号 用于锁存 P0 发送的低 8 位地址数据。 在不 需要 访问外部存储器时, ALE产生的同样频率的正脉冲信号,可以作为对外输出的时钟或是用于定时。 成都理工大学 2020 届学士学位论文(设计) 8 PSEN( 29 脚) : 外部程序存储器读取信号 端口, 引脚 低电平时有效。 当单片机从 外部 读取程序存储器时, PSEN 的信号在每个周期内两次有效,读取数据存储器时 PSEN 信号不会出现。 EA/VPP( 31 脚) : EA 用于读取外部程序存储器的控制信号,低电平时有效。 当 EA为高电平时,单片机只会读取单片机内部的程序存储器,当程序超过该范围时,单片机会自动跳转去执行外部程序存储器的程序 [3]。 矩阵键盘 模块 时钟的 校正和计算器 数值 、运算符的输入需要用到很多的按键,因此若是采用独立按键来编程, 虽然 程序 的 编写会变得 相对简单,但是 单片机的 I/O 口会被过多的占用 ,因此 在本次设计中系统的输入功能使用 矩阵键盘来实现。 矩阵键盘是由行线和列线交叉组成的,并在每一个交叉点上设置一个按键。 本设计只是实现简单的四则运算,所以 4 4的矩阵键盘 就能够满足设计较要求。 在实际电路的设计中为了有效地提高单片机 I/O的利用率,往往都会采用这种行列式的矩阵键盘。 图 32 矩阵键盘 蜂鸣器 蜂鸣器是一种一体化结构的电子讯响器 ,分为电磁式 蜂 鸣器和电压式 蜂鸣器两种类型 ,电路设计中 用字母“ H”或“ HA” 表示,它 采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、 电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 成都理工大学 2020 届学士学位论文(设计) 9 图 33 蜂鸣器 LCD 显示 模块 1602 点阵型 液晶 作为 一种 显示 液晶模块 ,能够 分两行显示 32 个 字符 (即 16 2=32) ,因此 通常 被使用者 简称为 1602 液晶。 它 可以 用来显示 一些简单的 数字、字母、符号,但每个点阵都只能显示一个字符。 1602 液晶的每个 点阵之间存在一定的间隔,因此 它不能 够 用来 显示图片 [4]。 图 34 1602液晶 在 LCD1602 液晶模块中 , D0~D7 是液晶的 8 位 双向 数据输送口 , R/W 是液晶的 读写 功能 选择端口, 通过 VL 的调节可以 改变 1602 液晶的显示对比度; E 是液晶的 使能端口; RS 为 液晶的 功能 寄存器选择端口, 高电平时选择 的是 芯片内部的 数据寄存器,低电平时 选择 的是 芯片内部的 指令寄存器。 图 3 图 36 是 1602 液晶的读写操作 时序图,它 的 工作模式,如下: 图 35 1602液晶的写操作时序 成都理工大学 2020 届学士学位论文(设计) 10 当需要给 1602 写入指令 控制其工作方式 时:需要 先 把 1602 液晶的 寄存器选择端口(RS)设置为 低 电平, 读写选择端口 (R/W)设置为低电平,然后把数据从单片机发 送到 液晶的 数据口 D0~D7,最后给 液晶的 使能端 口 (E)一个高脉冲信号使数据输入内部芯片。 当需要 给 1602写入 所需 显示的数据时 :需要 先 把 1602液晶的 寄存器选择端口( RS)设置为高电平, 读写选择端口 (R/W)设置为低电平,然后 把 数据从单片机 发 送到 液晶的数据口 D0~D7,最后给 液晶的 使能端 口 (E)一个高脉冲信号使数据输入内部芯片。 此外,使用前还需对液晶进行初始化,对于是否使用背光灯、光标 是否闪烁 以及显示方式等进行设置。 图 36 1602液晶 的 读 操作 时序 DS18B20 温度 传感器 DS18B20 作为一款 应用 广泛 的温度传感器,它具有 体积小 ,温度测量范围广, 功耗低, 性能好 ,抗干扰能力强等优点。 它的 温度 测量 范围是 55~125℃,并且可以直接将测量的 温度转化成数字信号输出。 DS18B20 测量温度的 分辨率 为 9~12 位, 相较 于一般的 热电偶传感器来说 它 的 测量精度 可以达到 更高 [5]。 图 37 DS12B20 在温度测量过程中, 每 进行 一次 初始化检测 就可以从 DS18B20 中读取一次数据 ,成都理工大学 2020 届学士学位论文(设计) 11 在 这个过程中 , 需要总线至少保持 480us 的低电平来确保复位脉冲的发送成功 , 接着 释放总线, DS18B20 进入到 数据 接收状态。 单总线 的 DS18B20 需要 由 5K 上拉电阻 将其拉至 高电平, 当 传感器 探测到 单片机 I/O口输出的 上升沿 信号后 ,等待 15~60us, DS18B20会 发 出一个 60~240us 低电平信号的存在脉冲 信号。 图 38 DS18B20初始化 DS18B20 的 写时序 有 两种:写 1 时序和写 0 时序。 DS18B20 温度传感器总线控制器的逻辑 1 通过写 1 时序接收,逻辑 0 通过写 0 时序接收。 写时序的保持时间至少为60us,在每个写周期之间要存在至少 1us 的间隔时间。 当数据线被总线控制器从逻辑 1拉低为逻辑 0 时,写时序开始。 此时总线控制器会产生一个写时序,这时需要把数据线拉至 0,并且在写时序开始后保持 15~30us,然后释放总线。 总线被释放后, 5K 的上拉电阻会将其拉高。 如果总控制器需要产生一个写 0 时序,就需要把数据线拉低并持续60~120us。 当总线控制器完成初始化写时序后, DS18B20 会在 15~60us 内对数据线进行采样。 如果 数据 线上是高电平,就是写 1。 如果 数据 线上是低电平,就是写 0。 图 39 DS18B20工作时序图 成都理工大学 2020 届学士学位论文(设计) 12 DS12C887 时钟芯片 作为一款 能够自动产生 时间信息的 时钟芯片 DS12C887 ,其内部自带有锂电池, 在外部掉电的情况下,内部的时间信息仍然可以保持 10 年左右 的时间。 DS12C887 采用复用 总线 接口 ,工作电压为 +5V,工作温度 为 0℃ ~70℃, 时间的表示方法有 二进制数表示 和 BCD 码表示 两种。 DS12C887 自带的 128 字节的 RAM 中, 113 字节提供给用户使用 , 11 字节用于存储时间信息,剩余的 4 字节 用于存储芯片的控制信息。 图 310 DS12C887 复位电路 单片机 系统在启动 后都需要 通过 复位 电路 ,使 系统的外围器件 和 单片机的存储器 都恢复到初始状态,并从 头开始重新执行程序。 当 单片机 系统出现“死机”、“程序跑飞”等现象时, 按下复位键使 RST 引脚上加载至少持续两个机械周期的高电平, CPU 就能够响应并将系统复位 [6]。 图 311 复位电路 最常 采用的 复位 方法是在 RST 引脚 和 +5V 电源之间添加一个 用于复位的机械按键。 成都理工大学 2020 届学士学位论文(设计) 13 当 手动按下复位按键 时, 复位端 RST 就会被加载 +5V 的电压。 一般 情况下人为 按下 按键的时间在一百 毫秒 左右 ,因此,完全可以满足系统复位的时间要求。 晶振 电路 晶振 电路用于产生单片机工作所需的时钟控制信号,它被用作为 51 系列单片机内部各功能部件运行的基准,严格按照 时序一步一步地进行工作。 晶振的频率会直接影响单片机的运行速度,晶振电路的稳定性也直接影响单片机系统的稳定性。 单片机的晶振电路设计有采用内部晶振和外接晶振两种方式 [7]。 采用内部晶振方式,单片机内部的高增益反相放大器通过 XTAL XTAL2 外 接反馈元件的外部晶振与电容组成并联的谐振回路构成一个自激振荡器。 振荡器的频率主要取决于晶振的振荡频率。 51 系列的单片机晶振的振荡频率可以在 1~12MHz 的范围内选择,电容的选择范围是 15~45pF,电容的大小会直接影响大振荡器的稳定性和晶振的起振速度。 采用外部晶 振方式,外部的时钟信号通过 XTAL2 端直接接至内部时钟电路,这 时内部反相放大器的输入端( XTAL1 端)必须接地。 通常外接时钟信号为低于 12MHz 的方波信号 [8]。 图 312 晶振电路 成都理工大学 2020 届学士学位论文(设计) 14 第 4 章 软 件系统设计 总体设计 本系统的软件设计思想是采用大小循环嵌套的方式,大循环一直不停 的扫描按键,用以确定 功能键的选择 , 小循环用来实现具体的功能,功能 1 实现时钟显示,功能 2实现温度测量,功能 3 实现计算器的四则运算 , 并在 LCD 上显示各个功能的运行 结果。 系统总体框图如下: 图 41 系统总体框图 子程序设计 1602 液晶控制程序 1602 液晶上电以后,需要对 其 内部 芯片 进行 初始化后才能 进行操作。 在 初始化 时,应当参考芯片的时序图, 先 将命令写入芯片内部的寄存器设 置其工作方式及状态。 需要显示数据时,先要设置显示的坐标,然后发送显示的数据 , LCD 显示数据的更 新通过刷新 数据 来实现 [9]。 1602 液晶的 初始化、控制程序 (如图 42 所示) 和流程图 (如图 43所示 )。 矩阵按键 扫描程序 4 4 的 矩阵按键 采用的是 4 行 4 列的结构,每行每列都有一个 I/O 口与之对应,因此需要编写程序对每个 I/O 口进行 查询,当检测到 某个 按 键被按下时,就根据读到的 I/O口的总线数据进行确定是哪 一 列被按下,进而具体确定是哪个键被按 下,并返回该按键开始 初始化 功能选择 显示时钟 显示 温度 计算器 成都理工大学 2020 届学士学位论文(设计) 15 对应的值到主程序。 矩阵 按键 的扫描 流程 如图 44 所示 [10]。 图 42 显示控制程序 图 43 显示程序图 图 44 矩阵按键 的扫描流程图 开始 初始化 设置坐标 发送数据 显示 开始 赋初值 第 四 行按下 第三行按下 第二行按下 第一行按下 结束 判断哪一列被按确定哪个键被按否 否 否 否 成都理工大学 2020 届学士学位论文(设计) 16 DS18B20 控制程序 在对 DS18B20 操作之前 , 首先要对它的存在脉冲进行检测,然后 才能实现对器件的读 /写操作, 单片机将读取到的 DS18B20 数据处理后发送至 1602 液晶显示。 图 45 DS18B20控制流程图 单片机中断 系统 在程序执行过程中往往会有诸多突发 事件 需要单片机进行处理,这就使得单片机的中断功能就应运而生, 52 系列单片机有 3 种中断源触发方式, 如表 41 所示。 单片机执行 中断的顺序通过中断优先级来确定,如表 42 所示。 根据实际 的设计 需求 用户可以自行 设置 单片机的 中断优先级。 表 41 单片机 中断 使能的位描述 位 符号 描述 7 EA 总中断使能位 6 / / 5 ET2 定时器 2 中断使能 4 ES 串口中断使能 3 ET1 定时器 1 中断使能 2 EX1 外部中断 1 使能 1 ET0 定时器 0 中断使能 0 EX0 外部中断 0 使能 中断是在执行当前程序的过程中跳转去执行其他的临时任务,为了保证中断程序执初始化 存在脉冲检读 /写操作 处理数据 送显示 成都理工大学 2020 届学士学位论文(设计) 17 行完后能够回到中断出继续执行程序,就需要把原来的状态储存到相关寄存器中,当中断程序执行完后,在通过读取相关寄存器使单片机恢复到之前状态,此过程叫过现场恢复。 在本次设计中使用了仅使用了 1 个定时器中断,。基于单片机的多功能计算器的设计与实现--毕业论文
相关推荐
P 21P 39P 38P 37P 36P 35P 34P 33P 23V C C40P 32A L E30EA31P S E N29P 28P 27P 26P 25P 1P 2P 3P 4P 5P 6P 7P 8R S T9R X D10T X D11I N T 012I N T 113T014T115WR16GND20X T A L 218RD17X T A L 119A T 89C 51U
入 0,不能改变;R0、R1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时 R0、R1 置为缺省值:R0=1,R1=1(即12 位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。 配置寄存器与分辨率关系表 :R0 R1 温度计分辨率/bit 最大转换时间/us0 0 9 0 1 10 1 0 11 3751 1 12 750(2) 高速暂存存储器高速暂存存储器由 9
口。 N:为 0 时单行显示,为 1 时双行显示。 F:为 0 时显示 5 7 点阵,为1 时显示 5 10 点阵。 命令 7: CGRAM 地址设置,地址范围 00H~ 3FH(共 64 个单元,对应 8 个自定义字符)。 命令 8: DDRAM 地址设置,地址范围 00H~ 7FH。 命令 9:读忙 标志和计数器地址。 计数器地址范围 00H~ 7FH。 命令 10: 写 DDRAM 或
型应用电路: 13 图 37 MIC 录音电路 [2] 图 38 SPI 接口控制电路 [2] DF 无线收发模块 [5] 无线数据传输广泛地运用在车辆监控、 遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触 RF 智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、无线 232 数据通信、无线
中断向量的设计以及开中断、循环等待等工作。 另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。 然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。 2. 2 定时中断服务程序 在定时中断服务程序中,每 100 ms 产生一次中断,当产生 10 次中断的时候,也就到了 1 s,送数据到相应的显示缓冲单元
lash 存储单元,功能强大的微型计算机的 AT89S52 可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S52 具有如下特点: 40 个引脚, 8k Bytes Flash 片内程序存储器, 256 bytes的随机存取数据存储器( RAM), 32 个外部双向输入 /输出( I/O)口, 5 个中断优先级 2 层中断嵌套中断, 2个 16位可编程定时计数器