ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:92.50KB ,
资源ID:1094289      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1094289.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子计算器设计.doc)为本站会员(龙***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

电子计算器设计.doc

1、单片机课程设计报告课 题: 电子计算器学 院: 吴俊 08 级电自 08 班 200807111212报 告 人: 目录1 课题概述31.1 课题描述及实现功能31.2 按键说明32 系统的工作流程图43 系统程序设计53.1 主程序模块设计53.2 LCD 模块设计113.3 蜂鸣器模块设计133.4 键盘模块设计143.5 其他程序模块设计164 课程设计心得20吴俊 08 级电自 08 班 2008071112131 课题概述1.1 课题描述及实现功能本课题是基于 ADuC848单片机的电子计算器设计。由于本实验所需的单片机开发板已经确定,相应的硬件部分已经做好,所以我们只需要根据硬件原

2、理图进行软件设计。软件设计部分采用 C语言进行编写。根据要求设计的电子计算器的功能如下:1)利用小键盘作为数据和命令的输入装置;2)利用 LCD显示过程和结果;3)实现的运算包括:正实数的加、减、乘、除、开方、乘方、三角函数运算(sin、cos、tan);4)未工作时显示北京时间;5)当数据超出范围,可声音提示或报警。1.2 按键说明本系统采用 44矩阵键盘作为输入部分,实现数据输入功能。本系统规定的键盘上的各按键功能如下所示:1(+) 2(-) 3(*) ON4(/) 5(sqrt) 6(power) OFF7(sin) 8(cos) 9(tan) ClearFuction 0 . =各按键

3、功能如下:Fuction:功能键。按下此键,显示数字 1至 9括号里的运算符;未按此键,显示数字。ON: 显示北京时间时,按下此键之后进入计算器状态。吴俊 08 级电自 08 班 200807111214OFF:在计算器状态下,按下此键之后显示北京时间。Clear: 清除键。2 系统的工作流程图3 系统程序设计3.1 主程序模块设计#include#include#include#include#include#include#include#include#include#define uchar unsigned chardouble xdata First,End1,End2; /定义全

4、局变量NYYN数据过大数字键 =结果报警C清除off功能键(F)扫描键盘按键?运算方式NYNY初始化时间显示扫描键盘按键?其他 开关扫描键盘按键?吴俊 08 级电自 08 班 200807111215void delay(int n) /延时程序int i,j;for(i=0;i=y) z=x-y;elsez=y-x;return(z);double mul(double x,double y) /乘法程序double z;z=x*y;return(z);double div(double x,double y) /除法程序double z;z=x/y;return(z);double pow

5、er(double x,int y) /乘方程序double z;int i;z=1;for(i=1;i30000)buzzer();key=14;else ecvt(First,fp);LCDPrintString(0,2,fp);break;case 2: First=sub(End1,End2);if(First30000)buzzer();key=14;else ecvt(First,fp);LCDPrintString(0,2,fp);break;吴俊 08 级电自 08 班 200807111219case 3: First=mul(End1,End2);if(First30000

6、)buzzer();key=14;else ecvt(First,fp);LCDPrintString(0,2,fp);break;case 4: First=div(End1,End2);if(First30000)buzzer();key=14;else ecvt(First,fp);LCDPrintString(0,2,fp);break;case 5: First=sqrt(End2);if(First30000)buzzer();key=14;else ecvt(First,fp);LCDPrintString(0,2,fp);break;case 6: First=power(En

7、d1,End2);if(First30000)buzzer();key=14;else ecvt(First,fp);LCDPrintString(0,2,fp);break;case 7: First=sin(End2);if(First30000)buzzer();key=14;else ecvt(First,fp);LCDPrintString(0,2,fp);break;case 8: First=cos(End2);if(First30000)buzzer();key=14;else ecvt(First,fp);LCDPrintString(0,2,fp);break;case 9

8、: First=tan(End2);if(First30000)buzzer();key=14;else ecvt(First,fp);LCDPrintString(0,2,fp);break;First=0;n=0;k=-1;g=1; f=0;break;case 100:ReadTime(time);switch(time3)case 1: LCDPrintString(10,1,“ “);LCDPrintString(10,1,“Mon.“);break;case 2: LCDPrintString(10,1,“ “);LCDPrintString(10,1,“Tues“);break;

9、case 3: LCDPrintString(10,1,“ “);LCDPrintString(10,1,“Weds“);break;case 4: LCDPrintString(10,1,“ “);LCDPrintString(10,1,“Thurs“);break;case 5: LCDPrintString(10,1,“ “);LCDPrintString(10,1,“Fri.“);break;吴俊 08 级电自 08 班 2008071112110case 6: LCDPrintString(10,1,“ “);LCDPrintString(10,1,“Sat.“);break;cas

10、e 7: LCDPrintString(10,1,“ “);LCDPrintString(10,1,“Sun.“);break;default:break; LCDPrintNumber(0,1,2,time5); /monthLCDPrintString(2,1,“/“);LCDPrintNumber(3,1,2,time4); /dayLCDPrintString(5,1,“/“);LCDPrintNumber(6,1,2,time6); /yearLCDPrintNumber(0,2,2,time2); /hourLCDPrintString(2,2,“:“);LCDPrintNumbe

11、r(3,2,2,time1); /minuteLCDPrintString(5,2,“:“);LCDPrintNumber(6,2,2,time0); /secondkey=GetKey();if (key=12) /*进入计算状态*/t=1;key=0x80;LCDInitialize(); First=0;End1=0;End2=0;f=0;k=-1;g=1;n=0;h=0; break;default:break;if(n=0)End1=First;else End2=First;if(End1|End230000)buzzer();key=14;if(key=14) /清零 ACFirst=0;End1=0;End2=0;f=0;k=-1;g=1;h=0;LCDInitialize();key=0x80; 3.2 LCD 模块设计sbit LCD_RS = P36;sbit LCD_RW = P35;sbit LCD_EN = P33;sfr LCDData=0x80;void LCDWrite(bit cd,unsigned char input);

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。