1、简易计算机系统设计目 录课程设计任务书I摘要1关键词1引言21 课程设计用的仪器和器件 31.1 单片机的选择方案和论证31.2 显示器的选择方案和论证31.3 按键部分的选择方案和论证32 课程设计方法和内容33 元件介绍43.1 STC89C51单片机特点及引脚图43.2 LCD1602液晶显示器53.2.1 LCD1602基本组成53.2.2 LCD1602基本参数及引脚功能63.2.3LCD1602指令说明及时序64 系统概述74.1 系统设计结构图74.2 简易计算器工作流程75 系统硬件设计75.1 时钟电路85.2 复位电路85.3 键盘电路95.4 显示电路96 程序流程图10
2、7.课程设计总结11参考文献12附录 13简易计算器系统设计2010级自动化专业学生 张高强指导教师 龚长青摘要:本文主要介绍了简易计算器系统设计,用51单片机作为主控芯片,通过矩阵键盘作为输入,计算器可以进行2位数的四则运算。在设计过程中,选择STC89C51系列单片机,单片机通过采集键盘上的输入,自行判断运算数字和运算法则。同时将输入的结果和运算结果通过1602显示屏输出。简易计算器的设计,极大的降低了人们的计算量,尤其在大数据的计算上有明显的优势,计算器还具有连续计算功能,能提高人们的工作效率。关键词:单片机;矩阵键盘;1602显示; The Design Of Simple Calcu
3、lator System Student majoring in automation Zhang Gaoqiang Tutor Gong ChangqingAbstract:This paper mainly introduces the design of simple calculator system ,the system chooses the 51 single chip microcomputer as main control chip and uses the matrix keyboard as input, the calculator can compute in 2
4、 digits. The design process chooses STC89C51 microcontroller series and the single-chip microcomputer judge crunching Numbers and algorithms automatically through acquisition on the keyboard input,.At the same time 1602 display can output the input results and computation results .The design of simp
5、le calculator greatly reduces the burden of the humans computing especially in the big datacompution and the calculator can also compute continuously in that enhance peoples working efficiency. Key words: singlechip;matrix keyboard;1602display;引言当今时代,是一个新技术层出不穷的时代。在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成
6、的控制系统正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。过去习惯于传统电子领域的工程师、技术员正面临着全新的挑战,如不能在较短时间内学会单片机,势必会被时代所遗弃,只有勇敢地面对现实,挑战自我,加强学习,争取在较短的时间内将单片机技术融会贯通,才能跟上时代的步伐。 它所给人带来的方便也是不可否定的,它在一块芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不
7、暇接,单片机应用不断深入,新技术层出不穷。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。本次做的计算器是以单片机STC89C51为核心结合相关的元器件LCD1602液晶、矩阵键盘等再配以相关的程序达到制作计算器的目的电子计算器是日常生活中常用的电子计算仪器广泛应用于超市、大中型商场、大小企业。电子计算器具有精度高、体积小、应用范围广、易于操作使用等优点。目前科技的进步告别了以前复杂的模拟电路一块几平方厘米的单片机可以省去很多繁琐的电路。
8、现在应用较广泛的是科学计算器与我们日常所用的简单计算器有较大差别除了能进行加减乘除科学计算器还可以进行正数的四则运算和乘方、开方运算具有指数、对数、三角函数、反三角函数及存储等计算功能。未来的智能化计算器将是我们的发展方向,所以对计算器的研究十分有意义。综述国内外有关本课题的研究进展状况。随着社会的不断发展科技的不断创新。计算器已在数十年间遍布千家万户。计算器拥有几百年历史,1946年2月15日在美国宾夕法尼亚大学世界上第一台电子计算器ENIAC正式投入了运行。数学家把“智慧”给了电子计算器,电子计算器将使数学家变得更加聪明。而且电子计算器不仅是一种工具,它与其它的工具都不相同,电子计算器是人
9、脑的一个侧面的延伸。因为电子计算器不仅具有非凡的计算能力,速度之快令人望尘莫及而且还能够仿真人的某些思维功能按照一定的规则进行逻辑判和逻辑推理代替人的部分脑力劳动。1976年数学家凭借电子计算器去证明四色定理“依靠机器完成了人没有能够完成的事情”轰动了整个国际数学界。计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器,使用ASCII码设计的计算器,如使用纯软件实现的计算器等未来的智能化计算器将是我们的发展方向更希望成为应用广泛的计算工具。1 课程设计用的仪器和器件1.1 单片机的选择方案与论证方案一:采用STC89C51单片机。STC89C51单片机是一种低功耗、高性能CMO
10、S 8位微控制器,具有8K在系统可编程Flash存储器,而且价格优惠。STC89C51使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C51单片机为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。方案二:采用STC12C5A60S2系列单片机。STC12C5A60S2系列单片机是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容8051,但速度快812倍。内部集成MAX810专用复用电路,2路PWM,8路10位高速A/D
11、转换(80K/S),针对电机控制,强干扰场合。STC12C5A60S2系列单片机适合程序大,储存器容量大使用,但价格较昂贵。由于STC89C51价格实惠,又可实现系统需要,因此采用方案一。1.2 显示器的选择方案和论证方案一:使用8位LED数码管来做显示。LED显示器是由发光二极管显示字段组成的显示器件,在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极和共阳极两种,它具有成本低廉、配置灵活和单片机接口方便等特点。方案二:使用LCD1602液晶显示器来显示。液晶是介于固态和液态间的有机化合物,将其加热会变成透明液态,冷却后变成结晶的混作固态。在电极的作用下,产生冷热变化,从而影响它的
12、透光性,来达到显示的目的。LCD1602液晶显示器还具有以下几个优点:低压、微功耗、显示信息量大、长寿命、无辐射、无污染。考虑到是否能清晰地实现本系统的要求,我们决定采用方案二实现本系统的显示功能。1.3 按键部分的选择方案和论证方案一:使用独立式键盘。对于独立式键盘来说,当某个按键按下时,对应的单片机I/O口线为低电平,反之为高电平,但会占用大量的I/O口。方案二:使用矩阵式键盘。矩阵式键盘不会占用很多的I/O口,是一种比较节省资源的方法。为了能减少所占用的I/O口,我们采用方案二。2 课程设计方法和内容设计一个可以进行2位数四则运算的计算器,要求:1、用按键输入数和运算符号;2、用LED显
13、示运算过程和结果(十进制数);3、可以表示出当前的运算类型;4、具有清零和复位功能;5、具有连续运算功能。3 元件介绍3.1 STC89C51单片机特点及引脚图STC89C51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。STC89C51使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统 可编程,亦适于常规编程器。在单芯片上,STC89C51拥有灵巧的8位CPU和在系统可编程Flash,使STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C51具有以下标准功能:与MCS5
14、1兼容; 8K支持在线编程(ISP)的FLASH结构程序存储器,1000次擦写寿命;工作电压为4.0V5.5V;全静态工作:024MHz;3级程序安全加密保护;256*8位内部RAM;32个可编程I/O端口;3个16位定时器/计数器;8个中断源;一个全双工异步串口;支持低功耗及掉电模式;高抗静电(ESD保护);宽温度范围,-4085;典型功耗低0;x-) for(y=110;y0;y-);char i,j,temp,num;long a,b,c; /a,第一个数 b,第二个数 c,得数uchar flag,fuhao;/flag表示是否有符号键按下,fuhao表征按下的是哪个符号uchar c
15、ode table=7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0;uchar code table1=7,8,9,0x2f-0x30,4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30,0x2b-0x30; /按键显示编码表sbit lcden=P36;sbit lcdwrite=P35;sbit lcdrs=P34;/lcd的写指令void write_com(uchar com) lcdrs=0; lcden=0; P0=com; delay(1); lcden=1; delay(1); lcden=0;/lcd的写
16、数据void write_date(uchar da) lcdrs=1; lcden=0; P0=da; delay(1); lcden=1; delay(1); lcden=0;/初始化void init() /初始化 uchar num; num=-1; lcdwrite=0; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); for (num=0;num16;num+) write_date(table2num); delay(5); write_com(0x80+0x40); for
17、 (num=0;num0) c=a-b; else c=b-a; while(c!=0) write_date(0x30+c%10); c=c/10; if(a-b0) write_date(0x2d); /写负号- write_date(0x3d); /再写= a=0;b=0;flag=0;fuhao=0; else if(fuhao=3)/按下乘号按键 write_com(0x80+0x4f); write_com(0x04); c=a*b; while(c!=0) write_date(0x30+c%10); c=c/10; write_date(0x3d); a=0;b=0;flag=0;fuhao=0; else if(fuhao=4)/按