⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 max144采样信号送给max7221显示,第一位带小数点.txt

📁 max144采样信号送给max7221显示
💻 TXT
字号:
#include<reg51.h>                      //51寄存器定义库
#include<intrins.h>                    //变量移位函数库  
#define unchar unsigned char
#define unint unsigned int
   
//定义max144端口,VREF=5V
sbit CS_144=P2^0;
sbit DOUT_144=P2^1;
sbit SCLK_144=P2^2;
//定义max7221端口
sbit CS_7221=P2^4;
sbit DIN_7221=P2^5;
sbit CLK_7221=P2^6;

unint Data;                                             
unint  for_display[4];
unchar decode[]={0X0E,0X8E,0X4E,0XCE,0X2E,0XAE,0X6E,0XEE,0X1E,0X9E};  //不带小数点的码表
unchar DPdecode[]={0X7F,0X0D,0XB7,0X9F,0XCD,0XDB,0XFB,0X0F,0XFF,0XBF};//带小数点的码表 

void delay()
{
unint i=0XFFFF;
for(i;i>0;i--){}
}


void write_7221(unchar A,unchar B)
{
unchar i;
CS_7221=0;
for(i=8;i>0;i--)
{
DIN_7221=A&0X01;
CLK_7221=1;
CLK_7221=0;
A>>=1;
}
for(i=8;i>0;i--)
{
DIN_7221=B&0X01;
CLK_7221=1;
CLK_7221=0;
B>>=1;
}
CS_7221=1;
}


void initial_7221()
{
//初始化max7221,未用到的数据位全部置1
write_7221(0X5F,0XCF);//设定INTENSITY(4/16)
write_7221(0X9F,0X70);//设定DECODE MODE(译码2~4位,第一位不译码)
write_7221(0XDF,0XDF);//设定SCAN LIMIT(扫描低四位)
write_7221(0X3F,0XFF);//SHUT DOWN(NORMAL OPERATION)
write_7221(0XFF,0X7F);//DISPLAY TEST(NORMAL OPERATION)
}

void display_7221()
{
write_7221(0X8F,DPdecode[for_display[0]]);
write_7221(0X4F,decode[for_display[1]]);
write_7221(0XCF,decode[for_display[2]]);
write_7221(0X2F,decode[for_display[3]]);
}

void read_144()
{
unchar i,j;
SCLK_144=0;
CS_144=1;
CS_144=0;
_nop_();
_nop_();
for(i=0;i<16;i++)          
{
SCLK_144=1;
j=DOUT_144;
Data<<=1;
Data|=j;
SCLK_144=0;
}
CS_144=1;
Data&=0X0FFF;
} 

void change()
{
unchar i;
unint h; 
float k=Data; 
k*=5000;
k/=4095;
h=k;
for(i=4;i>0;i--)
{
for_display[i-1]=h%10;
h/=10;
}
}

void main()
{
initial_7221();
while(1)
{
read_144();
change();
display_7221();
delay();
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -