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

📄 main.c

📁 avr单片机操控ks0108c图形点阵液晶屏代码
💻 C
字号:
#include "board.h"
#include "KS0108.h"
#include<iom8v.h>
#include"init.h"
#include "serial.h"
#include<macros.h>
#include "gra.h"
#include "printk.h"
u8 const menu1[] = {0x7A,0x7C,0x80,0x82,0x84,0x86,0x8C,0x8E,0x00};  
void main(void){
     unsigned char i=0;
	 init_devices();
	 printf("KS0108 DEBUG Ver0.03\r\n");
	 printf("Init device finash.\r\n");
   	 InitLcd();
	 printf("Init lcd finash.\r\n");
	 Clr();
	 printf("clr lcd finash.\r\n");
	 printf("Into main loop shell wait for shell command.\r\n");
	 demo();
	 while(1){
	    u8 ch;
	    if(kbhit()){
		    ch = getchar();
			putchar(ch);
			switch(ch){
			   case '1':{
			      //printk("hello printk:0x%x\r\n",1260);
			      break;
			   }
			   case '5':{
			       Clr();
				   break;
			   }
			   case 'c':{
			       u8 i;
				   i = 0;
			       outchar(0,0,'L');
				   outchar(0,i+=10,'C');
				   outchar(0,i+=10,'D');
				   break;
			   }
			   case 'd':{
                   demo();
				   break;
			   }
			   case 'e':{
			       u8 i,j;
				   j = 0;
				   for(i=0;i<8;i++){
				       putchar(j + '0');
					   getchar();
				       outhz(0,i*16,0x7A + j);
					   j += 2; 
					   
				   }
				   
			       break;
			   }
			   case 'f':{
			       u8 i;
				   u8 uTemp[2];
				   for(i=0;i<0xAE;i++){
				        uTemp[0] = i>>4;
						uTemp[1] = i & 0x0F;
				        if (uTemp[0] > 9)
                            uTemp[0] += 7;
					    if (uTemp[1] > 9)
                            uTemp[1] += 7;	
						uTemp[0] += '0';
						uTemp[1] += '0';        						
                        outchar(0,0,'0');
						outchar(0,8,'x');
						outchar(0,16,uTemp[0]);
						outchar(0,24,uTemp[1]);
						outchar(0,32,'=');
 				        outdot(0,40,i);
						getchar();     
				   } 
				   break;
				   
			   }
			}
		}
     }
}

//---------------------------------
//NAME:us delay function
//Delay = 0.125 *((time*4-1)+9) 微秒
//      = 0.5time + 1;
//8Mhz晶体
//---------------------------------
void DelayUs(u8 time){
    time = time;
    asm("_L2: subi R16,1");  
    asm(" nop") 
    asm(" brne _L2");
    asm(" nop");
    asm(" ret");
}
void DelayMs(u16 time){
    u16 i;
	while(time){
        for(i=0;i<250;i++){
            DelayUs(2);
     	    DelayUs(2);
    	}
		time -= 1;
	}
}

void demo(void){
 			       u8 i;
				   while(1){
				   Clr();
				   i = 0;
			       //outtext(i,0,"#$%*<^+!()-?.,':");
				   outtext(i,0,"#$%*<^+!()-?.,':");
				   i += 16;
				   outtext(i,0,";0123456789abcde");
				   i += 16;
				   outtext(i,0,"ABCDEFGHIJKLMNOP");
				   i += 16;
				   outtexthz(i,0,&menu1[0]);
				   DelayMs(4000);
				   #if USE_DRAW_SIN
				   Clr();
				   DrawSin();	
				   DelayMs(1000);
				   #endif 
				   Clr();
				   i = 0;
				   outtexthz(i,0,&menu1[0]);
				   i += 16;
				   outtext(i,0,"Tel:            ");
				   i += 16;
				   outtext(i,0,"+860371-67947944");
				   i += 16;
				   outtext(i,0,"   2006-02-01   ");	
				   DelayMs(4000); 
				   
				   Clr();
				   i = 0;
				   outtext(i,0,"This program is ");
				   i += 16;
				   outtext(i,0,"a KS0108 tester.");
				   i += 16;
				   outtext(i,0,"    Ver0.04     ");
				   i += 16;
				   outtext(i,0,"Aut:ZhangYiFeng ");
				   DelayMs(4000);
				   
		   
				     
				   }
}				   

⌨️ 快捷键说明

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