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

📄 max187.c

📁 2001电子设计大赛《宽带放大器》的源程序
💻 C
字号:
// 程序调试成功 7/19

#include<reg51.h>
#include<absacc.h>
#define COM_8279 XBYTE[0X3FFF]
#define DAT_8279 XBYTE[0X3FFE]
#define DAC0832 XBYTE[0X7fff]
#define uchar unsigned char
#define uint unsigned int

//sbit SDI_536=p1^0;
//sbit SCK=p1^1;
sbit clflag=ACC^7;
sbit CS_187=P1^4;
sbit SDO_187=P1^5;
sbit SCK_187=P1^3;

uchar anjian;
uint ad_value=0,gain_value=10;
uchar diss[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};  //显示数组
uchar display[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar t;             // 为按键判断出在display[t]中的位置
uchar gainh,gainl,flag_gi=0,flag_gainh,flag_gainl;


void delay()
{
   uint i;
   for(i=0;i<30000;i++)
     ;
}

void max187()
{
	uchar i=0,t=0;

	CS_187=0;
	for(i=0;i<9;i++)    //延时8.5uS,等待转换结束
	{;}
	SCK_187=1;
	SCK_187=0;

	//开始读数据

	for(i=0;i<12;i++)
	{
		SDO_187=1;
		SCK_187=1;
                t=SDO_187;
                if(t==1)
			ad_value=ad_value|0x0001;
		SCK_187=0;
		if(i<11)
			ad_value<<=1;
	}
	i=i;
	i=i;
	i=i;
    CS_187=1;

}  

void disp()                   //显示函数
{
	uchar i,m=0;
    COM_8279=0x90;
	for(i=0;i<8;i++)          //写显示 8位 RAM
	{
		COM_8279=i+0x90;
		DAT_8279=diss[m];
		m++;
		if(m>7)
			m=0;
	}
}

void init()
{
	                    //其他初始化待定
    EA=1;
    EX1=1;
	COM_8279=0xd1;             //总清除命令
	do
	{
		ACC=COM_8279;
	}while(clflag==1);    //等待清除
	COM_8279=0x00;    //显示方式:8 位,左入口;键盘方式:编码扫描键盘,双键锁定
	COM_8279=0x3f;       //分频次数31 ,8279工作频率在100KHz左右
	COM_8279=0xb0;       // 显示RAM 恢复显示
}

/*
uchar deky(void)                 //判断FIFO有键按下函数
{
	uchar k;
	k=COM_8279;                         //读入 8279 状态字
	return(k&0x0f);               // 非0有键按下
}  */
/*
void jianzhi(uchar h)          // 键盘值判断,在数组display[t]选择对应的段码值
{
    if(h==0)
        t=0;
    else if(h==1)
        t=1;
    else if(h==2)
        t=2;
    else if(h==3)
        t=3;
    else if(h==8)
        t=4;
    else if(h==9)
        t=5;
    else if(h==10)
        t=6;
    else if(h==11)
        t=7;
    else if(h==16)
        t=8;
    else if(h==17)
        t=9;
}

void int1() interrupt 2         //键盘中断处理函数
{
	uchar i;
	while(deky()==0)                   //判断FIFO有键按否,若无则等待
	{;}
	COM_8279=0x40;                            //读FIFO RAM 命令
	i=DAT_8279;                              //取键盘数据低6位
	i=i&0x3f;
	anjian=i;                           //把按键值赋给 anjian (是FIFO中低6位的值)
	jianzhi(anjian);

}*/


void main()
{
        uint adzhi=0;
        uchar i=0,m;
	init();
	while(1)
	{
		max187();
	        adzhi=ad_value;
		for(i=0;i<8;i++)
		{
                        m=adzhi%10;
		        adzhi=adzhi/10;
                        diss[i]=display[m];
		}
		disp();
                ad_value=0;
                delay();
	}
}

⌨️ 快捷键说明

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