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

📄 display.c

📁 Graphic Library for KS0108 Controller (128x64 Dot Display). Written with gss AVR- Compiler.
💻 C
字号:
//************************************************************************
// Datei: display.c
// Hauptprogramm
//
// Demoprogramm um Text und Grafik auf
// KS108 Grafik-LCD-Display anzuzeigen
// Display: Displaytech 64240A 240x64 Pixel
//
// Erl鋟terungen zu den Funktionen stehen in den entsprechenden
// *.c Dateien.
//
// hk@holger-klabunde.de
// http://www.holger-klabunde.de
// 04.10.2003
// Compiler WinAVR 3.3
//************************************************************************
// Prozessor: ATMega128
//************************************************************************

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <stdlib.h>
#include <string.h>

#include "protos.h"
#include "paul.h"
#include "demo.h"
//#include "serial.h"

int main(void)
{
//1 ist Ausgang
//0 ist Eingang
 int i;
 
// ser_init(); //Serielle Schnittstelle einstellen

 sei();              //enable interrupts

 DisplayOn();

//Beginn Endlosschleife
 while(1)
  {

 ClearScreen();

 SetGCursor(0,0);     
 DrawLineAbs(239,0,0);  //Die 0 hinten hei遲 letzte Position merken
   Delay1ms(250);
 DrawLineAbs(239,63,0);
   Delay1ms(250);
 DrawLineAbs(0,0,0);    //ergibt ein gro遝s Dreieck
   Delay1ms(250);

 SetGCursor(200,32);
 DrawLineRel(-10,-10,1); //Die 1 hinten hei遲 letzte Position NICHT merken
   Delay1ms(250);
 DrawLineRel(5,-10,1);   //Strahlen zeichnen, alle mit demselben Ausgangspunkt
   Delay1ms(250);
 DrawLineRel(-10,5,1);
   Delay1ms(250);
 DrawLineRel(20,10,1);
   Delay1ms(250);

 SetGCursor(0,55);
 for(i=0; i<9; i++) //Eine merkw黵dige Achse zeichnen
  {
   DrawLineRel(0,-5,1); //Strich nach oben, Cursor nicht 鋘dern
   Delay1ms(250);
   DrawLineRel(5,5,1);  //Strich nach rechts unten, Cursor nicht 鋘dern
   Delay1ms(250);
   DrawLineRel(10,-3,0);//Strich nach rechts oben, letzte Position merken 
   Delay1ms(250);
  }
 Delay1ms(3000);
 
 ClearScreen();
 Circle(60,32,30,6); //Kreisrand nicht geschlossen
 Circle(60,32,20,3); //Kreisrand geschlossen
 Circle(60,32,10,3); //Kreisrand geschlossen

 FillCircle(140,32,30,2); //Bei step=3 gibts L鋘gsstreifen im Kreis
 FillCircle(180,10,10,6); //Keine L鋘gsstreifen im Kreis
 FillCircle(200,40,20,3); //Keine L鋘gsstreifen im Kreis
 Delay1ms(3000);

 ClearScreen();
 LoadBitmap(paulbmp, 0 , 0, paulWIDTH, paulHEIGHT);  //Bitmap laden
 LoadBitmap(paulbmp, 121 , 0, paulWIDTH, paulHEIGHT); //Noch eine Bitmap laden
 LoadBitmap(paulbmp, 199 , 32, paulWIDTH, paulHEIGHT);
 Delay1ms(3000);

 ClearScreen();
 LoadBitmap(demobmp, 0 , 0, demoWIDTH, demoHEIGHT);   //Bitmap f黮lt ganzes Display
 Delay1ms(3000);

 ClearScreen();
 DrawRect(0,0,LCD_WIDTH,LCD_HEIGHT);     //Ganzen Bildschirm mit 3 Pixel Breite umranden
 DrawRect(1,1,LCD_WIDTH-2,LCD_HEIGHT-2);
 DrawRect(2,2,LCD_WIDTH-4,LCD_HEIGHT-4);
 
 FillRect(5,5,LCD_WIDTH-10,LCD_HEIGHT-10); //Gro遝 Fl鋍he f黮len, flimmert es ? ;)
 Delay1ms(3000);

 ClearScreen();                     
 DrawRect(0,0,LCD_WIDTH,LCD_HEIGHT);
 DrawLine(0,0,LCD_WIDTH,LCD_HEIGHT); //Schr鋑e Linien zeichnen links nach rechts
 DrawLine(LCD_WIDTH,0,0,LCD_HEIGHT); //und andersrum
 DrawLine(0,0,LCD_WIDTH/2,LCD_HEIGHT); //Schr鋑e Linien zeichnen links nach rechts
 DrawLine(LCD_WIDTH/2,0,0,LCD_HEIGHT); //und andersrum
 DrawLine(LCD_WIDTH/2,0,LCD_WIDTH,LCD_HEIGHT); //Schr鋑e Linien zeichnen links nach rechts
 DrawLine(LCD_WIDTH,0,LCD_WIDTH/2,LCD_HEIGHT); //und andersrum
 Delay1ms(3000);

 ClearScreen();                     
//Software Fonts. Schreiben ist langsam, daf黵 auf einen Pixel genau plazierbar
 SetFont(4);
//Umlaute unter Windows hier im DOS-Modus eintippen !
 LCDSoftText("F16x8a SoftFont gjqy剶亷櫄

⌨️ 快捷键说明

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