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

📄 111.c

📁 产生方波
💻 C
字号:
#include"bit.h"
//#include"lcd1.h"
#include"SPCE061A.h"
#include"sp.h"
void keyscan();
/*------------------延时子程序-----------------------------*/
void delay(unsigned int t)
{  
   unsigned int i,j;
   for(i=0;i<t;i++)
      for(j=0;j<10;j++)
      {
      	*P_Watchdog_Clear=0x0001;
      }
}
/*------------------写命令到LCD------------------------------*/
void write_com(unsigned char cmdcode)
{
	RS=0;
	RW=0;
	E=1;
	P0_Lowbyte=cmdcode;
	delay(2);           //在数据写入的时候加入适当的延时
	E=0;
}
/*-------------------写数据到LCD----------------------------*/
void write_data(unsigned char Dispdata)
{
	RS=1;
	RW=0;
	E=1;
	P0_Lowbyte=Dispdata;
	delay(2);             //在数据写入的时候加入适当的延时
	E=0;
}
/*------------------初始化LCD屏--------------------------*/
void lcdreset()
{  
   write_com(0x30);       //选择基本指令集,选择8bit数据流
   write_com(0x0c);       //开显示(无游标、不反白)
   write_com(0x01);       //清除显示,并且设定地址指针为00H
   write_com(0x02);       /*DDRAM地址归位*/ 
   write_com(0x80);       //设置DDRAM地址
   write_com(0x10);       //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
}
/*------------------显示字符串--------------------------*/
void hzkdis(const unsigned char *s)
{  
   while(*s>0)
   {  
   	  write_data(*s);
      s++;
      delay(5);
   }
}
/*------------------清整个GDRAM空间----------------------------*/
void clrgdram()
{
        unsigned char x,y;
        for(y=0;y<64;y++)
         for(x=0;x<16;x++)
         {  
            write_com(0x34);
            write_com(y+0x80);     //行地址
            write_com(x+0x80);     //列地址
            write_com(0x30);
            write_data(0x00);
            write_data(0x00);
         }
}
/*------------------清屏命令--------------------------*/  
void clrscreen()
{ 
   write_com(0x01);
   delay(5);
}  
/*------------------首屏显示--------------------------*/
void shouping_display()
{  
   
   write_com(0x30);
   clrscreen();  
   write_com(0x80);
   hzkdis("老师好");
   write_com(0x90);
   hzkdis("您辛苦了");
   write_com(0x88);
   hzkdis("开关稳压电源");
   write_com(0x98);
   hzkdis("作者:李萌");
   write_com(0xb2);
   hzkdis("安洪江");
   write_com(0xa9);
   hzkdis("刘飞跃");
} 
int main()
{
   unsigned int uiOutput;
   uiOutput=0x0000;
   *P_IOA_Dir = 0xFFFF;                 
   *P_IOA_Attrib = 0xFFFF; 
   *P_IOA_Data = 0x0000; 
   *P_IOB_Dir = 0xFF03;                 
   *P_IOB_Attrib = 0xFF03; 
   *P_IOB_Data = 0x0001; 
   PSB=1;  
   RES=0;
   delay(100);
   RES=1;
   while(1)
   { 
   	  *P_Watchdog_Clear=0x0001;
      lcdreset();                   //初始化LCD屏          
      shouping_display();             //显示诗
      delay(100);
      clrgdram();      
       write_com(0x04);          //第一行反白显示
       delay(5000);
       write_com(0x04);          //第一行恢复正常
       delay(5000);
       write_com(0x05);          //第二行反白显示
       delay(5000);
       write_com(0x05);          //第二行恢复正常
       delay(5000);
          
       write_com(0x03);         //垂直滚动屏幕的内容
       write_com(0x60);
       delay(5000); 
       write_com(0x30);
       clrscreen();  
       write_com(0x80);
       hzkdis("开关稳压电源");
       write_com(0x90);
       hzkdis("输出电压");
       write_com(0x97);
       hzkdis("V");
       write_com(0x88);
       hzkdis("设定输出电压");
       delay(2000);
       *P_INT_Ctrl=C_IRQ1_TMA;
       asm("INT OFF");
       *P_TimerA_Ctrl=0x0230; 
       *P_TimerA_Data=0xcfff; 
       while(1)
        {
         *P_Watchdog_Clear = C_WDTCLR;
         
         if(*P_INT_Ctrl&C_IRQ1_TMA)
          {
           *P_INT_Clear=C_IRQ1_TMA; //clear INT flag
           uiOutput ^= 0xFFFF; //reverse
           *P_IOB_Data=uiOutput; //output rectangle
          }
        }
     }
   return(0);
}


⌨️ 快捷键说明

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