m
對于學max197的人來說是一個很好的機會,這個程序不難,絕對可以看懂它:
以下兩個是。H文件的,你們另外保存一下就行了
#include
#include
?
#define uchar unsigned char
#define uint unsigned int
#include"delay.h"
#include"chuankou.h"
sbit MAX197_CS=P0^0;
sbit MAX197_WR=P0^1;
sbit MAX197_RD=P0^2;
sbit MAX197_HBEN=P0^3;
uchar premp,temp1;
void MAX197_Write(char temp)
{
??????
?
?????? ?MAX197_CS=1;
?????? ?MAX197_WR=1;
?????? ?delays(1);
?????? ?MAX197_CS=0;
?????? ?_nop_();
?????? ?_nop_();??????
?????? ?MAX197_WR=0;
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?P1=temp;
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?MAX197_WR=1;
?????? ?_nop_();
?????? ?MAX197_CS=1;
?????? ?delayl(5);
?
}
long int MAX197_Read()
{
?????? long int premp;
?????? uint TempL,TempH;
?????? delayl(2);
?????? ?MAX197_HBEN=0;
?????? ?_nop_();
?????? ?MAX197_CS=0;
?????? ?MAX197_RD=0;
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?TempL=P1;
?????? ?delayl(600);
?????? ?MAX197_HBEN=1;
?????? ?delayl(600);
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?_nop_();
?????? ?TempH=P1;
?????? ?delays(1);
?????? ?MAX197_RD=1;
?????? ?MAX197_CS=1;
?????? ?premp=TempH*256|TempL;
?????? ?return premp;
}????
void Init_MAX197()
{
?????? P1=0x00;
?????? MAX197_Write(0x40);
}
void main()
{????
?????? long int frag,i;
?????? uint j;
?????? init_uart();
?????? while(1)
?????? {????
?????? ??? Init_MAX197();
?????? ????? frag=MAX197_Read();?
????????????? i=frag*500000/4096;
????????????? send_dat(i/100000);??????
????????????? send_char('.');
????????????? send_dat(i/10000%10);
????????????? send_dat(i/1000%10);
????????????? send_dat(i/100%10);
????????????? send_dat(i/10%10);
????????????? send_dat(i%10);
????????????? send_char('v');
????????????? send_char(' ');
????????????? send_char(' ');
?????? }????
}
#ifndef chuankou
#define chuankou
void init_uart()
{
?????? TMOD = 0X20;
?????? TH1 = 0XFA;
?????? TL1 = 0XFA;
?????? SCON = 0X40;
?????? PCON = 0X80;
?????? TR1 = 1;
?????? REN = 1;
}
void send_dat(uint dat1)
{
?????? SBUF = (dat1+'0');
?????? while(TI==0);
?????? TI = 0;
}
void send_char(uchar dat)
{
?????? SBUF = dat;
?????? while(TI==0);
?????? TI=0;
}
void printstr(uchar *p)
{
?????? while((*p)!='