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

📄 1.c

📁 此为DDS9851信号发生器完整源程序,功能开发十分齐全~
💻 C
字号:
 #include <reg51.h>
 #include <stdio.h>
 #include <math.h>

 #define uchar unsigned char
 #define addata P0
 #define data_da P3

 sbit BF=P0^7;
 sbit RS=P1^0;
 sbit R_W=P1^1;
 sbit EN=P1^2;
 sbit OE=P1^4;
 sbit clock=P1^5;
 sbit key=P1^7;

 uchar *a_poit;
 uchar a[16];
 uchar w;

//void delay(void){     //延时约1s
   //uchar i,j;
   //for(i=0;i<160;i++){
     //for(j=0;j<200;j++){;}
   //}
 //}


void checkbush (void) {    //LCD查忙子函数

  uchar i=20;
  while(i--);

}


void write_instruction(uchar x) {    //写指令码到IR寄存器子函数

    checkbush();
    EN=0;
    RS=0;
    R_W=0;
    EN=1;
    data_da=x;
    EN=0;

}


void write_lcddata(uchar x)  {     //写资料到DR寄存器子函数

    checkbush();
	EN=0;
	RS=1;
	R_W=0;
	EN=1;
	data_da=x;
	EN=0;

}


//void cls(void)  {     //清除显示器子函数

    //ACC=0x01;
	//write_instruction(ACC);

//}


//void initial(void)  {     //启动LCM子函数

    //ACC=0x38;             //8bits汇流排、显示两行、使用5*7字型
	//write_instruction(ACC);

///	ACC=0x0e;             //显示器显示光标但光标不闪烁
    ///write_instruction(ACC);

	//ACC=0x06;             //光标右移一格且AC的值加1
//	write_instruction(ACC);

//}

void show_line(uchar *line){
   while(*line){
     ACC=*line++;
     write_lcddata(ACC);
   }
}

void lcdshow(void) interrupt 1 using 2{
   TR0=0;
   TH0=(65536-1000)/256;
   TL0=(65536-1000)%256;
   //clock=!clock;

   a_poit=&a[0];
   ACC=0x80;
   write_instruction(ACC);
   show_line(a_poit);

   TR0=1;
}


void main(void){

  //uchar a[16];
  OE=0;
  clock=0;
  TMOD=0x01;
  TH0=(65536-1000)/256;
  TL0=(65536-1000)%256;
  //EA=1;
  ET0=1;
  TR0=1;

  while(1){
	 for (w=0;w<15;w++){
       a[w]=addata & 0xff;
	   clock=!clock;
	 }
  }

}//main






⌨️ 快捷键说明

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