设计一个多功能计算器
- 格式:pdf
- 大小:614.35 KB
- 文档页数:18
最新多功能计算器的设计与实现设计(设计与实现一个最新的多功能计算器需要考虑以下几个方面:用户界面设计、功能模块设计、算法设计和实现、错误处理和测试。
1.用户界面设计用户界面应该简洁明了,易于使用。
可以采用图形界面设计,支持鼠标和键盘的交互方式。
主界面应该包含输入输出区域、功能按钮区域和历史记录显示区域。
输入输出区域可以支持长数字输入和显示,以满足大数据计算需求。
功能按钮区域应该有常用的数学运算和统计功能按钮,例如加减乘除、平方根、指数运算等。
历史记录显示区域应该显示最近的计算结果和运算历史,以便用户查看和复用。
2.功能模块设计多功能计算器应该支持常见的数学运算、统计功能和科学计算功能。
可以将不同的功能模块分别设计和实现,以提高代码的可维护性和扩展性。
例如可以设计一个数学运算模块,实现加减乘除等基本运算;设计一个统计功能模块,实现平均值、标准差等统计功能;设计一个科学计算模块,实现幂运算、三角函数等科学计算功能。
3.算法设计和实现针对不同的功能,需要设计和实现相应的算法。
例如加减乘除运算可以使用基本的四则运算算法;平方根可以使用牛顿迭代法或二分法求解;指数运算可以使用幂函数展开或迭代逼近法求解。
算法的设计要充分考虑数值的精度和性能的优化。
4.错误处理和测试在计算器的设计和实现过程中,需要考虑各种可能的错误情况,并进行相应的错误处理。
例如除数为零、输入数字错误等。
可以使用异常处理机制来捕获和处理错误。
同时,在设计和实现后,需要进行细致的测试,包括单元测试和集成测试,以验证计算器的正确性和性能。
总结来说,设计和实现一个最新的多功能计算器需要综合考虑用户界面设计、功能模块设计、算法设计和实现、错误处理和测试等多个方面。
在设计和实现的过程中,需要注重用户体验、代码的可维护性和性能的优化。
工程设计训练设计报告课题名称基于单片机的多功能计算器设计院系物理与电子工程学院年级专业电子信息工程班级学号学生姓名任课教师设计时间目录第一章概述....................................................................................................................................... 第二章硬件设计方案....................................................................................................................... 第三章程序设计............................................................................................................................... 第四章软件仿真调试....................................................................................................................... 心得体会............................................................................................................................................. 参考文献附录工程设计训练—基于单片机的多功能计算器设计任务书一、设计课题:基于单片机的多功能计算器设计二、设计目的:运用已学课程的基本知识,在设计中加以应用,进而得到理解、巩固和提高发展,通过实践的过程学习掌握分析与解决实际问题的方法与手段,提高设计、编程与调试的实际动手能力,作为工程技术工作的一次基本训练。
引言 (2)1.计算器的发展和分类 (2)计算器的发展 (2)计算器的分类 (3)2.设计方法 (4)3.硬件系统设计 (4)单片机 (4)4*4矩阵式键盘 (5)7段LED数码管 (6)程序下载接口 (6)数码管驱动芯片 (6)单片机时钟电路 (6)单片机复位电路 (7)4.软件设计 (10)汇编语言和C语言的特点及选择 (10)键扫程序设计 (11)算术运算程序设计 (11)显示原理 (12)5.硬件调试 (12)常见故障 (12)6.软件调试 (13)总结 (13)参考文献 (15)附录 (16)引言当今社会,计算器作为一种快速、通用的计算工具方便了用户的使用。
单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。
在工业生产中,单片微型计算机是微型计算机的一个重要分支,也是颇具生命里的机种。
单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心。
单片微型计算机简称单片机,特别使用于控制领域,故又称为微控制器。
本文是基于单片机控制的多功能计算器的设计。
设计以单片机为控制核心,运用C语言编写程序,采用矩阵键盘式输入数据、在液晶模块LCD1602上显示计算过程以及结果,该计算器能进行加、减、乘、除运算,此外该计算器还具有计时和倒计时的功能。
这样一个简易的计算器实现了多功能,相比当前一些计算器来说,在功能上增加了却没有增加产品的成本,采用的技术也更趋向于国产化。
1.计算器的发展和分类计算器的发展计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备及电子配件通过人工或机器设备组成。
低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。
高档计算器由微处理器和只读存储器实现各种复杂的运算程序,有较多的随机存储单元以存放输入程序和数据。
键盘是计算器的输入部件,一般采用接触式或传感式。
为减小计算器的尺寸,一键常常有多种功能。
多功能计算器使用说明一、简介多功能计算器是一款功能强大的计算器应用程序,主要用于进行各种数学运算和科学计算。
除了基本的加减乘除运算外,它还提供了许多高级的计算功能,例如,三角函数计算、幂运算、开方运算、对数运算等。
此外,多功能计算器还支持多种进制之间的转换,例如,二进制、八进制、十进制和十六进制之间的相互转换等。
三、界面介绍四、基本计算操作1.输入数字和运算符号在输入区中,点击键盘上的数字按键可以输入相应的数字,点击运算符号按键可以输入相应的运算符号。
在进行复杂的计算时,可以使用括号来改变优先级。
例如,输入3+2*4,系统会自动计算出结果为112.清除操作可以通过点击计算器界面上的清除键(C键)来清除当前显示的数字或运算符号。
长按清除键可以清空整个计算过程。
3.小数计算五、高级计算功能1.括号运算在输入区中,可以使用括号来改变运算的优先级。
例如,输入(3+2)*4,系统会自动计算出结果为20。
2.三角函数计算3.幂运算4.开方运算5.对数运算六、进制转换功能1.十进制转其他进制在输入区中输入一个十进制数后,点击键盘上的对应进制按钮,系统会自动将该数转换为对应进制数,并显示在结果区中。
2.其他进制转十进制在输入区中输入一个其他进制数后,点击键盘上的对应进制按钮,系统会自动将该数转换为十进制数,并显示在结果区中。
七、注意事项1.在进行复杂计算时,建议使用括号来明确优先级,避免出现计算错误。
2.在进行三角函数运算时,需要确保输入的角度值符合三角函数的定义域。
3.对于特殊的数学运算或需要更高精度的运算,建议使用其他专业的数学软件或计算器进行计算。
八、总结多功能计算器是一款功能强大的计算器应用程序,可以进行数学运算和科学计算,支持基本运算、高级运算和进制转换等功能。
在使用时,用户可以根据需要选择相应的功能,进行各种类型的计算。
使用多功能计算器可以提高计算效率,方便用户进行各种数学运算和科学计算。
用C语言设计一个多功能计算器实现功能:1)具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。
依次输入第一个运算数、运算符(+,-,*,/),第二个运算数,然后输出结果。
结果可以作为下一个运算的第一运算数。
按‘C’清屏,按‘X’退出。
例如:输入:2+5输出:72)实现单运算符表达式计算的功能。
输入的操作数可以包含整数或浮点数。
如果遇到错误的表达式,应输出错误提示信息。
输入表达式如下:例如:输入:2+5输出:7目录摘要 (1)第一章引言 (3)1.1 计算器概述 (3)第二章设计任务及要求 (5)2.1 设计任务 (5)2.2 设计要求 (6)第三章计算器硬件设计 (7)3.1 方案说明 (7)3.2 设计单片机主体电路图 (8)第四章软件设计 (9)4.1 模块介绍 (9)4.2 程序流程图 (10)4.3 程序部分 (11)第五章总结 (16)参考文献 (17)摘要:[目录]一、课程设计题目及任务要求二、设计思路三、部分程序介绍四、程序框图五、汇编程序六、参考资料[原文]一、课程设计题目及任务要求请设计十进制加减法计算器。
要求能(不同时)显示3位输入和4位输出。
二、设计思路1、操作显示设备显示设备采用八片七段共阴极LED显示器,共设置16 个键,其中数字键0~9 共十个,接下来依次是加号键、减号键、等于号、清除键。
操作设备是两行八列共16键的简单键盘。
第一行从左至右分别为0、1、2、3、4、5、6、7,第二行分别为8、9、A(+)、B(-)、C(=)、D(清除键)、E (清除键)、F(清除键),“清除键”表示程序初始化,为下次输入准备。
2、程序实现功能(1)十进制加减法计算:输入范围为(1~999),该程序输入两个定点数,每个3位,输出4位;A为加,B为减,C为等于,输出为四位计算结果。
数据输入采用规范化输入,即必须输入3个数才算完成一个运算数的输入,两个运算数之间输入运算符A或者B,输入完成按C显示计算结果;(2)计算机复位功能:DEF均为清零重启,任何时候按下DEF中一个将重新开始;三、部分程序介绍(1)主程序(START)程序开始运行初始化程序,设置输入输出口PA、PB、PC,扫描键盘,输入两个待求数据和运算符,存入寄存器,等待输入等号同时显示第二个数,运行计算程序,并将计算结果分离,输出到显示器;(2)读键子程序(RD_KB)程序分别扫描两行键盘,若有键按下则通过移位的方式计算键码;若无键按下,则将键码缓存设置为10H,判断后进行相应的跳转。
单片机课程设计报告(多功能计算器)班级:姓名:学号:指导老师:一、内容摘要利用89c51作为主控器设计一个四则运算的计算器。
首先通过在图书馆和网上查找有关设计计算器的资料,大概了解设计计算器需要哪几个模块,熟悉Keil 和Proteus 两个软件的用法,以及它们的联调,完成计算器的程序设计和仿真,然后就是进实验室进行计算器电路板的焊接,最后就是将程序下载到单片机芯片中,系统联调,直到得出结果。
二、设计内容及要求用单片机设计计算器,要求可以进行加、减、乘、除运算。
三、系统方案设计,画出系统框图四、画出完整的电路图,并说明电路的工作原理51系列单片机4*4键盘8位LED 显示6264 RAM 扩展复位电路晶振电路等系统原理框图电路图说明:(1)键盘的列扫描接单片机P2口的低4位,行扫描接单片机P1口的低4位;(2)数码管的段选通过单片机的P0口接74LS244来驱动,数码管的位选接单片机的P2口;(3)发光二极管电路用来说明电路是否上电;(4)晶振电路为单片机提供时钟频率;(5)复位电路为单片机提供复位信号。
计算器的功能实现:(1)此计算器适应于不大于八位整数的四则混合运算,若单个数大于八位或者结果大于八位(溢出)则显示“Chu cuo”。
(2)如果在还没有按数字之前按了一个符号键或者等号则显示“Chu cuo”。
(3)若接连按了几个运算符键,实际上进行的运算是最后一次按的运算键。
(4)可以显示负数、小数。
(5)此计算器不可实现连乘、连加、连减、连除。
四、软件仿真,根据系统硬件图编写系统程序并调试#include <reg52.h>#include <intrins.h>//循环左右移要用该头文件(-cror-(),-crol-())#define uchar unsigned char#define ulong unsigned longuchar array[8]={0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10};uchar array1[8]={0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10};uchar a;ulong num1=0,num2=0;sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit F1=PSW^1;//定义一个标志位,F0在头文件里已定义void displayljy(void);//声明"显示"子函数void inkeylove(void);//声明"判断按下的是什么键"子函数void iskeyyou(void);//声明"判断是否有键按下"子函数void bian1(void);//声明"将uchar型变量转化为ulong型变量"子函数void bian2(void);//声明"将ulong型变量转化为uchar型变量"子函数void jia(void);//声明"加运算"子函数void jian(void);//声明"减运算"子函数void cheng(void);//声明"乘运算"子函数void chu(void);//声明"除运算"子函数void error(void);//声明"出错显示"子函数void main(){uchar r7=0x00,i;while(1){displayljy();inkeylove();if(a!=0xff)//如果有键输入,继续往下执行,否则从新开始{if(a==0x0f) //如果输入的是"清除"键,将显示器清屏,同时清存放运算符号的单元 {r7=0x00;for(i=0;i<8;i++){array[i]=0x10;array1[i]=0x10;}}else if(a==0x0e)//如果输入的是"=",继续往下执行,否则从新开始{if(r7==0x0d)//如果r7中存放的是"+",则执行加运算{bian1();jia();bian2();}else if(r7==0x0c)//如果r7中存放的是"-",则执行减运算{bian1();jian();}else if(r7==0x0b)//如果r7中存放的是"*",则执行乘运算{bian1();cheng();bian2();}else if(r7==0x0a)//如果r7中存放的是"÷",则执行除运算{bian1();chu();}elseerror();//如果r7没有存进运算符,则转出错处理}else{if(r7!=0x00)//如果已按过运算键,往下执行,否则转else{if(a>0x09&&a<0x0e)//如果还按下运算键,则后按的取代前面按的r7=a;else if(array1[0]==0x10)//判断是不是输入加数(减数...)的第一个数 {for(i=0;i<8;i++)//是的话,将被加数(被减数...)存入array1中 array1[i]=array[i];for(i=0;i<8;i++)array[i]=0x10;for(i=7;i>0;i--)//array中存入加数(减数...)array[i]=array[i-1];array[0]=a;}else //不是输入加数(减数...)的第一个数{if(array[7]!=0x10)//如果加数(减数...)已是八位整数,则转出错处理 error();else{for(i=7;i>0;i--)//否则将加数左移array[i]=array[i-1];array[0]=a;}}}else//之前还没有运算键按下{if(a>0x09)//有运算键按下{if(array[0]==0x10)//但是在运算键按下之前没有输入被加数,则转出错error();elser7=a;//否则将运算键输入r7中保存}else if(array[7]!=0x10)//如果被加数已是八位整数,则转出错error();else //否则将被加数左移{for(i=7;i>0;i--)array[i]=array[i-1];array[0]=a;}}}}}}void bian1(void)//"将uchar型变量转化为ulong型变量"子函数{uchar i;for(i=7;i>0;i--){if(array[i]==0x10)array[i]=0x00;if(array1[i]==0x10)array1[i]=0x00;}num1=(ulong)array1[7]*10000000;num1+=(ulong)array1[6]*1000000;num1+=(ulong)array1[5]*100000;num1+=(ulong)array1[4]*10000;num1+=(ulong)array1[3]*1000;num1+=(ulong)array1[2]*100;num1+=(ulong)array1[1]*10;num1+=(ulong)array1[0];num2=(ulong)array[7]*10000000;num2+=(ulong)array[6]*1000000;num2+=(ulong)array[5]*100000;num2+=(ulong)array[4]*10000;num2+=(ulong)array[3]*1000;num2+=(ulong)array[2]*100;num2+=(ulong)array[1]*10;num2+=(ulong)array[0];}void bian2(void)//声明"将ulong型变量转化为uchar型变量"子函数{uchar i=7,F0=1;if(num1>99999999)error();else{array[7]=(uchar)(num1/10000000);array[6]=(uchar)(num1%10000000/1000000);array[5]=(uchar)(num1%1000000/100000);array[4]=(uchar)(num1%100000/10000);array[3]=(uchar)(num1%10000/1000);array[2]=(uchar)(num1%1000/100);array[1]=(uchar)(num1%100/10);array[0]=(uchar)(num1%10); while(i>0&&F0){if(array[i]==0x00){array[i]=0x10;i--;}elseF0=0;}}}void jia(void)//"加运算"子函数{num1+=num2;}void jian(void)//"减运算"子函数{uchar i;if(num1>num2){num1-=num2;bian2();}else if(num1==num2){for(i=1;i<8;i++)array[i]=0x10;array[0]=0x00;}else{num1=num2-num1;bian2();if(array[7]!=0x10)error();elsearray[7]=0x11;}}void cheng(void)////声明"乘运算"子函数{num1*=num2;}void chu(void)//"除运算"子函数{uchar i,j=0x00,k;double num3;num3=(double)(num1)/(double)(num2); num1=(ulong)(num3);num3-=num1;if(num3==0||num1>9999999)bian2();else{bian2();while(array[7]==0x10){j++;for(i=7;i>0;i--)array[i]=array[i-1];array[0]=0x10;}array[j]+=0x12;k=j-1;while(k>0){num3*=10;num2=(ulong)(num3);num3-=num2;array[k]=(uchar)(num2);k--;}array[0]=(uchar)(num3*10);while(array[0]==0x00){for(i=0;i<7;i++)array[i]=array[i+1];array[7]=0x10;}}}void error(void)//"出错显示"子函数(出错显示"Chu cuo.") {array[7]=0x0c;array[6]=0x1d;array[5]=0x1f;array[4]=0x10;array[3]=0x10;array[2]=0x1c;array[1]=0x1f;array[0]=0x1e;}void displayljy(void)//"显示"子函数{uchar array3[32]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e, 0x79,0x71,0x00,0x40,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x58,0x74,0xdc,0x1c};uchar *p=array,count=0x80,i,time;F0=1;while(F0){i=*(p+7);P2=count;P0=array3[i];for(time=0xff;time>0x00;time--);p--;count=_cror_(count,1);if(count==0x80)F0=0;}}void iskeyyou(void)//"判断是否有键按下"子函数{P2=0x00;P1|=0x0f;a=P1;a|=0xf0;}void inkeylove(void)//"判断按下的是什么键"子函数{uchar b=0xfe,c=0x00,d;uchar array4[16]={0x07,0x08,0x04,0x05,0x01,0x02,0x0f,0x00, 0x09,0x0a,0x06,0x0b,0x03,0x0c,0x0e,0x0d}; F1=0;iskeyyou();if(a!=0xff){displayljy();displayljy();iskeyyou();if(a!=0xff){F0=1;while(F0){P2=b;P1|=0x0f;if(P10==0){a=0x00;F1=1;}else if(P11==0){a=0x02;F1=1;}else if(P12==0){a=0x04;F1=1;}else if(P13==0){a=0x06;F1=1;}else{a=c;a%=4;if(a==0x01){a=0x07;c+=a;}elsec++;b=_crol_(b,1);if(b&0x10==0){F0=0;a=0xff;}}while(F1){a+=c;a=array4[a];d=a;while(a!=0xff){displayljy();iskeyyou();}a=d;F1=0;F0=0;}}}}}五、系统联调在我将计算器的电路板焊接好以后,我将程序下载到单片机芯片上面,再接上电源测试发现键盘上面只有几个按键有显示,开始我就怀疑是自己的焊接键盘的线时,出现了虚焊或者是焊错了的错误,我就写了一个程序让数码管上面显示“4321”这四个数字,下载进去后,发现没有错误,这就证明我的数码管那一块没有出现错误,由此推论,最有可能出现错误的就是键盘,由于自己当时并不清楚键盘的行列线,所以没有自己测量了,我去问老师,老师就说“实验室的键盘可能也有点问题”,于是他就给我们拿了几个他自己借来的键盘,然后手把手的教我们怎么测试行列线,我也很快就测出了其对应的行列线,但是一接上电源测试,还是有一行不能显示,最后在老师的提点下,是发现P1.0口始终接了高电平,从而导致无法显示,在老师的帮助下,最终我做出了结果。
电子信息工程专业综合课程设计任务书摘要:单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活中的各个领域,电子、科技、通信、汽车、工业等。
我们这次设计的多功能科学计算器也是利用AT89C51单片机制作而成。
该计算器设计是采用C语言编写,实现了六位数范围内的加、减、乘、除基本的四则运算,此外该计算器除了具备基本的计算功能以外还具有计时和倒计时的功能,也就是说该计算器具有两个工作模式,计算模式和计时模式,而计时模式里又包含正计时和倒计时的功能,这样一个简易的计算器实现了多功能,比较实用和方便。
该设计电路是采用AT89C51单片机为主要控制电路,然后使用74LS245缓冲驱动电路驱动六位LED数码管显示数据,利用加上4×4矩阵键盘完成电路的实际操作。
电路比较简单,但是很实用方便。
关键字:AT89C51 多功能74LS245 LED 矩阵键盘目录1.方案论证与选择 (4)1.1输入模块 (4)1.2显示模块: (5)2.其他硬件电路模块功能介绍: (6)2.1驱动模块 (6)2.2主控制模块 (7)2.3操作模块 (8)3.软件设计 (9)3.1主功能计算器部分 (9)3.2计时和倒计时部分 (9)3.3功能按键 (9)3.4软件流程图 (9)4硬件设计 (11)4.1电路工作框图 (11)4.2 硬件电路图 (12)4.3引脚锁定 (12)5.电路测试结果 (12)5.1代码提示信息 (12)5.2模式转换电路图 (13)5.3错误提示电路图 (14)5.4正常计算结果显示图 (14)6.该设计电路的改进思想 (15)7.小结 (15)8.参考文献 (16)附录(程序清单) (16)基于单片机的多功能计算器设计1.方案论证与选择1.1输入模块方案一:采用独立式按键作为输入模块,其特点:直接用I/O口构成单个按键电路,接口电路配置灵活、按键识别和软件结构简单,但是当键数较多时,占用I/O口较多,比较浪费资源;其原理图如图1所示:图1 独立的功能按键方案二:采用矩阵式键盘作为输入电路,其特点:电路和软件稍复杂,但相比之下,当键数越多时越节约I/O口,比较节省资源。
EXCEL多功能复利计算器首先,我们可以通过简单的数学公式来计算复利。
在表格中,我们可以输入初始本金、年利率、复利周期和投资期限,并通过公式计算出总收益和最终本金。
假设初始本金为P,年利率为r,复利周期为n,投资期限为t,总收益为A,最终本金为F,则可以利用以下公式进行计算:总收益A=P*(1+r/n)^(n*t)-P最终本金F=P*(1+r/n)^(n*t)在EXCEL中,我们可以使用以下公式来计算总收益和最终本金:总收益A:=P*(1+r/n)^(n*t)-P最终本金F:=P*(1+r/n)^(n*t)其中,P为初始本金,r为年利率,n为复利周期,t为投资期限。
除了使用公式进行计算外,我们还可以使用EXCEL的内置函数来进行复利计算。
下面列举了几个常用的内置函数:1.POWER函数:用于求幂运算,可以计算(1+r/n)的n*t次幂。
形式为:POWER(1+r/n,n*t)。
2.PRODUCT函数:用于计算一系列数值的乘积。
可以计算P和幂运算结果的乘积。
形式为:PRODUCT(P,POWER(1+r/n,n*t))。
3.SUM函数:用于计算一系列数值的和。
可以计算乘积结果和初始本金的差值。
形式为:SUM(PRODUCT(P,POWER(1+r/n,n*t))),-P)。
通过使用以上函数,我们可以在EXCEL中创建一个复利计算器,用于计算复利的总收益和最终本金。
此外,我们还可以通过使用数据透视表功能,进行更加灵活的复利计算。
可以将初始本金、年利率、复利周期和投资期限作为输入数据,然后使用数据透视表来对这些数据进行汇总和计算。
数据透视表可以根据需要对数据进行分组、排序和筛选,以便更好地分析和计算复利。
在创建数据透视表之前,我们需要确保输入数据的格式正确,并将其放置在一个工作表中。
然后,通过选择“数据”选项卡上的“数据透视表”按钮,可以打开数据透视表对话框。
接下来,我们可以选择输入数据的范围,并将初始本金、年利率、复利周期和投资期限作为行字段或列字段添加到数据透视表中。
哈尔滨工业大学华德应用技术学院毕业设计(论文)摘要本文主要从硬件和软件两方面介绍了MCS-51系列单片机多功能计数器的设计思路,简单说明如何实现对计数的功能,并对硬件原理图和程序框图作了简洁的描述。
本设计共分电源、单片机控制模块、信号前向通道处理模块、键盘、液晶显示模块、模数(A/D)转换模块、语音播报模块、测温及时钟八个模块。
以51系列单片机为控制模块核心,对多功能计数器可编程控制,实现周期、频率、时间间隔的测量。
同时可实现对测量结果、时钟、温度及被测信号幅度的液晶显示及语音播报。
本设计介绍的单片机多功能计数器系统的主要内容包括:系统方案、元器件选择、系统理论分析、硬件设计、软件设计、系统调试及主要技术性能参数。
关键词多功能;周期;频率;时间间隔;测量;语音播报-1-哈尔滨工业大学华德应用技术学院毕业设计(论文)-2-哈尔滨工业大学华德应用技术学院毕业设计(论文)AbstractThis paper mainly from two aspects of hardware and software design of MCS-51 series single chip multi-function counter, illustrates how to realize the function of count, and the hardware schematic diagram and program block diagram for a simple description. The design consists of a power supply, a single-chip control module, signal processing module, the keyboard forward channel, liquid crystal display module, analog-to-digital (A/D) conversion module, voice broadcastmodule, temperature measurement and clock module eight. With 51 seriesmicrocontroller as the core control module, the multifunctional counterprogrammable control, measurement of the cycle, frequency, time interval. At the same time, can realize the liquid crystal on the measurement results, the clock,temperature and the measured signal amplitude display and voice broadcast.The main content of multi-function counter system based on the design of thesystem, including: the component selection, system analysis, hardware design,software design, system debugging and the main technical performanceparameters.Keywords Multi,Cycle,Frequency,Time interval measurement,Voice broadcast-3-哈尔滨工业大学华德应用技术学院毕业设计(论文)摘要 (1)Abstract (3)第1章绪论 (6)1.1 单片机概述 (6)1.1.1 单片机历史 (6)1.1.2 单片机的基本结构 (6)1.1.3 单片机的应用领域 (8)1.2计数器概述 (10)1.2.1 计数器的技术背景与发展趋势 (10)1.2.2 电子计数器的分类 (10)1.2.3 电子计数器工作原理和基本功能 (11)第二章方案设计和论证 (12)2.1计数器计数原理 (12)2.2 多功能计数器总体设计方案 (12)2.3 多功能计数器测频率 (14)2.3.1 基本工作原理 (14)2.3.2 电路设计 (14)2.3.3 电路分析 (15)2.3.4 理论分析 (16)2.3.5 软件设计 (17)2.3.6 测试与结果分析 (18)本章小结 (19)第三章模块电路设计及比较 (19)3.1 89c52单片机的选型 (19)3.2电源模块 (21)3.3 前向信号通道处理模块 (22)图3-8 TLC1543引脚图 (26)3.7语音报数模块(发挥) (26)3.8 时钟模块(发挥) (27)3.9 测温模块(发挥) (28)本章小结 (29)第四章通信方案设计 (30)4.1 SN75176 485 芯片的控制端的设计 (30)-4-哈尔滨工业大学华德应用技术学院毕业设计(论文)4.1.1SN75176 485 芯片的控制端的设计 (31)4.1.2 隔离光耦电路的参数选取 (31)4.1.3 485总线输出电路部分的设计 (32)4.2 计算机通讯协议 (32)4.3 组态王的通讯配置 (33)4.4 单片机通讯软件设计 (34)本章小结 (34)第五章软件方案设计 (35)5.1 主程序流程方框图 (35)5.2语音播报子程序流程方框图 (37)5.3Keil C程序 (38)5.4 RS485通信程序 (45)本章小结 (51)第六章数据处理 (52)6.1 测试数据分析 (52)6.2 实测中误差分析与处理 (52)本章小结 (52)第七章电路原理图 (53)7.1 系统原理图 (53)7.2 系统PCB图 (54)7.3 Multisim 仿真原理图和仿真结果 (55)本章小结 (57)结论 (58)-5-哈尔滨工业大学华德应用技术学院毕业设计(论文)第1章绪论1.1 单片机概述1.1.1 单片机历史单片机诞生于20世纪70年代末,经历了SCM、MCU、SOC三大阶段。