专业综合课程设计

任 务 书

班 级:

学 号:

姓 名:

成 绩:

电子与信息工程学院

计算机科学系

简易计算器

1 总体设计

1.1设计任务

利用单片机及外围接口电路(键盘接口和显示电路)设计制作一个计算器,用led或lcd显示计算数值及结果。

1.2实现性能

1、实现多位数加减运算。

2、实现单字节的乘除运算。

3、实现多字节与单字节乘除运算。

4、用LED或LCD显示输入及结果。

1.3总体设计方案

按照要求,初步确定设计系统由主控模块、显示模块、键扫描接口电路三个部分组成,电路系统构成框图如图1.1所示。主控芯片使用80c51单片机,键盘电路采用4*4的矩阵键盘电路,显示部分由AMPIRE128X64LCD和p0口的8个上拉电阻构成。

2 硬件详细设计

2.1单片机最小系统

单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和时钟电路。此次设计不需要复位电路和时钟电路,只需要主控芯片80c51即可。图1.2是去掉复位电路和时钟电路的单片机最小系统硬件电路图。

2.2显示部分

由于p0口在I/O工作方式下需要接上拉电阻或下拉电阻,而AMPIRE128X64LCD没有内部上拉电阻,所以要用8各电阻做上拉电阻,给p0口注入电压。AMPIRE128X64各引脚的功能:-vout一般不接,rst是复位接口(高电平有效,接vcc),RW1/0对应读和写,RS1/0对应指令和数据,e是使能端(让指令数据能够写入,下降沿有效),vo是控制屏幕对比度(接滑动变阻器,调电势控制对比度),cs1和cs2值控制左右屏幕开启(低电平有效),gnd,vcc及8各数据传送口。控制引脚接p3口,数据接口接p0口,这部分硬件电路图如图1.3。

图1.2

图1.3

图1.4

2.3键盘电路

这部分有16个button构成4*4矩阵,通过p1口进行行扫描方式实现按键的读取。硬件电路图如图1.4。

2.4总体硬件图

如图1.5

图1.5

3 软件详细设计

3.1键盘扫描子程序

要进行数据的计算就必须进行数据的输入,也就是确定按键输入的数值是什么,这就需要对键盘进行行扫描,从而确定究竟是那个键按下。对于键盘的扫描,既可以使用行扫描也可以使用列扫描,这里采用行扫描的方法完成对键盘的扫描

行扫描就是逐行扫描键盘,看那一行有键按下,再通过返回的见马来确定究竟是哪个按键按下。对第一行扫描就置p1.0为底电平,其余p1口为高电平,如果有按键按下,则p1口的值就会变为别的值,再由新值来确定是那个键按下。程序流程图如图1.6

图1.6

dd:mov r0,#0f7h mov r1,#0

cc:mov a,r0 mov p1,a

mov a,p1 mov r2,a

setb c mov r3,#4

bb:rlc a jnc aa

ee:inc r1 djnz r3,bb

mov a,r0 setb c

rrc a mov r0,a

jc cc ljmp dd

KAOO:LJMP KAO BBB2:LJMP BB2

aa:lcall mm mov a,p1

xrl a,r2 nz ee

ff:mov a,p1 xrl a,r2

jz ff MOV A,51H

CJNE A,#1,BBB2

3.2结果计算子程序

结果计算子程序包含加,减,乘,除四种运算。一面是加法的程序,其他类似。

MOV A,R1 CJNE A,#14,KAOO

MOV 47H,R1 LCALL A31

MOV A,40H ADD A,60H

MOV B,#10 DIV AB

MOV 40H,B ADD A,41H

ADD A,71H MOV B,#10

DIV AB MOV 41H,B

ADD A,42H ADD A,72H

MOV B,#10 DIV AB

MOV 42H,B ADD A,44H

ADD A,74H MOV B,#10

DIV AB MOV 44H,B

ADD A,45H ADD A,75H

MOV B,#10 DIV AB

MOV 45H,B ADD A,46H

ADD A,76H MOV B,#10

DIV AB MOV 46H,B

ADD A,48H ADD A,78H

MOV B,#10 DIV AB

MOV 48H,B ADD A,49H

ADD A,79H MOV B,#10

DIV AB MOV 49H,B

MOV 0CEH,A CJNE A,#0,CC0

MOV A,49H CJNE A,#0,CC1

MOV A,48H CJNE A,#0,CC2

MOV A,46H CJNE A,#0,CC3

MOV A,45H CJNE A,#0,CC4

MOV A,44H CJNE A,#0,CC5

MOV A,42H CJNE A,#0,CC6

MOV A,41H CJNE A,#0,CC7

MOV A,40H CJNE A,#0,CC8

CC0:LCALL A08 CC1:LCALL A07

CC2:LCALL A06 CC3:LCALL A05

CC4:LCALL A04 CC5:LCALL A03

CC6:LCALL A02 CC7:LCALL A01

CC8:LCALL A00 LJMP DD

KAO:CJNE A,#15,KAO1 LJMP START1

KAO1:MOV A,50H CJNE A,#0,A1A1

MOV 60H,R1 LCALL A8

INC 50H ljmp dd

A1A1:CJNE A,#1,A1A2 MOV 71H,60H

MOV 60H,R1 LCALL A8

LCALL A9 INC 50H

LJMP DD A1A2:CJNE A,#2,A1A3

MOV 72H,71H MOV 71H,60H

MOV 60H,R1 LCALL A8

LCALL A9 LCALL A10

INC 50H LJMP DD

A1A3:CJNE A,#3,A1A5 MOV 74H,72H

MOV 72H,71H MOV 71H,60H

MOV 60H,R1 LCALL A8

LCALL A9 LCALL A10

LCALL A11 INC 50H

LJMP DD A1A5:CJNE A,#4,A1A6

MOV 75H,74H MOV 74H,72H

MOV 72H,71H MOV 71H,60H

MOV 60H,R1 LCALL A8

LCALL A9 LCALL A10

LCALL A11 LCALL A12

INC 50H JMP DD

A1A6:CJNE A,#5,A1A7 MOV 76H,75H

MOV 75H,74H MOV 74H,72H

MOV 72H,71H MOV 71H,60H

MOV 60H,R1 LCALL A8

LCALL A9 LCALL A10

LCALL A11 LCALL A12

LCALL A13 INC 50H

LJMP DD A1A7:CJNE A,#6,A1A9

MOV 78H,76H MOV 76H,75H

MOV 75H,74H MOV 74H,72H

MOV 72H,71H MOV 71H,60H

MOV 60H,R1 LCALL A8

LCALL A9 LCALL A10

LCALL A11 LCALL A12

LCALL A13 LCALL A14

INC 50H LJMP DD

A1A9:CJNE A,#7,A1A10 MOV 79H,78H

MOV 78H,76H MOV 76H,75H

MOV 75H,74H MOV 74H,72H

MOV 72H,71H MOV 71H,60H

MOV 60H,R1 LCALL A8

LCALL A9 LCALL A10

LCALL A11 LCALL A12

LCALL A13 LCALL A14

LCALL A15 INC 50H

A1A10:LJMP DD BBB3:LJMP BB33

KAOO2:LJMP KAO2 BB2:CJNE A,#2,BBB3

3.3显示子程序

显示子程序包括左半屏写入8*16数字子程序,右半屏写入8*16数字子程序,左半屏写入16*16汉字子程序,右半屏写入16*16汉字子程序,写指令代码子程序(左),写显示数据子程序(左),写显示数据子程序(左),写显示数据子程序(右)。下面是写指令代码和写显示数据代码。

写指令代码子程序(左):

PRM0:

CLR CSA

SETB CSB

CLR rs

SETB rw

PRM01:

MOV P0,#0FFH

SETB E

MOV A,P0

CLR E

JB ACC.7,PRM01

CLR rw

MOV P0,COM

SETB E

CLR E

RET

写显示数据子程序(左):

PRM1:

CLR CSA

SETB CSB

CLR rs

SETB rw

PRM11:

MOV P0,#0FFH

SETB E

MOV A,P0

CLR E

JB ACC.7,PRM11

SETB rs

CLR rw

MOV P0,DAT

SETB E

CLR E

RET

3.4主程序及其他部分程序

下图为主程序流程图:

主要有:初始化子程序,清屏子程序,固定字符显示,单元定义,端口定义,字模部分。

主程序:

RG 0

LJMP START

START:MOV SP,#60H

LCALL INT ;调用初始化子程序

START1:LCALL CLEAR ;调用清屏子程序

初始化子程序:

INT: MOV COM,#0C0H ;设置显示起始行为第一行

LCALL PRM0

LCALL PRR0

MOV COM,#3FH ;开显示设置

LCALL PRM0

LCALL PRR0

RET

清屏子程序:

CLEAR:

MOV R4,#00H

CLEAR1:

MOV A,R4

ORL A,#0B8H

MOV COM,A

LCALL PRM0

LCALL PRR0

MOV COM,#40H

LCALL PRM0

LCALL PRR0

MOV R3,#40H

CLEAR2:

MOV DAT,#00H

LCALL PRM1

LCALL PRR1

DJNZ R3,CLEAR2

INC R4

CJNE R4,#08H,CLEAR1

RET

mm:mov r4,#250

gg:mov r5,#20

djnz r5,$

djnz r4,gg

ret

4 心得体会

通过此次设计我完成了对给定要求系统的硬件设计,电路设计,软件设计,软件仿真调试。从整个过程中学到了很多方面的知识,了解到以往在学习中的不足之处,是以前学到的东西得到巩固,没学到的东西,现在可以学到。尤其对一些陌生的芯片使用方法和功能有了一定掌握。在设计过程中我发现,我对一些只是半知半解,没有足够的自信去解决问题,只能通过老师同学和网络得到解决。在设计电路图的时候很粗糙,以至于检查好久才能看到问题。当然,这次设计只是简单的完成一些功能,还可以通过增加芯片元器件进行功能拓展。

第一次使用keilc及proteus软件的仿真调试,感觉挺有用的。经过软件在线仿真,然后对实体仿真可以很好的掌握。

参考文献

[1]张美金、刘卉、谢国民.80c51单片微机原理及应用教程.辽宁人名出版社.2008.10

[2]徐维祥、刘旭明.单片微机原理及应用.大连理工大学出版社.1996

[3]李群芳、黄建.单片微型计算机与接口技术.北京工业电子出版社.2001

展开阅读全文

单片机计算机课程设计报告,单片机课程设计报告(简易计算机).doc相关推荐

  1. 简易计算机led数码管单片机课设,单片机课程设计报告--简易计时器——LED?数码管显示接口技术应用.docx...

    文档介绍: 文华学院单片机原理及应用课程设计报告姓名: 学号: 学部(系): 专业年级: 指导老师: 201 6年12月5日目录一标题--------------------- 1 二设计内容,设计要 ...

  2. 单片机8位抢答器实训机电报告_单片机课程设计报告八路抢答器

    单片机课程设计报告八路抢答器 <单片机原理及接口技术 > 课程设计 报告 课题名称 题目 15八路抢答器设计 ★★ 学院 自动控制与机械工程学院 专业 电气工程及其自动化 班级 姓名 学号 ...

  3. 秒表系统的设计c语言程序,51单片机秒表计时器课程设计报告(含C语言程序)详细分解.doc...

    XXXXXX学院 51单片机系统设计 课程设计报告 题 目: 秒表系统设计 专业.班级: 学生姓名: 学 号: 指导教师: 分 数 : [摘要]本设计是一个秒表计时器,采用51单片机实现.电路包括以下 ...

  4. 51单片机c语言教程温度计,单片机课程设计-数字温度计.doc

    武 夷 学 院 课程设计报告 课程名称: 单片机及嵌入式技术 设计题目: 数字温度计 学生班级: 13计算机科学与技术(1)班 学生姓名: 陈圣盛.周鹏飞.刘犇 指导教师: 焦金涛 完成日期: 201 ...

  5. 基于at89c51单片机的led数字倒计时器设计c语言,课程设计(论文)-基于AT89C51单片机的LED数字倒计时器设计.docx...

    单片机原理及其应用课程设计 课 题: 基于AT89C51单片机的LED数字倒计时器设计专 业: 电工程及其自动化班 级: 2013 级 4班学 号: 姓 名: 设计日期: 2015年6月6日--201 ...

  6. 基于at89c51单片机的led数字倒计时器设计c语言,课程设计(论文)-基于AT89C51单片机的LED数字倒计时器设计精选.docx...

    课程设计(论文)-基于AT89C51单片机的LED数字倒计时器设计精选 单片机原理及其应用课程设计课题:基于AT89C51单片机的LED数字倒计时器设计专业:电工程及其自动化班级: 2013 级4班学 ...

  7. 红外遥控C语言程序设计,光电红外遥控开关设计(光电系统课程设计)【PCB图仿真图单片机C语言分工心得】..doc...

    光电红外遥控开关设计(光电系统课程设计)[PCB图仿真图单片机C语言分工心得]. 本科生课程论文 论文题目光电红外遥控开关设计课程名称光电系统设计学生姓名学号所在学院所在班级指导教师 目 录 摘要3 ...

  8. 单片机课程设计数字心率计_课程设计-基于单片机的数字人体心率计设计.doc

    课程设计-基于单片机的数字人体心率计设计 中北大学 基于单片机的心率计设计 课 程 设 计 说 明 书 2017年 6月30日 课 程 设 计 任 务 书 1.设计目的:通过本课程设计的学习,学生将复 ...

  9. 单片机原理及应用pdf_单片机原理及应用课程设计

    --基于STC高性能单片机温度采集控制器设计 目录 1. 课程设计目的 2. 硬件设计 3. 软件设计 4. 安装调试 5. 结果分析 6. 体会 7. 参考文献 (一)课程设计目的 通过基于STC高 ...

  10. 定时报警器课程设计(基于单片机)

    一.课题名称 定时报警器 二.设计任务与要求 设计一个单片机控制的简易定时报警器.要求根据设定的初始值(1-59秒)进行倒计时,当计时到0时数码管闪烁"00"(以1Hz闪烁),按键 ...

最新文章

  1. 打印函数如何适应不同的打印机
  2. boost::exception模块实现boost :: tuple捆绑的测试程序
  3. 拉取远程分支到本地分支_保险公司在本地没有分支机构可以投保吗?异地投保会影响理赔吗?...
  4. java 阻塞锁_Java实现锁、公平锁、读写锁、信号量、阻塞队列、线程池等常用并发工具...
  5. 惊呼!JavaScript基本数据类型和引用数据类型详解
  6. animation 先执行一次 在持续执行_这一次,彻底弄懂 JavaScript 执行机制
  7. 成立仅一年的天猫好房,凭什么让55万人排队领钱?
  8. 阿里云windows server 2012安装.net framework3.5失败解决方案
  9. JMeter压测输出HTML图形化报表
  10. Win7和win10下python3和python2同时安装并解决pip共存问题
  11. iso linux 内核版本号_Linux发行版和Linux内核的区别
  12. php概率算法(转)
  13. Silverlight 4 or 5 安装步骤
  14. UEFI开发与调试---OVMF 固件简介
  15. 怎么判断苹果开发者账号是否认证了
  16. handsontable 给单元格设置下拉 菜单
  17. ajax excel导出问题,AJAX导出excel问题
  18. 青岛大学计算机专业春考,青岛大学春季高考专业
  19. LabVIEW范例无法打开解决办法
  20. 编写frame.java_returnordersubmitframe.java~83~ 源代码在线查看 - 用java编写的进销存系统 资源下载 虫虫电子下载站...

热门文章

  1. android adb驱动官方下载,adb驱动下载
  2. EDA技术实用教程 | 复习三 | 不同类型的赋值语句
  3. MFC MessageBox使用教程
  4. prinect pdf toolbox 2021中文版
  5. windows使用命令或批处理文件打开远程桌面
  6. React Hooks 实战 CNode 社区移动端网站
  7. STLink MID Keli Debug下载程序时候出现cannot access target shutting down debug session的解决
  8. keli下使用断点调试
  9. jQuery文档加载完毕的几种写法
  10. java 题库管理系统_JAVA WEB 题库管理系统