51单片机实现三角函数运算.doc_第1页
51单片机实现三角函数运算.doc_第2页
51单片机实现三角函数运算.doc_第3页
51单片机实现三角函数运算.doc_第4页
51单片机实现三角函数运算.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include#define uchar unsigned char#define uint unsigned int#define DtoHD 0.017453292519943295sbit lcden=P34;sbit lcdrs=P35;sbit dula=P26;sbit wela=P27;sbit key2=P35;sbit key3=P36;sbit key4=P37;uint h;uchar temp,key,s=0;uchar input9;double b=0.0,c=0.0,d=0.0,a=0.0;uchar code table=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2b,0x2d,0x2a,0x2f,0x24,0x3d,0x21,;uchar code tabl=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x73,0x69,0x6e,0x63,0x6f,0x73,0x74,0x61,0x6e,0x2e,;double sin(float x);double jishux(char x,double y);void tan();void delayms(uint xms)uint i,j;for(i=xms;i0;i-) /i=xms即延时约xms毫秒for(j=110;j0;j-);void write_com(uchar com) lcdrs=0; P0=com; delayms(5); lcden=1; delayms(5); lcden=0; void write_data(uchar date) lcdrs=1; P0=tabledate; delayms(5); lcden=1; delayms(5); lcden=0; if(key=14)write_com(0x01);a=0;b=0;c=0;write_com(0x83); void write_dat(uchar dalt) lcdrs=1; P0=tabldalt; delayms(5); lcden=1; delayms(5); lcden=0;/ if(key=12)/ /write_com(0x01);/write_com(0x83);/ void init( ) a=0;dula=0;wela=0;lcden=0;write_com(0x38);write_com(0x0f);write_com(0x06);write_com(0x01);double sin(float x) /计算sinx的值char i;char j=-1;double res=0.0;for(i=0;i10;i+)j=(-1)*j;res=j*jishux(2*i+1,x)+res;return res;double cos(float x) /计算cos的值char i1;char j1=-1;double res1=0.0;for(i1=0;i110;i1+)j1=(-1)*j1;res1=j1*jishux(2*i1,x)+res1;return res1;double jishux(char x,float y) /计算泰勒展开式的级数项char i;double jishux=1.0;for(i=1;i=x;i+)jishux=jishux*y/i;return jishux;void Divide(int x) /调用计算sinx,cos的值,并拆分计算结果小数点后八位 long int y;float z;char j;double t;write_com(0x80);/ write_dat(10);/ write_dat(11);/ write_dat(12);z=x*DtoHD;if(key=11) write_dat(10); write_dat(11); write_dat(12);y=100000000*sin(z);if(key=12)y=100000000*cos(z); write_dat(13);write_dat(14);write_dat(15);if(key=13)t=sin(z)/cos(z);y=t*1000000; write_dat(16);write_dat(17);write_dat(18); if(key!=13|a=45) if(a90)/ write_data(11);/ if(s!=0)/ / if(key=11)/ write_data(11);/ if(key=12&a=90)/ write_data(11);/ / if(key=12&(90a181)/ write_data(11); write_dat(0); write_dat(19);/if(key=12&a=0)/ write_dat(2); input0=y/10000000; input1=y%10000000/1000000; input2=y%1000000/100000; input3=y%100000/10000; input4=y%10000/1000; input5=y%1000/100; input6=y%100/10; input7=y%10;/ for(i=0;i8;i+)/ / if(inputi!=0)/ break;/ for(j=0;j8;j+) write_dat(inputj); else if(a85) y*=10; input0=y/10000000; input1=19; input2=y%10000000/1000000; input3=y%1000000/100000; input4=y%100000/10000; input5=y%10000/1000; input6=y%1000/100; input7=y%100/10; input8=y%10;else input0=y/10000000; input1=y%10000000/1000000; input2=19; input3=y%1000000/100000; input4=y%100000/10000; input5=y%10000/1000; input6=y%1000/100; input7=y%100/10; input8=y%10; write_com(0x80+0x41);/ write_dat(1);/ write_dat(19);for(j=0;j180)a-=180;write_com(0x80+0x40);write_data(11);Divide(a);elsewrite_com(0x80); write_dat(10); write_dat(11); write_dat(12);write_com(0x80+0x40); write_data(11);write_data(1);key=0; if(key=12) if(a90&a180&a180&a90&a270&a361) a=a-180; write_com(0x80+0x40); write_data(11); if(a!=90)Divide(a);elsewrite_com(0x80); write_dat(16); w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论