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

📄 9851.c

📁 内附信号发生芯片9851(AD公司生产)的单片机程序
💻 C
字号:
#include "reg52.h"
#include "9851ZLG7289.h"
#include "lcd9851.h"
sbit load=P1^0;
sbit clk=P1^1;
sbit ddat=P1^4;
unsigned long ff=100000;
/*
void delay1(unsigned int t)
	{
	while(t--);
	}
*/

void display9851()
{
	unsigned char a,b,c,d,e,f,g,h;
	a=ff/10000000;
	b=ff%10000000/1000000;
	c=ff%1000000/100000;
	d=ff%100000/10000;
	e=ff%10000/1000;
	f=ff%1000/100;
	g=ff%100/10;
	h=ff%10;
	tab1[36]=a+0x30;
	tab1[37]=b+0x30;
	tab1[38]=c+0x30;
	tab1[39]=d+0x30;
	tab1[40]=e+0x30;
	tab1[41]=f+0x30;
	tab1[42]=g+0x30;
	tab1[43]=h+0x30;
	chn_disp(tab1);
}


void write_dds(unsigned long f)
	{
	unsigned char temp=0x80;
	unsigned char i;
	load=0;
	clk=0;
	for(i=0;i<40;i++)
		{
		clk=0;
		delay2(30);
		if((f&0x00000001)||(i==32))
			{
			ddat=1;
			}
		else ddat=0;

		delay2(20);

		clk=1;
		delay2(20);
		f=f>>1;
		}
	clk=0;
	load=1;
	delay2(50);
	load=0;
	}

void write_freq(unsigned long freq)
	{
	unsigned long dds;
	dds=23.860929422*freq;	
	write_dds(dds);
	}

void main(void)
{


	unsigned char key;
	TMOD=0x01;
	Delay(100);
	ZLG7289_Init(4);
	Delay(100);
	ZLG7289_Reset(); 
	Delay(100);
			
	init_lcd ();
	delay1(200);
	clrram();
	chn_disp(tab1);
	delay1(1000);
//	init_dds();
//	write_freq(ff,phase);
//	Delay(5);
	write_freq(ff);
	while(1)
	{
			if(ZLG7289_pinINT==0)
    		{Delay(5);
    		while(ZLG7289_pinINT);
        	key=ZLG7289_Key();
			while(!ZLG7289_pinINT);
			if(key==7) 	{ff+=1;write_freq(ff);display9851();}
			if(key==0) 	{ff+=10;write_freq(ff);display9851();}
			if(key==1) 	{ff+=100;write_freq(ff);display9851();}
			if(key==2) 	{ff+=1000;write_freq(ff);display9851();}
			if(key==3) 	{ff+=10000;write_freq(ff);display9851();}
			if(key==4) 	{ff+=100000;write_freq(ff);display9851();}
			if(key==5) 	{ff+=1000000;write_freq(ff);display9851();}
			if(key==15) {ff-=1;write_freq(ff);display9851();}
			if(key==8) 	{ff-=10;write_freq(ff);display9851();}
			if(key==9) 	{ff-=100;write_freq(ff);display9851();}
			if(key==10) {ff-=1000;write_freq(ff);display9851();}
			if(key==11) {ff-=10000;write_freq(ff);display9851();}
			if(key==12) {ff-=100000;write_freq(ff);display9851();}
			if(key==13) {ff-=1000000;write_freq(ff);display9851();}
			}
	}

}

⌨️ 快捷键说明

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