搜档网
当前位置:搜档网 › 基于与Proteus仿真的键盘计算器的设计

基于与Proteus仿真的键盘计算器的设计

基于与Proteus仿真的键盘计算器的设计
基于与Proteus仿真的键盘计算器的设计

基于与P r o t e u s仿真的键盘计算器的设计

集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

基于8086与Proteus仿真的4*4键盘计算器的设计一、设计目的

本次课程设计的实验目的是通过该实验掌握较复杂程序的设计。

能够独立完成用程序对8086、8255控制键盘和LED显示的控制,完成计算器加减法的应用。独立编写程序,明白和掌握程序的原理和实现方式。为以后的设计提供经验。学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

二、设计内容

设计计算器,要求至少能完成多位数的加减乘除运算。独立完成用程序对8086、8255控制键盘和LED显示的控制,完成计算器加减乘除的应用。

三、设计原理与硬件电路

设计的思路是:首先利用程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就停止扫描,完成输入,利用汇编的程序核对输入键的数值,通过调用子程序完成数据的储存或者是加减的运算。运算完成后将运算的结果储存并显示到LED显示器上。

各部分硬件功能:

可编程并行通信接口芯片8255A 8255A内部结构:

1. 并行输入/输出端口A,B,C

8255A内部包括三个8位的输入输出端口,分别是端口A、端口B、端口C,相应信号线是PA7~PA0、PB7~PB0、PC7~PC0。端口都是8位,都可以作为输入或输出。通常将端口A和端口B定义为输入/输出的数据端口,而端口C则既可以作数据端口,又可以作为端口A和端口B的状态和控制信息的传送端口。

2.A组和B组控制部件

端口A和端口C的高4位(PC7~PC4)构成A组;由A组控制部件实现控制功能。端口B和端口C的低4位(PC3~PC0)构成B 组;由B组控制部件实现控制功能。 A组和B组利用各自的控制单元来接收读写控制部件的命令和CPU通过数据总线(D0~D7)送来的控制字,并根据他们来定义各个端口的操作方式。

3. 数据总线缓冲存储器

三态双向8位缓冲器,是8255A与8086CPU之间的数据接口。与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。

4. 读/写控制部件

8255A完成读/写控制功能的部件。能接收CPU的控制命令,并根据控制命令向各个功能部件发出操作指令。

CS 片选信号:由CPU输入,有效时表示该8255A被选中。 RD, WR 读、写控制信号:由CPU输入。RD有效表示CPU读8255A,WR有效表示CPU写8255A。RESET 复位信号:由CPU输入。RESET信号有

效,清除8255A中所有控制字寄存器内容,并将各个端口置成输入方式。

定义工作方式控制字:

工作方式0:8255A中各端口的基本输入/输出方式。

5.键盘输入模块

键盘是常用信息输入元件,其实键盘也是由一个个按钮组

成,如果是独立按钮的话必须要需要一个I/O口对它进行检测,

而键盘往往这需要键盘按钮数一半的I/O口数对它进行检测,也

许对一个比较简单的系统I/O口数一般不是问题,但对于一个大型、复杂的系统来说I/O资源就显得非常珍贵了,尽量减少I/O

使用是非常利于降低成本,另外一方面键盘比用独立按键要美

观,这也是键盘能够长期得到人们青睐的原因,可是硬件上的节

省必然导致软件上编程的复杂,那就来看看键盘到底使软件编程

有多复杂

下图是一个4*4键盘的结构图,它是四条I/O线作为行线,

四条I/O线作为列线组成的键盘。在键盘的行线和列线的每一个

交点上,设置一个按键,这样键盘中按键的个数是4*4个。这种

行列式键盘结构能够有效地提高单盘及系统中I/O口的利用率。

于是将键盘接8255A的PC口,至于为什么选择PC是有原因的,

进行键盘扫描一般要求有一部分的I/O口的工作方式是输入,另

一部分I/O是输出,具体到4*4键盘则要求4个I/O口输入,另

外4个输出,这一点PC口刚好符合,而PA、PB口要么全部输入

或输出,所以只能是PC口接键盘。

4*4键盘结构图

五、设计流程图

六、实验程序

DATA SEGMENT

X DB ,,, ;存放数据的每一位

X1 DW ;存放第一个数据值

X2 DW ;存放第二个数据值

Y DW ;存放运算结果

S DB ;存放运算符号值

E DB ;按下等号键标记

CC DB ;存放运算数据位数

H DB 0 ;存放按键行号

L DB 0 ;存放按键列号

DISCODE DB

3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H ,71H ;段码表

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AL,90H ;设置为A口输入,B口输出,C口输出

OUT 46H,AL

MOV DI,OFFSET X+3 ;DI指向X的高位KKK: CALL KEY ;扫描按键

JMP KKK

;以下为按键扫描子程序,程序返回后,在变量H和L中存放当前按键的行列号

KEY PROC CHECK: CALL DISP ;等待按键按下的同时进行显示

MOV AL,0F0H ;所有行输出低电平

OUT 44H,AL

IN AL,40H

CMP AL,0FFH ;读列值

JZ CHECK ;若都为高电平则无键按下,等待

MOV CX,50

LOOP $ ;延时消抖

IN AL,DX ;重读列值

CMP AL,0FFH

JZ CHECK ;无键按下一直等待

MOV H,0 ;有键按下,先把行列号变量清0

MOV L,0

MOV BL,01H

MOV BH,0FEH ;扫描法读键值:从第一行开始测试,即PC0输出低电平

NEXT: MOV AL,BH

OUT 44H,AL

NEXTH: IN AL,40H ;读列值,判断是第几列有键按下

TEST AL,BL ;从第一列开始判断

JZ WAIT0

ROL BL,1

CMP BL,10H ;当前行状态下没有任何列有键按下,则转为对下一行的测试

JZ NEXTL

INC H ;每判断一列,列号加1

JMP NEXTH ;再对下一列进行判断 NEXTL: MOV H,0

MOV BL,01H

ROL BH,1 ;对下一行测试,让下一个PC口输出低电平

CMP BH,0EFH

JZ EXIT

INC L

JMP NEXT

WAIT0: IN AL,40H ;若有键按下,则等该按键松开后再计算键值

CMP AL,0FFH

JNZ WAIT0

MOV CX,50

LOOP $ ;延时消抖

IN AL,40H

CMP AL,0FFH

JNZ WAIT0

CALL KEYVALUE ;调计算键值子程序

EXIT: RET

KEY ENDP

;以下为计算键值子程序,通过行列号计算键值(键值=列号*4+行号) ;键值存放在DL寄存器中

KEYVALUE PROC

MOV DL,L

MOV DH,H

SHL DL,1

SHL DL,1 ;列号乘4

ADD DL,DH

CMP DL,9 ;按下的是数字键

JNG NUM_CALL

CMP DL,14

JL CONT_CALL ;按下的是运算键

CMP DL,14

JZ OUTP_CALL ;按下的是等于键

CMP DL,15

JZ CLR_CALL ;按下的是清除键

NUM_CALL: CALL NUMBER ;调数字键处理子程序

JMP EXIT1

CONT_CALL: MOV S,DL ;存放运算键的键值

MOV E,0

CALL COUNT ;调运算键处理子程序,计算第一个加数

JMP EXIT1

OUTP_CALL: CALL OUTP ;调等号键处理子程序

JMP EXIT1

CLR_CALL: CALL CLEAR ;调清除键处理子程序

EXIT1: RET

KEYVALUE ENDP

;以下为清除键处理子程序,按下清除键后,X变量全部清0

CLEAR PROC

MOV X[3],0

MOV X[2],0

MOV X[1],0

MOV X[0],0

CALL BITP

RET

CLEAR ENDP

;以下为等号键处理子程序,该子程序负责将第二个运算数据的数值计算出来存入X2变量

;并根据运算符号,调用相应的运算子程序

OUTP PROC

PUSH AX

PUSH DX

PUSH BX

INC E

CALL COUNT ;调运算键处理子程序,计算第二个运算数据

CMP S,10

JZ ADD_CALL ;运算符为加号,则调用加法子程序

CMP S,11

JZ SUB_CALL ;运算符为减号,则调用减法子程序

CMP S,12

JZ MUL_CALL ;运算符为乘号,则调用乘法子程序

CMP S,13

CALL DIVP ;运算符为除号,则调用除法子程序

JMP STORE1

ADD_CALL: CALL ADDP

JMP STORE1

SUB_CALL: CALL SUBP

JMP STORE1

MUL_CALL: CALL MULP

STORE1: MOV AX,Y ;以下程序将各运算子程序返回的运算结果,按位分解,送入X变量

MOV DX,0

MOV BX,1000

DIV BX

MOV X[0], AL

MOV AX,DX

MOV BL,100

DIV BL

MOV X[1],AL

MOV AL,AH

MOV AH,0

MOV BL,10

DIV BL

MOV X[2],AL

MOV X[3],AH

POP BX

POP DX

POP AX

RET

OUTP ENDP

;以下为运算键处理子程序,该程序将第一个运算数据的数值计算出来并存入X1变量

;或者将第二个运算数据的数值计算出来并存入X2变量

;将运算符的值存入S变量

COUNT PROC

PUSH AX

PUSH BX

PUSH DX

MOV DX,0

CALL BITP ;测试X中的数据是多少位

CMP CC,4 ;输入的数据是4位数?

JZ C4

CMP CC,3 ;输入的数据是3位数?

JZ C3

CMP CC,2 ;输入的数据是2位数?

JZ C2

JMP C1 ;输入的数据是1位数?

C4: MOV AX,0

MOV AL,X[0]

MOV BX,1000

MUL BX

MOV DX,AX

C3: MOV AL,X[1]

MOV BL,100

MUL BL

C2: MOV AL,X[2]

MOV BL,10

MUL BL

ADD DX,AX

C1: MOV AL,X[3]

MOV AH,0

ADD DX,AX

CMP E,1

JNZ X1_S

MOV X2,DX ;按下的是等号,则将第二个运算数据的值存入X2变量

JMP EXIT3

X1_S: MOV X1,DX ;按下的是运算符号,则将第一个运算数据的值存X1变量

MOV X[3],0 ;清空X变量

MOV X[2],0

MOV X[1],0

MOV X[0],0

EXIT3: POP DX

POP BX

POP AX

RET

COUNT ENDP

;以下为数字键处理子程序

;该程序,将输入的数据按位存放在X变量中,并由CC记录数据的位数 NUMBER PROC

CMP E,1

JNZ CONTINUE

MOV E,0

CALL CLEAR

CONTINUE: CMP CC,0 ;目前数据为0位,即没有数据,则转到SSS

JZ SSS

;若已有数据,以下程序将X左移8位。

;例如:先输入“1”,当再输入2时,

;先要将“1”从个位移到十位,然后再将“2”存放到个位

PUSH AX

PUSH DX

MOV AL,X[3]

MOV AH,X[2]

MOV DL,X[1]

MOV DH,X[0]

MOV CX,8

LL: SHL AX, 1

RCL DX,1

LOOP LL

MOV X[3],AL

MOV X[2],AH

MOV X[0],DH

POP DX

POP AX

SSS: MOV [DI],DL ;将当前键入的数据存放到X的最低位

INC CC ;数据位数加1

CMP CC,4 ;判断数据位数

JNG EXIT2

MOV CC,0 ;如果数据超过4位,重新从最低位开始存放

MOV X[2],0

MOV X[1],0

MOV X[0],0

EXIT2: CALL DISP ;调显示子程序,显示输入的数据

RET

NUMBER ENDP

;加法子程序

ADDP PROC

PUSH AX

MOV AX,X1

ADD AX,X2

MOV Y,AX

POP AX

RET

ADDP ENDP

;减法子程序

SUBP PROC

PUSH AX

MOV AX,X1

SUB AX,X2

MOV Y,AX

POP AX

RET

SUBP ENDP

;乘法子程序

MULP PROC

PUSH AX

PUSH DX

MOV AX,X1

MOV DX,X2

MUL DX

MOV Y,AX

POP DX

POP AX

RET

MULP ENDP

;除法子程序

DIVP PROC

PUSH AX

PUSH BX

PUSH DX

MOV DX,0

MOV AX,X1

MOV BX,X2

DIV BX

MOV Y,AX

POP DX

POP BX

POP AX

RET

DIVP ENDP

;显示子程序,将X中的数值按位显示出来

DISP PROC

PUSH BX

PUSH AX

MOV BH,0

LEA SI,DISCODE

CALL BITP ;测试X位数 CMP CC,4

JZ QIAN

CMP CC,3

JZ BAI

CMP CC,2

JZ SHI

CMP CC,1

JMP G

JMP NONE

MOV AL,AH

OUT 44H,AL

MOV BL,X[0]

MOV AL,[SI+BX]

OUT 42H,AL

CALL DELY

MOV AL,0

OUT 42H,AL

MOV AL,AH

OUT 44H,AL

MOV BL,X[1]

MOV AL,[SI+BX]

OUT 42H,AL

CALL DELY

MOV AL,0

OUT 42H,AL

MOV AL,AH

OUT 44H,AL

MOV BL,X[2]

MOV AL,[SI+BX]

OUT 42H,AL

CALL DELY

MOV AL,0

OUT 42H,AL

G: MOV AH,01110000B ;从第1位开始显示

MOV AL,AH

OUT 44H,AL

MOV BL,X[3]

MOV AL,[SI+BX]

OUT 42H,AL

CALL DELY

JMP EXIT4

NONE: MOV AL,0 ;X中没有数据,不显示

OUT 42H,AL

EXIT4: POP AX

POP BX

RET

DISP ENDP

;分析数据位数子程序

BITP PROC

CMP X[0],0 ;如果X[0]不为0,则数据为4位数

JNZ FOURBIT

CMP X[1],0 ;如果X[1]不为0,则数据为3位数

JNZ THREEBIT

CMP X[2],0 ;如果X[2]不为0,则数据为2位数

JNZ TOWBIT

CMP X[3],0 ;如果X[3]不为0,则数据为1位数

JNZ ONEBIT

JMP ZER0BIT ;否则,没有数据

FOURBIT: MOV CC,4

JMP EXIT5

THREEBIT: MOV CC,3

JMP EXIT5

TOWBIT: MOV CC,2

JMP EXIT5

ONEBIT: MOV CC,1

JMP EXIT5

ZER0BIT: MOV CC,0

EXIT5: RET

BITP ENDP

;延时子程序

DELY PROC

PUSH CX

MOV CX,100

LOOP $

POP CX

RET

DELY ENDP

CODE ENDS

END START

七、课程设计心得与体会

通过本次综合设计,我们组分工负责不同的部分,实现不同的功能,并且将最近所学的内容复习了一遍,对课程内容的理解也有所加深。本次实验的代码大部分来源于网络,但是我们对其中部分代码进行了修改,使其得到了优化。并且认真把代码分析了一遍理解了每一步的设计思路和方法。总的来说我们完成了本次综合设计全部内容。

希望以后可以有更多的机会,有更大的平台,提供给我起使我在短短的有限的大学生活中学习更多更有用的知识,收获更多实践性的技巧,可以为将来的工作打下良好的基础,可以为自己以后的未来铺下更好的台阶

八、Protuse硬件仿真结构图

计算器模拟系统设计-毕业设计

计算器模拟系统设计 学生:XXX 指导教师:XXX 内容摘要:本设计是基于51系列的单片机进行的简易计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED 上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件选择AT89C51单片机和 74lS164,输入用4×4矩阵键盘。显示用5位7段共阴极LED静态显示。软件从分析计算器功能、流程图设计,再到程序的编写进行系统设计。选用编译效率最高的Keil 软件用汇编语言进行编程,并用proteus仿真。 关键词:LED 计算器 AT89C51芯片 74LS164

Calculator simulation system desig n Abstract:The design is a simple calculator based on 51 series microcontroller system design, to complete the calculator keyboard input, add, subtract, multiply, and in addition to three unsigned numeric simple four operations, and the corresponding result will be displayed on the LED. The design process of hardware and software aspects of the synchronous design. Hardware choose AT89C51 microcontroller and 74ls164--enter the 4 × 4 matrix keyboard. Static display with five 7-segment common cathode LED display. Software calculator function from the analysis, flow charts, design, and then program the preparation of system design. Selected to compile the most efficient Keil software in assembly language programming, and with proteus simulation. Keywords: LED calculator AT89C51 chip 74LS164

(整理)较为全面的基于PROTEUS仿真51单片机动态数码管课程设计(WORD版)

单片机课程设计 题目动态数码管显示 学院机电工程学院 专业班级电子信息工程12-1班 姓名 组员 指导教师张、王老师 2015 年 5 月30 日

课程设计量化评分标准

目录 一、概述 (1) 1. 单片机简介 (1) 2. Proteus简介 (2) 3. 设计任务与要求 (3) 二、硬件设计 (3) 1. 单片机最小系统设计 (1) 2. 数码管显示部分 (4) 3. 数码管驱动部分 (5) 三、软件设计 (6) 1. 仿真原理图 (6) 2. 仿真参数设置 (6) 3. 仿真结果 (7) 4. 程序流程图 (8) 5. 程序代码.................................................... .9 四、心得体会............................................... (11) 五、参考文献 (12)

精品文档 一、概述 1. 单片机简介 如图1.1和图1.2分别为PDI P封装的AT89C52引脚图和实物图 图1.1 引脚图图1.2 实物图 AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。 AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。本课程设计中使用的是PDIP封装的AT89C52单片机。 2.Proteus简介 如图1.3为Proteus7.0的工作界面图

计算机仿真技术的发展概述及认识

计算机仿真技术的发展概述及认识 摘要:随着经济的发展和社会的进步,计算机技术高速发展,使人类社会进入了信息时代,计算机作为后期新秀渗入到人们生活中的每一个领域,给人们的生活带来了前所未有的变化。作为新兴的技术,计算机技术在人类研究的各个领域起到了只管至关重要的作用,帮助人类解决了许多技术难题。在科研领域,计算机技术与仿真技术相结合,形成了计算机仿真技术,作为人们科学研究的一种新型方法,被人们应用到各个领域,用来解决人们用纯数学方法或者现实实验无法解决的问题,对科研领域技术成果的形成有着积极地促进作用。 本文在计算机仿真技术的理论思想基础上,分析了计算机仿真技术产生的基本原因,也就是人们用计算机模拟解决问题的优点所在,讨论了模拟、仿真、实验、计算机仿真之间的联系和区别,介绍了计算机仿真技术的发展历程,并查阅相关资料介绍了计算机仿真技术在不同领域的应用,分析并预测了计算机仿真的未来发展趋势。经过查阅大量数据资料并加以分析对比,这对于初步认识计算机仿真技术具有重要意义。 关键词:计算机仿真;模拟;仿真技术;发展 一、引言 计算机仿真技术是以多种学科和理论为基础,以计算机及其相应的软件为工具,通过虚拟试验的方法来分析和解决问题的一门综合性技术。计算机仿真(模拟)早期称为蒙特卡罗方法,是一门利用随机数实验求解随机问题的方法。其原理可追溯到1773年法国自然学家G.L.L.Buffon为估计圆周率值所进行的物理实验。根据仿真过程中所采用计算机类型的不同,计算机仿真大致经历了模拟机仿真、模拟-数字混合机仿真和数字机仿真三个大的阶段。20世纪50年代计算机仿真主要采用模拟机;60年代后串行处理数字机逐渐应用到仿真之中,但难以满足航天、化工等大规模复杂系统对仿真时限的要求;到了70年代模拟-数字混合机曾一度应用于飞行仿真、卫星仿真和核反应堆仿真等众多高技术研究领域;80年代后由于并行处理技术的发展,数字机才最终成为计算机仿真的主流。现在,计算机仿真技术已经在机械制造、航空航天、交通运输、船舶工程、经济管理、工程建设、军事模拟以及医疗卫生等领域得到了广泛的应用。 二、基本概念 模拟:(Simulation)应用模型和计算机开展地理过程数值和非数值分析。不是去求系统方程的解析解,而是从系统某初始状态出发,去计算短暂时间之后接着发生的状态,再以此为初始状态不断的重复,就能展示系统的行为模式。模拟是对真实事物或者过程的虚拟。模拟要表现出选定的物理系统或抽象系统的关键特性。模拟的关键问题包括有效信息的获取、关键特性和表现的选定、近似简化和假设的应用,以及模拟的重现度和有效性。可以认为仿真是一种重现系统外在表现的特殊的模拟。 仿真:(Emulation)利用模型复现实际系统中发生的本质过程,并通过对系统模型的实验来研究存在的或设计中的系统,又称模拟。即使用项目模型将特定于某一具体层次的不确定性转化为它们对目标的影响,该影响是在项目仿真项目

AVR proteus课程设计全套答案

A VR proteus课程设计题目具体要求 所有项目都有完整的代码和报告,有意者联系dyss@https://www.sodocs.net/doc/513930460.html, 一、总体要求: 每组学生根据分配的题目认真进行硬件和软件的仿真设计,其中基本要求属于必做项,发挥部分作为提高要求。 本次A VR软件设计主要为下学期A VR课程设计(使用A Tmega128开发板)作准备。二、分类要求: 1、函数信号发生器类 基本要求: 1 用存储器或算法得到信号源,将获得的信号源存储在程序存储器中。 2 将程序存储器中的信号源全部取出存放在A Tmega128的内部存储器中,并用 DA转换器输出一函数信号(正弦、方波、三角、锯齿等,频率1000Hz),可 以用示波器进行波形观察。 3 用数码管或LCD或虚拟终端显示输出参数。 4 用功能键切换各信号的输出。 发挥部分: 1通过键盘,可改变波形的频率。每按一次键,频率值前进进或后退1倍,频率范围不限。 2通过按键可以修改输出波形的幅度。 3数码管或LCD或虚拟终端显示的内容可以用频率值和周期值切换表示。 4同时用两种不同方式显示输出参数 动态显示格式: 自定 2、频率计类 基本要求: 1频率的测量范围为250hz-10khz。 2使用proteus模拟信号激励源直接产生待测方波信号,用一组数码管或LCD或虚拟终端显示该信号的频率、周期以及脉宽等参数,并用示波器或定时/计数器观察 输入信号。 3将待测信号接至A Tmega128定时/计数器的外部信号输入端,测量此方波信号的频率、周期和脉宽,在另一组数码管或LCD上或虚拟终端上将参数值显示出来。 4信号源的参数可任选LED 、LCD或虚拟终端显示,测量得到的参数按题目要求选择显示方式。 发挥部分: 1放宽频率测量范围,并根据频率的不同智能选择不同的测量方法,以提高测量精度。 2可选用定时器/计数器的输入捕捉功能,以提高周期测量精度。 动态显示格式: 自定

51单片机的简单计算器设计和仿真

基于单片机的简易计算器设计与仿真

设计题目:基于单片机的简易计算器设计与仿真 一、设计实验条件: 地点:自动化系实验室 实验设备:PC机(装有Keil;Protues;Word ;Visio ) 二、设计任务: 本系统选用AT89C51单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计,具体设计如下: (1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LCD 显示数据和结果。 (2)采用键盘输入方式,键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键(on\c)和等号键(=),故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示围时,计算器会在LCD上提示overflow;当除数为0时,计算器会在LCD上提示error。 设计要求:分别对键盘输入检测模块;LCD显示模块;算术运算模块;错误处理及提示模块进行设计,并用Visio画系统方框图,keil与protues仿真 分析其设计结果。 三、设计时间与设计时间安排:

1、设计时间:6月27日~7月8日 2、设计时间安排: 熟悉课题、收集资料:3天(6月27日~6月29日) 具体设计(含上机实验):6天(6月30日~7月5日) 编写课程设计说明书:2天(7月6日~7月7日) 答辩:1天(7月8日) 四、设计说明书的容: 1、前言:(自己写,组员之间不能相同,写完后将红字删除,排版时注意对齐) 本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除基本四则运算,并在LCD上显示相应的结果;设计电路采用AT89C51单片机为主要控制电路,利用MM74C922作为计算器4*4键盘的扫描IC读取键盘上的输入;显示采用字符LCD静态显示;软件方面使用C语言编程,并用PROTUES仿真。 2、设计题目与设计任务: 现实生活中人们熟知的计算器,其功能主要如下:(1)键盘输入;(2)数值显示;(3)加、减、乘、除四则运算;(4)对错误的控制及提示。 针对上述功能,计算器软件程序要完成以下模块的设计:(1)键盘输入检测模块;(2)LCD显示模块;(3)算术运算模块;(4)错误处理及提示模块。 3、主体设计部分: (1)、系统模块图:

PROTEUS 课程设计

课程设计任务书 学生姓名:专业班级:电子1102班 指导教师:工作单位:信息工程学院 题目:方波发生电路 初始条件: 计算机、Proteus软件、Cadence软件 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写 等具体要求) 1、课程设计工作量:1.5周 2、技术要求: (1)学习Proteus软件和Cadence软件。 (2)设计一个方波发生电路。 (3)利用Cadence软件对该电路设计原理图并进行PCB制版,用Proteus软件对该电路进行仿真。 3、查阅至少5篇参考文献。按要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。 时间安排: 2015.1.12做课设具体实施安排和课设报告格式要求说明。 2015.1.12-1.15学习Proteus软件和Cadence软件,查阅相关资料,复习所设计内容的基本理论知识。 2015.1.16-1.20对方波发生电路进行设计仿真工作,完成课设报告的撰写。 2015.1.21提交课程设计报告,进行答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要.....................................................................................................I Abstract................................................................................................II 1绪论.. (1) 2方案论证 (2) 3利用Proteus软件进行电路设计及仿真 (5) 4利用Cadence软件进行电路设计及PCB绘制 (9) 4.1电路原理图设计 (9) 4.2PCB设计 (10) 5心得体会 (13) 参考文献 (14)

proteus闹钟课程设计

题目:闹钟的设计 学生姓名:黄书林 学生学号: 1114010110 系别:电气信息工程学院 专业:自动化 年级: 11 级 任课教师:张水锋 电气信息工程学院制 2013年10月

目录 摘要 (2) 课程任务与要求 (2) 方案论证 (2) 闹钟流程图 (3) 单元电路: (6) 单片机芯片 (6) 八位数码管显示电路 (7) 闹钟调节按键电路 (9) 晶振电路 (10) 复位电路 (10) 蜂鸣器体相电路 (11) 总图: (12) 心得体会 (13) 参考文献 (13) 附录 (13)

闹钟的设计 学生:黄书林 指导教师:张水锋 电气信息工程学院自动化 摘要 通过学习《基于Proteus的51系列单片机设计与仿真》让我知道我们不仅需要有过硬的理论知识,还应该有动手实践的能力。并且是将理论结合实际, 提升到应用层面。以后走上社会,还是会有很多新的知识是需要我们学习的,届时需要我们有比较强的自学能力。此次《基于Proteus的51系列单片机设计与仿真》课程设计。对理论结合实际的动手能力和自学能力有很强的体现。本次设计是基于 AT89C51 单片机的数字闹钟的设计。 关键词:数字闹钟 AT89C51 Proteus。 课程任务与要求 本次课程的任务就是要以51系列单片机为核心设计一个闹钟,它能通过单片机实现秒、分、小时的进位24 小时制,将当前时分秒在七段 LED 显示器上显示。可设置闹钟的时间当前值对准一时间,设置闹铃时间,闹铃功能的关闭和开放。 要求:通过Proteus软件来实现设计的仿真,提高自己的编程水平,增加设计兴趣。通过做自己喜欢的设计,提高自学能力。为以后毕业走上工作岗位打下坚实的基础。 二方案论证 经分析,计算器电路包括三个部分:显示部分八位数码管、闹钟时钟按键、 单片机电路。具体分析如下: 1 显示部分 1.1 LCD显示 LCD1602作为一个成熟的产品,使用简单,模式固定,便于移植到各种类型的程序,微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,价格大概15块钱左右。 1.2数码管显示 数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七

基于8086与Proteus仿真的44键盘计算器的设计

基于8086与Proteus仿真的4*4键盘计算器的设计 一、设计目的 本次课程设计的实验目的是通过该实验掌握较复杂程序的设计。能够独立完成用程序对8086、8255控制键盘和LED显示的控制,完成计算器加减法的应用。独立编写程序,明白和掌握程序的原理和实现方式。为以后的设计提供经验。学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。 二、设计内容 设计计算器,要求至少能完成多位数的加减乘除运算。独立完成用程序对8086、8255控制键盘和LED显示的控制,完成计算器加减乘除的应用。 三、设计原理与硬件电路 设计的思路是:首先利用程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就停止扫描,完成输入,利用汇编的程序核对输入键的数值,通过调用子程序完成数据的储存或者是加减的运算。运算完成后将运算的结果储存并显示到LED显示器上。 各部分硬件功能:

可编程并行通信接口芯片8255A 8255A内部结构:1. 并行输入/输出端口A,B,C 8255A内部包括三个8位的输入输出端口,分别是端口A、端口B、端口C,相应信号线是PA7~PA0、PB7~PB0、PC7~PC0。端口都是8位,都可以作为输入或输出。通常将端口A和端口B定义为输入/输出的数据端口,而端口C则既可以作数据端口,又可以作为端口A和端口B的状态和控制信息的传送端口。 2.A组和B组控制部件 端口A和端口C的高4位(PC7~PC4)构成A组;由A组控制部件实现控制功能。端口B和端口C的低4位(PC3~PC0)构成B组;由B组控制部件实现控制功能。 A组和B组利用各自的控制单元来接收读写控制部件的命令和CPU通过数据总线(D0~D7)送来的控制字,并根据他们来定义各个端口的操作方式。 3. 数据总线缓冲存储器 三态双向8位缓冲器,是8255A与8086CPU之间的数据接口。

基于proteus的数字电子钟的仿真设计

题目:基于Proteus的数字电子钟的设计 与仿真 课程名称:单片机系统设计与Proteus仿真 学生姓名:马珂 学生学号: 1305010323 系别:电子工程学院 专业:通信工程 年级: 13级 任课教师:徐锋 电子工程学院 2015年5月

目录 一、设计目的与要求 (3) 二、设计内容与方案制定 (3) 三、设计步骤 (3) 1.硬件电路设计 (3) 1.1.硬件电路组成框图 (3) 1.2.各单元电路及工作原理 (4) 1.3.绘制原理图 (5) 1.4.元件清单列表 (6) 2.程序设计 (6) 2.1程序流程 (6) 2.2汇编程序 (7) 四、调试与仿真 (12) 五、心得体会 (14) 六、参考文献: (14)

基于Proteus的数字电子钟的设计与仿真 一、设计目的与要求 设计目的:通过课程设计,培养学生运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。 设计要求:设计一个时、分可调的数字电子钟、开机显示“9-58-00”。 二、设计内容与方案制定 具有校时功能,按键控制电路其中时键、分键两个键分别控制时、分时间的调整。按分键分加1;按时键时加1。 以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。 三、设计步骤 1、硬件电路设计 1.1.硬件电路组成框图 1.2.各单元电路及工作原理 (1)晶振电路 单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中

AT89C51单片机采用内部时钟方式。采用外接晶体和电容组成的并联谐振回路。其电路图如下: (2)键盘控制电路 键盘可实现对时间的校对,用两个按键来实现。按时键来调节小时的时间,按分键来调节分针的时间。其电路连接图如下: (3)显示电路 LED显示器是现在最常用的显示器之一发光二极管(LED)分段式显示器由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,采用动态显示方式显示时间,其硬件连接方式如下图所示。

基于单片机的简易计算器设计与仿真

专业课程设计 ————基于单片机的简易计算器设计与仿真 学院:电气工程学院 班级:10自动化1班 学号:P101813378 姓名:陈辉、马维谦 指导老师:吴韬

基于单片机的简易计算器设计与仿真 摘要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。 计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89C52 单片机、LCD显示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及C语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。掌握Microsoft Visual C++ 6.0应用程序开发环境,常用的LCD显示器的使用方法和一般键盘的使用方法。 关键字:AT89S51 LCD 控制按键

目录 第一章绪论.................................................................................. 4 1.1 课题简介 .......................................................................... 4 1.2 设计目的 .......................................................................... 4 1.3 设计任务 .......................................................................... 4 2.1 单片机发展现状 .............................................................. 5 2.2 计算器系统现状 .............................................................. 62.3 MCS-51系列单片机简介 ...................................................... 7 2.4 矩阵按键 ...................................................................... 11 2.5 计算器设计总体思想 .................................................. 11第三章硬件系统设计 ............................................................. 12 3.1 键盘接口电路 .............................................................. 12 3.2 LCD显示模块 ............................................................... 13 3.3 运算模块 ...................................................................... 14 4.1 汇编语言和C语言的特点及选择 ................................... 144.2 键扫程序设计 ................................................................... 14 4.3 算术运算程序设计 ...................................................... 15 4.4 显示程序设计 .............................................................. 16第五章系统调试与存在的问题 ............................................. 17 5.1 硬件调试............................................................................ 175.2 软件调试............................................................................ 17参考文献.................................................................................... 19

proteus课程设计

沈阳航空航天大学电子信息工程学院 电子设计应用软件训练 总结报告 学生姓名: 专业: 班级: 学号: 指导教师: 训练时间:2013年7月8日至2013年7月12日 电子信息工程学院电子设计应用软件训练任务 【训练任务】:

1、熟练掌握PROTEUS软件的使用; 2、按照设计要求绘制电路原理图; 3、能够按要求对所设计的电路进行仿真; 【基本要求及说明】: 1、按照设计要求自行定义电路图纸尺寸; 2、设计任务如下: 51单片机内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,将其数值P1口驱动LED灯上显示出来,由按键产生计数脉冲,LED 分别显示脉冲个数(10个以内)。 3、按照设计任务在Proteus 6 Professional中绘制电路原理图; 4、根据设计任务的要求编写程序,在Proteus下进行仿真,实现相应功能。 成绩: 一、任务说明 51单片机内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚

进行计数,将其数值P1口驱动LED灯上显示出来,由按键产生计数脉冲,LED分别显示脉冲个数(10个以内)。按照设计任务在Proteus 6 Professional中绘制电路原理图。 根据设计任务的要求编写程序,在Proteus下进行仿真,实现相应功能。 二、PROTEUS软件的使用 1、软件概述: Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。④具有强大的原理图绘制功能。总之,该软件是一款集单机和SPICE分析于一身的仿真软件,功能极其强大。 图1 proteus工作界面 2、对象的添加和放置 点击工具箱的元器件按钮,使其选中,再点击IsIs对象选择器左边中间的置P 按钮,出现“Pick Devices”对话框。在这个对话框里我们可以选择元器件和一些

《计算机仿真技术》试题(含完整答案)

、数值计算,编程完成以下各题(共20分,每小题5 分) 1、脉冲宽度为d,周期为T的矩形脉冲的傅里叶级数如下式描述: d[i.^= sin(^d/T)cos(^:n.) T n」n rd /T 当n =150,d..「T =1;4,- 1/2 :::.::: 1/2,绘制出函数f(.)的图形。 解: syms n t; f=((si n(n *pi/4))/( n*pi/4))*cos(2*pi* n*t); s=symsum(f, n,1,150); y=(1+2*s)/4; x=-0.5:0.01:0.5; Y=subs(y,'t',x); plot(x,Y) 2 0 05x2 5 ■ 5 2、画出函数f (x)二(sin 5x) e .- 5x cos1.5x 1.5x 5.5 x 在区间[3, 5]的图形,求出该函数在区间[3, 5]中的最小值点X min和函数的最小值f min . 解:程序如下 x=3:0.05:5; y=(si n(5*x).A2).*exp(0.05*x.A2)-5*(x.A5).*cos(1.5*x)+1.5*abs(x+5.5)+x.A2.5; mix_where=fi nd(y==mi n(y)); xmin=x(mix_where); hold on; plot(x,y); plot(xmi n,min (y),'go','li newidth',5); str=strcat('(' ,nu m2str(xmi n),',' ,nu m2str(mi n(y)),')'); text(xmi n,min (y),str);

Ylabel('f(x)') 经过运行后得到的图像截图如下: 运行后的最小值点X min =4.6 , f m in = -8337.8625 3、画出函数f (x) = cos2x「e^'x — 2.5 X在口,3]区间的图形, 解该非线 并用编程求性方程 f (x) = 0的一个根,设初始点为X o = 2 . 解: x=1:0.02:3; x0=2; y=@(x)(cos(x).A2).*exp(-0.3*x)-2.5*abs(x); fplot(y,[1,3]); Xlabel('x') Ylabel('f(x)') X仁fzero('(cos(x).A2).*exp(-0.3*x)-2.5*abs(x)',x0) 运行后求得该方程的一个根为z=0.3256 。 4、已知非线性方程组如下,编程求方程组的解,设初始点为[1 0.5 -1].

VerilogHDL简单计算器设计

目录 第一章设计目的及任务要求..................................................................................... 错误!未定义书签。 设计目的................................................... 错误!未定义书签。 设计任务................................................... 错误!未定义书签。 课设要求................................................... 错误!未定义书签。第二章设计思路............................................... 错误!未定义书签。 设计总体框图............................................... 错误!未定义书签。 设计原理................................................... 错误!未定义书签。 计算其原理............................................. 错误!未定义书签。 数码显示原理........................................... 错误!未定义书签。 八位数码管扫描的原理................................... 错误!未定义书签。第三章设计源程序及分析....................................... 错误!未定义书签。 计算器模块................................................. 错误!未定义书签。 计算器源程序........................................... 错误!未定义书签。 计算器程序分析......................................... 错误!未定义书签。 数码管显示部分...................................................................................................... 错误!未定义书签。 数码管显示源程序.......................................................................................... 错误!未定义书签。 数码管显示程序分析..................................................................................... 错误!未定义书签。 循环扫描模块........................................................................................................... 错误!未定义书签。 循环扫描程序................................................................................................... 错误!未定义书签。 循环程序分析................................................................................................... 错误!未定义书签。 总程序及其分析...................................................................................................... 错误!未定义书签。第四章时序仿真和结果验证..................................................................................... 错误!未定义书签。

电力电子系统的计算机仿真

《电力电子系统的计算机仿真》题目:方波逆变电路的计算机仿真

电力电子技术综合了电子电路、电机拖动、计算机控制等多学科知识,是一门实践性和应用性很强的课程。由于电力电子器件自身的开关非线性,给电力电子电路的分析带来了一定的复杂性和困难,一般常用波形分析的方法来研究。仿真技术为电力电子电路的分析提供了崭新的方法。 我们在电力电子技术课程的教学中引入了仿真,对于加深学生对这门课程的理解起到了良好的作用。掌握了仿真的方法,学生的想法可以通过仿真来验证,对培养学生的创新能力很有意义,并且可以调动学生的积极性。实验实训是本课程的重要组成部分,学校的实验实训条件毕竟是有限的,也受到学时的限制。而仿真实训不受时间、空间和物质条件的限制,学生可以在课外自行上机。仿真在促进教学改革、加强学生能力培养方面起到了积极的推动作用。 【关键字】电力电子,MATLAB,仿真。

第一章电力电子与MATLAB软件的介绍 一、电力电子概况 二、MATLAB软件介绍 第二章电力电子器件介绍 一、电力二极管特性介绍 二、晶闸管特性介绍 三、IGBT特性介绍 第三章主电路工作原理 一、单相桥式逆变电路 二、三相桥式逆变电路 三、PWM控制基本原理 第四章仿真模型的建立 一、单极性SPWM触发脉冲波形的产生 二、双极性SPWM触发脉冲波形的产生 三、单极性SPWM方式下的单相桥式逆变电路 四、双极性SPWM方式下的单相桥式逆变电路第五章仿真结果分析 第六章心得体会 第七章参考文献

第一章电力电子与MATLAB软件的 介绍 一、电力电子概况 电力电子技术是一门新兴的应用于电力领域的电子技术,就是使用电力电子器件(如晶闸管,GTO,IGBT等)对电能进行变换和控制的技术。电力电子技术所变换的“电力”功率可大到数百MW甚至GW,也可以小到数W甚至1W以下,和以信息处理为主的信息电子技术不同电力电子技术主要用于电力变换。 电力电子技术分为电力电子器件制造技术和交流技术(整流,逆变,斩波,变频,变相等)两个分支。 一般认为,电力电子技术的诞生是以1957年美国通用电气公司研制出的第一个晶闸管为标志的,电力电子技术的概念和基础就是由于晶闸管和晶闸管变流技术的发展而确立的。此前就已经有用于电力变换的电子技术,所以晶闸管出现前的时期可称为电力电子技术的史前或黎明时期。70年代后期以门极可关断晶闸管(GTO),电力双极型晶体管(BJT),电力场效应管(Power-MOSFET)为代表的全控型器件全速发展(全控型器件的特点是通过对门极既栅极或基极的控制既可以使其开通又可以使其关断),使电力电子技术的面貌焕然一新进入了新的发展阶段。80年代后期,以绝缘栅极双极型晶体管(IGBT 可看作MOSFET和BJT的复合)为代表的复合型器件集驱动功率小,开关速度快,通态压降小,在流能力大于一身,性能优越使之成为现代电力电子技术的主导器件。为了使电力电子装置的结构紧凑,体积减小,常常把若干个电力电子器件及必要的辅助器件做成模块的形式,后来又把驱动,控制,保护电路和功率器件集成在一起,构成功率集成电路(PIC)。目前PIC的功率都还较小但这代表了电力电子技术发展的一个重要方向 利用电力电子器件实现工业规模电能变换的技术,有时也称为功率电子技术。一般情况下,它是将一种形式的工业电能转换成另一种形式的工业电能。例如,将交流电能变换成直流电能或将直流电能变换成交流电能;将工频电源变换为设备所需频率的电源;在正常交流电源中断时,用逆变器(见电力变流器)将蓄电池的直流电能变换成工频交流电能。应用电力电子技术还能实现非电能与电能之间的转换。例如,利用太阳电池将太阳辐射能转换成电能。与电子技术不同,电力电子技术变换的电能是作为能源而不是作为信息传感的载体。因此人们关注的是所能转换的电功率。 电力电子技术是建立在电子学、电工原理和自动控制三大学科上的新兴学科。因它本身是大功率的电技术,又大多是为应用强电的工业服务的,故常将它归属于电工类。电力电子技术的内容主要包括电力电子器件、电力电子电路和电力电子装置及其系统。电力电子器件以半导体为基本材料,最常用的材料为单晶硅;它的理论基础为半导体物理学;它的工艺技术为半导体器件工艺。近代新型电力电子器件中大量应用了微电子学的技术。电力电子电路吸收了电子学的理论基础,根据器件的特点和电能转换的要

Proteus花样流水灯课程设计

Proteus花样流水灯课程设计

课程论文 题目:基于51单片机LED流水灯设计 课程名称: 学生姓名: 学生学号: 系别: 专业: 年级: 任课教师: 电气信息工程学院制 1月 基于51单片机的LED流水灯设计

1 单片机AT89C51芯片简介 MCS-51兼容4K字节,可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:。全静态工作:0Hz—24Hz,三级程序存储器锁定。128*8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源可编程串行通道,低功耗的闲置和掉电模式,片内震荡器和时钟电路。 图1 AT89C51芯片

1.1电源引脚 Vcc(40脚):典型值+5V。 Vss(20脚):接低电平。 1.2外部晶振 XTAL1、XTAL2分别与晶振两端相连接。 1.3输入输出口引脚 P0口:I/O双向口。作输入口时,应先软件置“1”. P0口:是一个8位漏极开路输出型双向I/O端口。作为输出端口时,每位能以吸收电流的方式驱动8 个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。 1.4控制引脚 RST、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。 RST (9脚):复位信号输入端(高电平有效)。ALE/-PROG(30脚):地址锁存信号输出端.第一功能:编程脉冲输入。-PSEN(29脚):外部程序存储器读选通信号。-EA/Vpp(31脚):外部程序存储器使能端。第二功能:编程电压输入端(+21V)。 2硬件电路 2.1晶振电路 单片机晶振的作用是为系统提供基本的时钟信号。一般一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使

课程设计—模拟计算器设计..

嵌 入 式 课 程 设 计 课题:基于uCOS/uCGUI的模拟计算器实现报告:张昌世自动化091 109031027 小组成员:刘锋自动化091 109031023 陈奇英自动化091 109031001 彭桂贤自动化091 109031002 指导老师:陈才

摘要: 计算器这一小小的程序机器实际上是从计算机中割裂出来的衍生品,但因其方便快捷的操作模式,已经被广泛应用于工程、学习、商业等日常生活中,极大的方便了人们对于数字的整合运算。现今的计算器已经不仅仅停留在传统的硬件上,而是越来越软件化,它可以在手机里,在电脑上,在许许多的的电子产品上。所以有必要在自己平时学习的开发板上做个带界面显示的计算器来证明下自己的能力。 引言: 简单的计算器包括0~9的数字输入键,小数点输入键,+、-*、/、=运算键等,还可以加入其他运算:如三角运算(sin,cos,tan,cot等),一些当木运算(平方,开方,阶乘等)。由于条件和能力有限,所以就做个能实现四则运算的简易计算器。 计算器的程序设计实际上富有一定的难度,虽然乍一想很简单,只要实现下加减乘除运算,然后显示出来就可以了,但实际上运算结果跟图像界面的数据交换,还有浮点数的处理等都很折腾人。通过本次设计,体会到了学习的不易,还有自己能力上的不足! 一、课题描述: 在STM32开发板上实现简易的计算器。计算器界面显示在TFT彩屏上,采用触摸屏上模拟按钮来实现数据及运算符的输入。最后把运算的结果显示在彩屏。最基本要求:有加减乘除运算,有带小数点的运算。 二、课题分析 a)、硬件要求: 处理器选择:STM32F103ZE,这款处理器具有512K的flash,64K的RAM,足够大的空间,可以让程序员的可以有更大的发挥空间,而不用为节省空间而上脑筋。 TFT彩屏:带触摸的TFT彩屏,3.2寸,分辨为240*320的真彩彩屏。 JLink仿真器:使用JLink v8仿真器,仿真器能够下载程序、在线仿真,便于程序编写与错误检查。 b)、软件要求: 操作系统:使用uC/OS嵌入式实时操作系统。由于触屏要实时响应,所以需要使用操作系统,并给触屏专门建立一个任务。CPU其他的操作组成一个任务。程序在两个任务中相互切换。 图形软件:使用uCGUI嵌入式图形界面软件。uCGUI是个小型的图形软件,包括有基本的图形显示,还有许多图形控件,如:按钮,编辑框,窗口,滚动条等等,而我们的计算器的制作就要用到其中的按钮、编辑框和窗口3个控件。 固件库:STM32编程,可以使用固件库,ST公司提供STM32处理器的固件库,以方便程序员编程,缩短了项目的编程周期。 c)、设计方案:

相关主题