浙江海洋学院

设计题目 用8051+1601LCD设计的整型计算器

摘 要

当今时代,是一个新技术层出不穷的年代。单片机具有体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。单片机由运算器、控制器、存储器、输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。单片微型计算机简称单片机,是典型的嵌入式微控制器,常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

它所给人带来的方便不可否认,本设计是由单片机实现的模拟计算器它不仅能实现数据的加减乘除运算而且还能使数据及其计算结果在LCD管上显示出来能够实现0-256的数字四则运算。本设计是用单片机AT89C52来控制采用共阳极数码显示软件部分是由C语言来编写的。为了满足计算器的基本要求,可以基本的运算(加减乘除),数据归零和出错警告提示,我们采用基于单片机设计计算器,并用LCD 液晶显示数据,4*4 的矩阵键盘实现数据输入,程序语言我们使用c语言。

设计任务:利用键盘和数码管设计一个简单的数学计算器可以完成简单的如加减乘除的四则运算并将运算结果在数码管上显示出来。

关键词:加减乘除运算;单片机AT89C52;LCD 液晶显示;4*4 的矩阵键盘实现数据输入

目 录

1.引言5

2.方案论证与设计5

2.1 要求与内容5

2.2 设计方案5

3.硬件设计6

3.1 单片机最小系统6

3.2 LCD显示模块7

3.3 输入模块8

4. 软件设计9

4.1 输入程序流程图设计9

5. 实验结果与讨论11

5.1 仿真实验11

5.2 结果讨论14

6.心得体会14

7.附 录A; 源程序14

8.参考文献19

用8051+1601LCD设计的整型计算器

引 言

不同于通用计算机应用程序设计,单片机C语言程序设计必须针对具体的微控制器及外围电路来进行

方案设计

设计要求

用单片机AT89C51来控制采用共阳极数码显示软件部分是由C语言来编写的。为了满足计算器的基本要求,可以基本的运算(加减乘除),数据归零和出错警告提示,我们采用基于单片机设计计算器,并用LCD 液晶显示数据,4*4 的矩阵键盘实现数据输入,程序语言我们使用c语言。

设计方案

2.1.1 单片机芯片的选择

根据功能和指标要求,本系统选用MCS-51系列单片机AT89C51为主控机。通过扩展必要的外围接 口电路,实现对计算器的设计。计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。用七段数码管作为显示电路,矩阵键盘作为输入电路。模块图如下1.1。

图1.1

硬件设计

单片机最小系统

单片机最小系统选用AT89C52 提供以下标准功能:8字节FLASH闪速存储器,256字竹内部RAM , 32个I/O口线,3个16 位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。空闲方式停止CPU 的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.如图3.1

图3.1

3.2.LCD显示模块

1601采用标准的14脚接口,其管脚功能介绍如下:

1:VSS为电源地

2:VDD接5V电源正极

3:VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。

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

5:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

6:E(或EN)端为使能(enable)端。

7~14:D0~D7为8位双向数据。

具体看图3.2

图3.2

输入模块

计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式。为此,引入了矩阵键盘的应用,采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率

图3.3

软件设计

4.1输入程序流程图设计

该计算器系统的软件设计分为以下几个模块:(1)主程序模块,(2) 读键输入程序流程图,(3)显示程序 (4)计算程序。

(1)运算主程序设计

首先初始化参数,送LED低位显示“0”,高位不显示。然

rw1601可以用C语言写程序吗,用8051+1601LCD设计的整型计算器讲解.doc相关推荐

  1. c语言两数相除等于小数多少,c语言知识程序两数相除精确到小数点后k位.doc

    c语言知识程序两数相除精确到小数点后k位.doc -题目 输入两个整数m和n,及另一正整数k,计算m/n,结果精确到小数点后k位1.问题分析与方案设计.1.首先解决输入问题.题目要求输入三个整数m,n ...

  2. c语言中1B是多少,C语言1、C语言中,运算对象必须是整型的运算符是【】A./B-查字典问答网...

    C语言1.C语言中,运算对象必须是整型的运算符是[]A./B.%C.++D. 2.下列标识符中,不合法的是[] A.x2B.sizeofC._123D.char2 5.设d是double型变量,若要从 ...

  3. c语言中长整型变量的值一定大于短整型常量的值,c语言第3讲 常量、变量与标志符 整型、实型、字符型数据.ppt...

    c语言第3讲 常量.变量与标志符 整型.实型.字符型数据 第3讲 常量.变量与标志符 整型.实型.字符型数据 2.1-2.5 常量.变量与标识符 例2.1 符号常量的使用 2. 变量 3. 标识符 标 ...

  4. 用c语言写程序求序数的后缀,用C编写mex程序

    用C编写mex程序 大家都知道,matlab是一种解释型的编程环境,也就是说,跟以前的basic一样,是读 一句执行一句的.这样做可以很方便的实现编程过程中的交互,也免去了麻烦又耗时的 编译过程.但凡 ...

  5. c语言写程序思路考研题,快速解题 | 在考场C语言编程题

    原标题:快速解题 | 在考场C语言编程题 对于考<C语言程序设计>的小伙伴们来说,程序设计题是很多同学觉得相对较难的一个版块.其题目虽然不算多,但在考研150分的试卷中,却占据了较大的比重 ...

  6. 麻雀虽小,五脏俱全——由C语言小程序深入学习软件工程和设计开发规范

    苏思畅 - 原创作品转载请注明出处 - <软件工程(C编码实践篇)>MOOC课程 http://mooc.study.163.com/course/USTC-1000002006 一.课程 ...

  7. 【C语言】三种不同方法实现简易整型计算器 (三个方法递增优化)

    前言:在学习C语言一段时间后,相信我们都能用C语言写出简易的计算器小程序,然而一般方法都会使代码比较冗余,不够简便,代码可变性也会比较差 (见列一): 今天我就使用函数指针数组给大家带来实现起来代码比 ...

  8. C语言试题三十七之求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数。

    1. 题目 请编写一个函数function,它的功能是:求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中 ...

  9. C语言学习6:数据类型 -> 基本类型 -> 整型类型(int、short int、long int、char等)

    目录 1.数据类型的分类 2.基本整型 int 3.短整型 short int 4.长整型 long int 5.双长整型 long long int 6.字符型 char 7.布尔型 bool 1. ...

最新文章

  1. 调用父级方法_通信:找到任意组件实例的findComponents系列方法,5个终极方案
  2. hashmap转红黑树的阈值为8_面试必问的HashMap,一次彻底帮你搞定HashMap源码
  3. Python all函数 - Python零基础入门教程
  4. paylinks.php_毕业设计-基于PHP的网上购物网站系统设计
  5. etherum 常用命令及搭建私有链
  6. CV Code|计算机视觉开源周报20200502期
  7. 怎么进行软件需求分析
  8. Java归去来第3集:Eclipse中给动态模块升级
  9. linux 命令行域名的解析(DNS) —— dig、host
  10. 请说出三种减少页面加载时间的方法
  11. 电子统计台账:垂直流水账格式数据的导入
  12. 音视频开发之旅(41)-天空盒
  13. 毕设教程系列 - FCM模糊聚类算法
  14. 利用adsl拨号服务器VPS构建代理IP池
  15. 【易错点 学习笔记】Solidity语法constant/view/pure
  16. 追星女孩彩虹屁情话合集100条 ✔︎ (三)
  17. win10计算机还原点如何创建,win10系统创建还原点及系统还原的操作方法
  18. docker pull 流程
  19. Totem协议(SRP/RRP)讲解PPT
  20. Coredump:core与kernel的区别,以及coredump具体指什么?

热门文章

  1. mysql内置含糊_mySQL入门04 内置函数
  2. js微信监听返回_微信小程序(2)- 框架结构amp;运行环境
  3. 什么是spark的惰性计算?有什么优势?_spark——spark中常说RDD,究竟RDD是什么?
  4. 35岁中年博士失业,决定给找高校教职的后辈一些建议
  5. 答复审稿人的10条简易法则,你都学会了吗?
  6. 斯坦福华人教授:声波、光波,其实都是RNN!机器学习模型对应
  7. AI算法连载07:统计之支持向量机模型
  8. 假如把地球46亿年历史压缩到一天,竟然有这么多惊奇的发现!
  9. lex和yacc环境配置
  10. spring与junit整合测试