資源簡(jiǎn)介
基本功能:
基本四則運(yùn)算
小數(shù)點(diǎn)后至少包含2位
實(shí)現(xiàn)任意數(shù)平方,開方,三次方。開三次方
實(shí)現(xiàn)0到1之間隨機(jī)數(shù),小數(shù)點(diǎn)后至少3位
計(jì)算響應(yīng)時(shí)間小于1秒
擴(kuò)展功能
實(shí)現(xiàn)自然對(duì)數(shù),和以10為底的對(duì)數(shù)
三角函數(shù),反三角函數(shù)
用科學(xué)技術(shù)法顯示
代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#define?uchar?unsigned?char
#define?uint??signed?int
#define?T_CONVER?? 0x44
#define?T_CONFIG?? 0x5f
#define?T_READ???? 0xbe
#define?T_WRITE??? 0x4e
#define?T_ROM_JMP? 0xcc
#define?T_COPY_E2? 0x48
#define?T_RECALL_E2?0xb8
#define?T_cont???? 0.0625
#define?pi??????????3.1415926?
bit? T_sign;
bit? flag2=1;?????????//18B20驅(qū)動(dòng)程序的標(biāo)準(zhǔn)位
sbit? DQ=P3^6;????????//單片機(jī)與18B20的通信端
sbit? a_0=ACC^0;
sbit? fm=P3^7;
sbit? LCM_RS=P3^0;
sbit? LCM_E=P3^1;
typedef?unsigned?char?BYTE;
typedef?unsigned?char?WORD;
typedef?bit?BOOL;
uchar? temp0temp1temp2temp3;
uchar? keycalc=0;??
uchar? a[10];??????????//儲(chǔ)存計(jì)算器運(yùn)算過(guò)程中的數(shù)據(jù)
uchar? alen;??????????//字符串的長(zhǎng)度
float? one=0result1=0;??
float? temp=0;
uchar t_bai;
uint? flag=0;????????//計(jì)算器加減乘除的標(biāo)準(zhǔn)位???????????
uchar? shuzhi[6]={0};???//?用于儲(chǔ)存溫度的數(shù)組
uchar? idata?seg[14]={‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘‘:‘‘.‘0xDF‘C‘};?????//?0xDF?就是溫度的?°號(hào)
uchar *jianzero(uchar?*str);
uchar???wz=4h;
uchar???sjs[]={‘0‘‘4‘‘2‘‘3‘‘5‘‘7‘‘6‘‘9‘‘1‘‘8‘‘3‘‘5‘‘4‘‘2‘‘0‘‘3‘‘1‘‘6‘‘7‘‘9‘‘8‘‘5‘‘3‘};
uchar???ss[]={0.13240.2324};
/*****************************************************
延時(shí)操作函數(shù)
*********************************************************/
delay1ms(uint?t)
{ uchar?ij;
for(i=0;i ???? for(j=0;j<120;j++);
}
void?delay1(?uint?time)
{??
while(time--);?
}
void?delay10ms(void)?//延時(shí)程序
{
unsigned?char?ij;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
void?delay(BYTE?ms)
{
? BYTE?i;
while(ms--)
{
for(i=0;i<250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
//長(zhǎng)延時(shí)
void?Delay400Ms(void)
{
uchar?i?=?5;
uint?j;
while(i--)
{
j=3267;
while(j--);
};
}
void?speaker(void)
{
? fm=0;
? Delay400Ms();
? fm=1;
? Delay400Ms();
}
/*****************************************************
18B20?驅(qū)動(dòng)函數(shù)
*********************************************************/
void?DS18B20_send(uchar?out_data)
{??
uchar?i=0;
?? for(i=8;i>0;i--)
????{?DQ=0;
??????ACC=out_data&0x01;
??????DQ=a_0;
??????delay1(5);
??????DQ=1;
??????out_data>>=1;
????}
}
?????
?
void?DS18B20_init()
{
uchar?i=1;
? while(flag2==0)
????{
DQ=1;
????? delay1(8);
????? DQ=0;
????? delay1(52);
????? DQ=1;
???? delay1(2);
????? while(1)
????????{
????i=DQ;
?????????? if(i==0)
????????????{
flag2=1;
???????????? delay1(10);
????????????? break;
????????????}
????????}
?????}
?????flag2=0;
}
uchar?DS18B20_read(void)
{?
?uchar?iin_data;
?????in_data=0;
?????for(i=8;i>0;i--)
?????{
? DQ=0;
?????? in_data>>=1;
?????? DQ=1;
????? if(DQ)?in_data|=0x80;
?????? delay1(4);
?????}
?????return(in_data);
}
void?ReadTemperature()
{??
???uint?y;
???uchar?T_L=0;
???uchar?T_H=0;
???uchar?k;
???DS18B20_init();
???DS18B20_send(T_ROM_JMP);
???DS18B20_send(T_CONVER
評(píng)論
共有 條評(píng)論