简易计算器课程设计

合集下载

简易计算器c课程设计

简易计算器c课程设计

简易计算器c 课程设计一、课程目标知识目标:1. 让学生掌握简易计算器C的基本结构,包括算术表达式、运算符和操作数。

2. 使学生了解计算器C中的数据类型及其在内存中的存储方式。

3. 让学生理解顺序结构程序设计的原理,并能够运用到简易计算器C的开发中。

技能目标:1. 培养学生运用计算器C编写简单程序的能力,如加减乘除运算。

2. 培养学生分析问题、解决问题的能力,能够针对特定需求设计相应的计算器功能。

3. 提高学生的编程实践能力,通过动手编写代码,实现简易计算器的功能。

情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发他们主动探索新知识的欲望。

2. 培养学生团队协作意识,学会与他人共同分析问题、解决问题,共同进步。

3. 培养学生严谨、细致的学习态度,养成良好的编程习惯,为今后的学习打下基础。

课程性质:本课程属于编程启蒙课程,以实践操作为主,结合理论讲解,让学生在动手实践中掌握编程基础。

学生特点:本课程面向的学生为具有一定计算机操作基础,对编程感兴趣的年级学生。

教学要求:教师需结合学生特点,以实例为主线,引导学生主动参与课堂,注重培养学生的动手实践能力和团队协作精神。

通过本课程的学习,使学生在掌握计算器C基本知识的同时,提高编程技能和综合素质。

二、教学内容1. 计算器C基本语法:介绍计算器C的数据类型、变量、常量的定义及使用,让学生掌握基本语法规则。

- 教材章节:第一章 计算器C概述- 内容列举:数据类型、变量定义、常量定义、运算符、表达式。

2. 算术表达式:讲解算术表达式的构成,以及加减乘除运算符的使用方法。

- 教材章节:第二章 算术表达式- 内容列举:算术表达式构成、运算符优先级、括号的使用。

3. 顺序结构程序设计:引导学生学习顺序结构程序设计,掌握程序的基本执行流程。

- 教材章节:第三章 程序结构与控制流程- 内容列举:顺序结构、程序执行流程、输入输出语句。

4. 简易计算器C程序设计:结合前面的知识,设计一个简易计算器C程序,实现加减乘除运算。

简易计算器的课程设计

简易计算器的课程设计

简易计算器的课程设计一、课程目标知识目标:1. 学生能理解简易计算器的内部工作原理,掌握其基本功能操作。

2. 学生能运用计算器进行基本的算术运算,包括加、减、乘、除以及百分比计算。

3. 学生理解并掌握计算器上各个按键的功能及其在数学运算中的应用。

技能目标:1. 学生能够使用计算器辅助解决实际问题,如购物找零、面积计算等。

2. 学生通过计算器的使用,提高数据输入、结果读取和运算过程纠错的能力。

3. 学生能够结合数学知识,利用计算器进行数据的简单统计分析。

情感态度价值观目标:1. 培养学生对待科学技术的积极态度,认识到计算器在日常生活和学习中的便捷性。

2. 增强学生的团队协作意识,通过小组活动,学会分享和交流使用计算器的经验。

3. 培养学生遵守计算器使用的规则,养成良好的计算器使用习惯,珍惜公共资源。

本课程设计针对的学生群体为小学高年级学生,他们已经具备了一定的数学基础和操作简单电子设备的能力。

课程性质为实用技能型,旨在通过简易计算器的教学,将理论知识与实践操作相结合,提高学生解决实际问题的能力。

在教学要求上,注重培养学生的动手操作能力和创新思维,同时强调情感态度的培养,使学生在学习技能的同时,也能形成正确的价值观。

通过具体学习成果的分解,教师可进行有针对性的教学设计和学习效果评估。

二、教学内容本章节教学内容依据课程目标,结合教材内容,科学系统地组织以下部分:1. 简易计算器基础知识:介绍计算器的发展历程、种类及简易计算器的结构组成,对应教材第二章第一节。

2. 计算器按键功能:详细讲解各按键的功能及其在数学运算中的应用,对应教材第二章第二节。

3. 基本运算操作:教授如何使用计算器进行加、减、乘、除以及百分比计算,对应教材第二章第三节。

4. 计算器在实际应用中的使用:结合实际案例,如购物找零、面积计算等,展示计算器的实用性,对应教材第二章第四节。

5. 数据的简单统计分析:利用计算器进行数据输入、处理和简单统计分析,对应教材第二章第五节。

简易计算器设计的课程设计

简易计算器设计的课程设计

简易计算器设计的课程设计一、课程目标知识目标:1. 学生能够理解简易计算器的基本原理,掌握其设计流程。

2. 学生能够运用所学编程知识,实现简易计算器的功能。

3. 学生能够了解并掌握计算器界面设计的基本原则。

技能目标:1. 学生能够运用所学的编程技能,独立完成简易计算器的设计与开发。

2. 学生能够通过编写代码,实现计算器的加、减、乘、除等基本运算功能。

3. 学生能够运用调试工具,对计算器程序进行测试和优化。

情感态度价值观目标:1. 学生在课程学习中,培养对编程的兴趣和热情,增强信息素养。

2. 学生通过团队协作,培养沟通能力和团队精神,学会共同解决问题。

3. 学生在设计与开发简易计算器的过程中,体验创新实践的过程,培养创新思维和动手能力。

课程性质:本课程为信息技术课程,旨在帮助学生将所学的编程知识运用到实际项目中,提高学生的编程实践能力和创新能力。

学生特点:六年级学生具备一定的编程基础,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养创新思维。

在教学过程中,关注学生的个体差异,鼓励学生相互交流、合作,共同完成学习任务。

通过本课程的学习,使学生能够将所学知识运用到实际项目中,提高解决问题的能力。

二、教学内容1. 计算器原理:介绍计算器的基本工作原理,包括算术运算逻辑、数据存储与处理等。

教材章节:第三章 计算机硬件基础2. 编程语言基础:回顾所学的编程语言(如Python),重点掌握变量定义、数据类型、运算符、条件语句和循环语句等。

教材章节:第二章 编程语言基础3. 界面设计:讲解计算器界面设计的原则和技巧,如布局、颜色、字体等。

教材章节:第四章 用户界面设计4. 编程实现计算器功能:引导学生运用所学知识,编写程序实现计算器的加、减、乘、除等基本运算功能。

教材章节:第五章 算法与程序设计5. 程序调试与优化:教授学生如何使用调试工具,对计算器程序进行测试、调试和优化。

51简易计算器课程设计

51简易计算器课程设计

51简易计算器课程设计一、课程目标知识目标:1. 学生能理解并掌握51简易计算器的基本原理和功能。

2. 学生能够运用所学的编程知识,编写出具备加、减、乘、除基本运算功能的51简易计算器程序。

3. 学生能够理解并运用51单片机的内外部中断,实现计算器按键识别与功能调用。

技能目标:1. 学生能够熟练使用51单片机的开发环境和编程工具。

2. 学生通过实践操作,掌握51单片机的I/O口编程,提高动手实践能力。

3. 学生能够通过团队协作,解决编程过程中遇到的问题,提升问题解决能力。

情感态度价值观目标:1. 学生培养对单片机编程的兴趣,增强学习计算机科学的热情。

2. 学生在课程实践中,养成动手操作、观察问题、思考问题的良好习惯。

3. 学生通过团队协作,培养沟通与协作意识,增强团队荣誉感。

本课程针对五年级学生设计,课程性质为实践性较强的信息技术课程。

结合学生特点,课程目标注重培养学生的学习兴趣和动手能力,同时考虑教学要求,将目标分解为具体的学习成果,为后续的教学设计和评估提供依据。

二、教学内容1. 51单片机基本原理与结构:介绍51单片机的组成、工作原理及特点,让学生对51单片机有整体的认识。

- 教材章节:第一章 51单片机概述2. 51单片机开发环境与编程工具:学习如何搭建51单片机开发环境,掌握编程工具的使用。

- 教材章节:第二章 51单片机开发环境与编程工具3. I/O口编程:学习51单片机I/O口的基本操作,实现计算器按键输入与LED显示。

- 教材章节:第三章 I/O口编程与应用4. 基本运算程序编写:学习编写加、减、乘、除基本运算的程序,掌握运算逻辑。

- 教材章节:第四章 算术运算程序设计5. 中断编程与应用:学习51单片机中断原理,运用外部中断实现按键识别与功能调用。

- 教材章节:第五章 中断系统及其应用6. 简易计算器程序设计与实现:将所学知识综合运用,设计并实现具备基本运算功能的简易计算器。

- 教材章节:第六章 综合应用实例教学内容根据课程目标进行科学性和系统性组织,制定详细的教学大纲,确保教学内容的安排和进度。

dsp简易计算器课程设计

dsp简易计算器课程设计

dsp简易计算器课程设计一、课程目标知识目标:1. 理解DSP(数字信号处理)的基本概念和原理;2. 掌握简易计算器的设计方法和步骤;3. 学会运用DSP技术进行简单数值的计算。

技能目标:1. 能够运用所学知识,设计并实现一个简易计算器程序;2. 能够运用DSP技术进行基本的算术运算;3. 能够分析计算器的性能,并进行优化。

情感态度价值观目标:1. 培养学生对DSP技术及编程的兴趣,激发学习热情;2. 培养学生的团队协作精神,学会共同解决问题;3. 培养学生严谨的科学态度,注重实践操作和理论知识的结合。

课程性质:本课程为信息技术课程,结合了数字信号处理和编程实践。

学生特点:学生具备一定的编程基础,对DSP技术有一定了解,具备基本的算术运算能力。

教学要求:通过本课程的学习,使学生能够运用所学知识,独立设计并实现简易计算器,提高学生的编程实践能力和解决问题的能力。

将目标分解为具体的学习成果,以便后续的教学设计和评估。

二、教学内容1. 数字信号处理基础- 介绍DSP的基本概念、发展及应用;- 理解数字信号与模拟信号的区别及转换方法;- 掌握基本的数字信号处理算法。

2. 简易计算器设计原理- 分析计算器的基本功能需求;- 学习计算器的设计方法及步骤;- 了解计算器的用户界面设计。

3. 编程实践- 学习使用DSP开发工具和编程环境;- 编写简易计算器的程序代码;- 调试和优化计算器程序。

4. 教学大纲- 第一周:数字信号处理基础,介绍相关概念,分析计算器功能需求;- 第二周:学习计算器设计原理,讨论设计方法,进行用户界面设计;- 第三周:编写计算器程序,进行功能实现和调试;- 第四周:优化计算器程序,提高性能,总结课程。

教材章节关联:- 第一章:数字信号处理概述;- 第二章:数字信号处理算法;- 第三章:编程实践。

教学内容确保与课本章节紧密关联,遵循由浅入深的原则,使学生能够系统地掌握DSP简易计算器的设计与实现。

简易计算器课程设计

简易计算器课程设计

山东大学控制科学与工程学院课程设计报告书课程设计名称:简易计算器班级:测控一班学号:201000171202姓名:魏凯峰一、电路工作原理该电路主要由以下几部分组成,1、51系列单片机最小系统板,由AT89C51单片机,复位电路,晶振电路(晶振频率是11.0592MHZ),这部分是控制中心,晶振电路可产生程序运行所需要的时钟频率。

2、显示部分,由8位共阴数码管和两个74HC573锁存器、排阻(1K)组成,74HC573锁存器用于动态显示数据,也有驱动显示作用,排阻是限流作用。

3、按键部分,由20位独立键盘组成,按矩阵形式连接,用到9个IO口。

原理:键盘作为数字输入,矩阵键盘的工作原理是当某个键按下时,其两端的IO口电平变化,程序中通过相应位的与或运算,就可以判断出是哪个按键被按下,单片机中的程序不断读取键盘的输入并实时显示在数码管上,数码管用段位选不断切换显示,如当位选为高电平时即为点亮,然后再输入相应的数字段码(该电路中用的是共阴极数码管的字码),这样数码管上便可以显示相应数字。

锁存器中的LE口就是段位选口,高电平有效,数码管中的A、B......G、DP是数码管中的每一段,只要某个字母为高电平,则该段二极管就会被点亮(共阴极)。

在同时显示多个数字时要利用到动态显示,视觉动态显示主要就是利用人眼的视觉感来设计的,一般来说如果显示的频率过慢,则会有断断续续的显示;如果显示的频率加快,则人眼就分辨不出这种视觉残余!二、程序简要说明从主函数开始,先是定义一些变量,然后是调用显示函数displaypro(0),先显示0,然后进入一个大循环while(1),在循环里面先检测键盘keyscan(),并把检测值赋给K,然后是段位选循环8次检测,然后用switch(k)函数来执行键盘操作,k的值从0到9表示输入数字0到9,10到13表示加减乘除,17、15分别表示十六进制和二进制,16表示小数点,14表示正负号,18表示清除,19是等于号。

c简易计算器课程设计

c简易计算器课程设计

c 简易计算器课程设计一、课程目标知识目标:1. 学生能理解简易计算器的基本原理,掌握加、减、乘、除四则运算的操作方法。

2. 学生能够运用所学知识,解决生活中简单的数学问题。

3. 学生了解计算器的发展历程,认识到科技对生活的影响。

技能目标:1. 学生能够熟练操作简易计算器,进行基本的四则运算。

2. 学生通过实际操作,培养动手能力和问题解决能力。

3. 学生能够运用计算器辅助学习,提高数学学习效率。

情感态度价值观目标:1. 学生培养对数学学习的兴趣,树立正确的数学观念。

2. 学生在合作交流中,培养团队意识和沟通能力。

3. 学生通过计算器的使用,认识到科技发展的成果,增强民族自豪感。

课程性质:本课程为信息技术与数学学科的整合课程,旨在通过简易计算器的学习,提高学生的数学素养和信息技术能力。

学生特点:四年级学生具备一定的数学基础和信息技术能力,好奇心强,善于合作交流。

教学要求:教师需结合学生的特点,采用启发式教学,引导学生主动探究,注重培养学生的动手能力和问题解决能力。

在教学过程中,关注学生的情感态度,激发学生的学习兴趣,使学生在轻松愉快的氛围中学习。

通过本课程的学习,使学生达到预期的学习成果。

二、教学内容1. 计算器的历史与原理:介绍计算器的发展简史,探讨计算器的工作原理,让学生了解计算器的演变过程,认识到科技对生活的改变。

2. 简易计算器操作方法:详细讲解加、减、乘、除四则运算的操作步骤,让学生熟练掌握计算器的使用方法。

3. 实践应用:结合数学课本中的实际例题,指导学生运用计算器进行计算,解决实际问题,提高计算速度和准确性。

4. 计算器在数学学习中的应用:探讨计算器在辅助数学学习中的作用,如:简化计算过程、提高解题效率等。

教学内容安排和进度:第一课时:计算器的历史与原理,计算器的简单操作。

第二课时:四则运算的操作方法,实践练习。

第三课时:计算器在数学学习中的应用,解决实际问题。

教材章节:《信息技术》第四章:计算器与计算机。

简易减法计算器课程设计

简易减法计算器课程设计

简易减法计算器课程设计一、课程目标知识目标:1. 学生能够理解减法的基本概念,掌握减法运算的规则。

2. 学生能够运用减法运算解决实际问题,如计算物品数量减少、温度变化等。

3. 学生了解简易减法计算器的原理,能够运用其进行基本的减法计算。

技能目标:1. 学生能够熟练运用减法运算,提高计算速度和准确性。

2. 学生通过制作简易减法计算器,培养动手操作能力和创新思维。

3. 学生能够运用所学的减法知识,解决生活中的实际问题,提高解决问题的能力。

情感态度价值观目标:1. 学生对数学产生兴趣,积极主动地参与课堂学习。

2. 学生在合作探究中,学会互相尊重、团结协作,培养良好的团队精神。

3. 学生通过解决实际问题,体会数学的实用价值,增强对数学学科的认识和信心。

课程性质:本课程为小学二年级数学课程,以培养计算能力和解决实际问题能力为主要目标。

学生特点:二年级学生具备一定的加减法基础,好奇心强,喜欢动手操作,但注意力集中时间较短。

教学要求:结合学生特点,采用生动有趣的教学方法,激发学生的学习兴趣,注重培养动手操作能力和解决实际问题的能力。

在教学过程中,关注学生的个体差异,因材施教,使每位学生都能达到课程目标。

将目标分解为具体的学习成果,以便后续的教学设计和评估。

二、教学内容本节课教学内容主要包括以下几部分:1. 减法运算的概念与规则:通过实例引入减法运算,让学生理解减法的意义,掌握减法运算的步骤和规则。

2. 简易减法计算器的制作与应用:结合教材中的内容,引导学生动手制作简易减法计算器,学习其工作原理,并能够运用其进行基本的减法计算。

3. 减法运算在实际问题中的应用:选取与学生生活密切相关的实际问题,如购物找零、计算物品减少等,让学生学会运用减法运算解决问题。

4. 教学内容的安排和进度:- 第一节课:回顾加法运算,导入减法运算的概念与规则,进行基础练习。

- 第二节课:介绍简易减法计算器的制作方法,学生分组动手制作,并交流展示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

科研训练论文题目:基于单片机的计算器的设计目录一、概述 (3)1.1设计要求及任务: (3)1.2设计原理: (3)二、系统总体方案及硬件设计 (3)2.1计算器总体思想 (3)2.2硬件的选择与连接 (4)2.2.1硬件选择 (4)2.2.2接口设计 (5)三、软件设计 (7)3.2系统流程总图 (8)3.3显示程序设计 (8)3.4键盘识别程序设计 (9)3.4.1原理与分析 (9)3.4.2流程图 (10)四、设计体会与总结 (11)五、参考文献 (11)附录基于单片机的计算器的设计摘要:本设计是一个实现加减乘除的计算器,它的硬件主要由四部分构成,一个8051单片机芯片,两个八段共阴极数码管,一个4*4键盘,它可以实现一位数的加减乘除运算。

显示部分:采用LED动态显示。

按键部分:采用4*4键盘。

采用软件识别键值,并执行相应的操作。

关键词:LED接口;键盘接口;8255A;汇编语言一、概述1.1设计要求及任务:(1)设计4*4的键盘,其中10个数字键0~9,其余六个键“+”、“—”、“*”、“/”、“=”、和“C”键;(2)设计两位LED接口电路;(3)实现1位数的简单运算1.2设计原理:(1)LED显示器接口技术LED动态显示接口技术(2)键盘显示技术逐行(逐列扫描法)二、系统总体方案及硬件设计2.1计算器总体思想显示部分:采用LED动态显示。

按键部分:采用4*4键盘。

采用软件识别键值,并执行相应的操作。

执行过程:开机显示零,等待键入数值,当键入数字,经通过数码管显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在数码管上输出运算结果。

图1 系统设计框图2.2硬件的选择与连接图二硬件连接总图2.2.1硬件选择(1)由于本设计比较简单,因此选用内部含有4KBE2PROM的89C51单片机作为系统的核心。

(2)扩展输入/输出端口在扩展输入/输出端口时,要求输入口能够缓冲,,输出口能够锁存。

常用小规模集成电路芯片74LS244或74LS245等扩展输入端口,用74LS273、74LS373、 74LS377扩展输出端口。

这种扩展方法的特点是电路简单,但功能单一、灵活性差。

因而常采用中规模的可编程并行接口芯片8255A扩展输入/输出端口。

(3)锁存电路采用74LS3732.2.2接口设计(1)单片机与8255A的接口设计8255A中的数据总线缓冲器为三态双向数据缓冲存储器,用于将8255A的数据线D0~D7和单片机的数据总线(P0口)连接,实现单片机和接口间的数据传送。

读写控制部件的接口设计1、/CS为片选信号,接成低电平表示8255A被选中。

/CS与P2.7相连,用P2口的最高位控制8255A是否工作。

即将P2.7控制为低电平。

2、RESET-复位信号,高电平有效,接在单片机的RST端。

3、/RD和/WR为读写控制信号,低电平有效。

分别将两个端口接单片机的/RD和/WR4、A1和A0-端口选择信号,分别与单片机的低两位地址线P1.1和P1.0相连。

用于选择不同端口。

采用74LS373三态锁存器,用于分离P0口第八位地址线,将它的Q0和Q1口接至8255A的地址输入端A0和A1。

所以若将P1.2~P1.7和P2.0~P2.6全接为高电平,A口地址为07FFCH,B口地址为07FFDH,C口地址为07FFEH,控制字寄存器地址为07FFFH.(2)LED显示电路的设计:简易计算器需要2位8段码LED显示电路。

用8051单片机经8255A扩展2位8段码LED显示器,用8255A的A口作为段码(字形代码)数据口,PB0和PB1作位码口。

图三显示器接口电路(3)键盘接口设计89C51单片机经8255A扩展4*4行列式键盘,8255A的B口和C口用于扩展键盘接口,B口高4位作为输出口,C口低4位作为输入口。

设各口工作于方式零。

则8255A 的工作方式控制字为10000001(81H)键盘接口设计图四键盘接口图三、软件设计3、1软件系统的功能该设计能够实现1位的加减乘除和清零功能,利用实验箱上4*6键盘中前4列,即0-9,A-F键。

A,B,C,D分别为“+”“-”“*”“/”键,E是等于键,F清零。

其他是数字键。

再利用实验箱上的LED显示器,对于即时按下的键和结果进行显示。

3.2系统流程总图图五系统总流程图3.3显示程序设计LED显示器有共阴极和共阳极两种。

共阴极就是把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地,某端接高电平时才发亮。

共阳极则是把发光二极管的阳极连在一起构成公共阳极,使用时公共阳接十5V端。

某端接低电平时才发亮。

在此次设计中采用共阴极接法。

LED动态显示接口技术:动态显示中,任意时刻虽只有一位显示器被点亮,但当一个循环周期小于人的视觉暂留时间时,看上去与全部显示器持续点亮的效果相同。

从而提高数码管的利用效率,所以采用LED动态显示接口技术。

多位LED显示器接口电路需要有两个输出口,其中一个用于输出8条段控线(有小数点显示),另一个用于输出位控线,位控线的数目等于显示器的位数。

利用LED动态显示的方法,设置显示缓冲地址和循环次数,让两个数码管从左到右依次显示,之间要调用延时子程序,但延时时间小于人的视觉暂留。

程序流程图如下图六显示程序设计流程图3.4键盘识别程序设计3.4.1原理与分析1、测试是否有键按下:①单片机I/O 口向所有列线输出低电平。

即向列口写入00H。

②然后输入各行线状态,即读输入口的字。

③比较:若行线状态全为高电平,则表明无键按下;若行线状态中有低电平,则表明有键按下。

2、消抖动3、扫描键盘以确定被按键的物理位置4、计算键码如果键号是按从左到右,从上到下的顺序编排的,按这种编排规律,各行的首键号依次是 00H、08H、10H、18H,如列线按0~7的顺序编号,则可选用键码的计算公式为:键码= 首键号十列号5、等待键释放实验箱提供6*4的小键盘,只使用前四列,即0-9,A-F键。

A,B,C,D分别为“+“-”“*”“/”键,E是等于键,F清零。

其他是数字键。

再利用实验箱上的LED显示器,对于即时按下的键和结果进行显示。

向列扫描码逐列输出低电平,然后从行码地址读回。

如果有键按下,则相应的行值应为低,如果无键按下,由于上拉电阻的作用,行码为高。

这样可以通过输出的列码和读取的行码判断按下的是什么键,在判断有键按下后,要有一定的延时,防止键盘抖动。

在接线时将KEY/LED CS 接到 CS0上,则列扫描地址为08002H,行扫描地址为08001H。

为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码——键码。

为了得到被按键的键码,现使用行扫描法识别按键。

3.4.2流程图该程序可由两部分构成,首先扫描是否有键按下是执行TESTKEY程序,若有键按下则调用GETKEY程序,若无键按下则继续扫描按键程序直到有键按下。

图七键盘扫描程序的流程图四、设计体会与总结通过基于8051单片机简易计算器的设计,加深了我对单片机课程的了解,学以致用,不但回顾了过去所学,更使我了解了现在的不足,弥补了一些知识漏洞。

更重要的是在实际设计和试验中形成了更加科学合理的认识,不断形成更为合理和具有科学性的思想方式。

在这次设计中接住了互联网等途径查询相关信息,并在图书馆查阅了大量单片机资料。

这不但扩展了有关单片机领域的眼界,而且完善了以往的知识体系。

提高了运用知识的综合能力。

五、参考文献【1】郭文川主编. 单片机原理与接口技术[M]. 北京:中国农业出版社,2007【2】何利民。

MCS-51系列单片机应用系统设计【M】。

北京:北京航空航天大学出版社,1990.143.-160。

【3】李华。

MCS-51系列单片机实用接口技术【M】。

北京:北京航空航天大学出版社,1993.148.-158。

附录:PAPORT EQU 07FFCH ; 端控制口 A口PBPORT EQU 07FFDH ; 位控制口和键盘列线输出口 B口PCPORT EQU 07FFEH ; 键盘行码读入口 C口DATA1 EQU 70HDATA2 EQU 71HDIZHI1 EQU 72HDIZHI2 EQU 73HLEDBUF EQU 60H ;置显示缓冲单元首地址LJMP STARTSTART:MOV SP,#40HMOV LEDBUF+0,#0MOV LEDBUF+1,#03FHMLOOP:CALL DISPLAYLED ; 显示CALL TESTKEY ; 有键入?JZ MLOOP ; 无键入,继续显示CALL GETKEY ;读入键码JISUAN:MOV R3,ACJNE R3,#0FH,QU ;判断是否为清零键?MOV R3,#00H ;清零MOV R4,#00HMOV R5,#00HMOV DATA1,#00HMOV DATA2,#00HMOV DIZHI1,#00HMOV DIZHI2,#00HMOV LEDBUF+0,#0MOV LEDBUF+1,#03FHLJMP MLOOPQU: CLR CCJNE R3,#0AH,FOLLOW ; 判断是数字键还是功能键?FOLLOW:JC SHUZI ;R3<10,说明是数字键LJMP GNSHUZI: MOV A,R4 ;判断是否有运算符输入, JNZ SHUZI1 ;有就将数值存在DATA2MOV A,R3MOV DATA1,ALJMP XS ;显示第一次输入的数值SHUZI1:MOV A,R3MOV DATA2,ALJMP XS ;显示第二次输入的数值GN: MOV R4,#01H ;将01H给R4,说明已有运算符输入 CJNE R3,#0EH,JIA ;判断键值是否为“=”?MOV R4, #00h ;将R4清零MOV A,DIZHI1 ;执行“=”MOV DPH,AMOV A,DIZHI2MOV DPL,AMOV A,#00HJMP @A+DPTR ;转到本次输入的算法程序JA: CJNE R3, #0AH, JN ;若键值为“+”则将“+”的程序首地址MOV DPTR,#JIA ;存在DIZHI1和DIZHI2中MOV A,DPHMOV DIZHI1, AMOV A,DPLMOV DIZHI2, ALJMP MLOOPJN: CJNE R3, #0BH, CE ;若键值为“-”则将“-”的程序首地址存MOV DPTR, #JIAN ;DIZHI1和DIZHI2中MOV A, DPHMOV DIZHI1, AMOV A,DPLMOV DIZHI2, ALJMP MLOOPCE: CJNE R3,#0CH, CU ;若键值为“*”则将“*”的程序首地址存在MOV DPTR,#CHENG ;址存在DIZHI1和DIZHI2中MOV A,DPHMOV DIZHI1, AMOV A, DPLMOV DIZHI2, ALJMP MLOOPCu: CJNE R3, #0DH, ZHUAN ;若键值为“/”则将“/”的程序首地址存在MOV DPTR , #CHU ;存在DIZHI1和DIZHI2中MOV A, DPHMOV DIZHI1, AMOV A, DPLMOV DIZHI2, AZHUAN: LJMP MLOOPJIA: MOV A, DATA1 ;加法程序ADD A, DATA2LJMP XSJIAN: MOV A, DATA1 ;减法程序SUBB A, DATA2LJMP XSCHENG: MOV A, DATA1 ;乘法程序MOV B, DATA2MUL ABLJMP XSCHU: MOV A, DATA1 ;除法程序MOV B, DATA2DIV ABXS: MOV B, #10 ;显示个位数字DIV ABMOV R5,AMOV A, BMOV DPTR,#LEDMAPMOVC A, @A+DPTRMOV LEDBUF+1,AMOV A, R5FRIST:CJNE A,#0,NEXTLJMP MLOOP ;运算完后继续扫描键盘NEXT:MOV B,#10 ;显示十位数字DIV ABMOV R5,AMOV A,BMOV DPTR, #LEDMAPMOVC A, @A+DPTRMOV LEDBUF+0, AMOV A,R5LJMP FRISTENDLEDMAP:DB 3FH,06H,5BH,4FH ;八段管显示码DB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,71HDELAY:MOV R7,#0 ;延时子程序DELAYLOOP:DJNZ R7,DELAYLOOPDJNZ R6,DELAYLOOPRET;显示子程序************************************************ DISPLAYLED:MOV R0,#LEDBUFMOV R1,#2 ;共两个八段管MOV R2,#02H ;02H=0000 0010B从左边开始显示LOOP: MOV DPTR,#PBPORT ;位控口地址MOV A,#0MOVX @DPTR,A ;将零输出到位控口,关闭所有八段管 MOV A,@R0ACALL LEDMAPMOV DPTR,#PAPORT ;段控口地址MOVX @DPTR,A ;输出到段控口MOV DPTR,#PAPORTMOV A,R2MOVX @DPTR,A ;显示一位八段管MOV R6,#1 ;1毫秒延时CALL DELAYMOV A,R2 ;显示下一位RR AMOV R2,AINC R0DJNZ R1,LOOPRET;判断是否有键按下子程序**********************************88 TESTKEY:MOV DPTR,#PBPORTMOV A,#0MOVX @DPTR,A ;输出线置零MOV DPTR,#PCPORT ; 读入键状态MOVX A, @DPTRCPL AANL A,#0FH ;高四位不用,将高四位清零RET;定义键码的值***************************************KEYTABLE:DB 0DH, 0CH, 0BH, 0AHDB 0EH, 03H, 06H, 09HDB 0FH, 02H, 05H, 08HDB 00H, 01H, 04H, 07H;若有键按下,找出键码所在位置**************************** GETKEY:MOV DPTR,#PBPORTMOV P2,DPHMOV R0,#LOW(PCPORT)MOV R1,#00001000BMOV R2,#4KLOOP:MOV A,R1 ;找出键所在的列CPL AMOVX @DPTR,ACPL ARR AMOV R1,AMOVX A,@R0CPL AANL A,#0FHJNZ GOON1 ;该列有键入DJNZ R2,KLOOPMOV R2,#0FFH ;没有键按下,返回0FFH SJMP EXITGOON1:MOV R1,A ;键值=列X4+行MOV A,R2DEC ARL ARL AMOV R2,A ;R2=(R2-1)*4MOV A,R1 ;R1中为读入的行值MOV R1,#4LOOPC:RRC A ;移位找出所在行JC EXITINC R2 ;R2=R2+行值 DJNZ R1,LOOPCEXIT:MOV A,R2 ;取出键码 MOV DPTR,#KEYTABLEMOVC A,@A+DPTRMOV R2,AWAITRELEASE:MOV DPTR,#PBPORTCLR AMOVX @DPTR,AMOV R6,#10CALL DELAY ;调用延时程序消抖动CALL TESTKEYJNZ WAITRELEASEMOV A,R2RET。

相关文档
最新文档