📄 maintext.c
字号:
//*----------------------------------------------------------------------------
//* ATMEL Microcontroller Software Support - ROUSSET -
//*----------------------------------------------------------------------------
//* The software is delivered "AS IS" without warranty or condition of any
//* kind, either express, implied or statutory. This includes without
//* limitation any warranty or condition with respect to merchantability or
//* fitness for any particular purpose, or against the infringements of
//* intellectual property rights of others.
//*----------------------------------------------------------------------------
//* File Name : main.c
//* Object : Basic twi example. Write a byte into EEPROM and read it
//* Creation : NL 25/11/02
//*
//*----------------------------------------------------------------------------
#include "main.h"
#define AT91_SYS ((AT91PS_SYS) AT91C_BASE_SYS)
#define LcdCom *(volatile unsigned char *)0x50000001
#define LcdData *(volatile unsigned char *)0x50000000
#define AT91C_SM_RWHOLD (0 << 28)
#define AT91C_SM_RWSETUP (0 << 24)
#define AT91C_SM_ACESS (0 << 16) /* orig = 0 */
#define AT91C_SM_DRP (0 << 15) /* orig = 0 */
#define AT91C_SM_DBW (2 << 13) /* orig = 0 */
#define AT91C_SM_BAT (0 << 12) /* orig = 0 */
#define AT91C_SM_TDF (0 << 8) /* orig = 0 */
#define AT91C_SM_WSEN (1 << 7) /* orig = 1 */
#define AT91C_SM_NWS (15) /* orig = 0 */
unsigned int checkvale, i, j;
unsigned char data[16] = {0x00,0x00,0x00,0xE0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x42,0xFE,0x00,0x00};
void delay(int temp)
{
int i;
for(i=0;i<temp;i++)
{
;
}
}
void CD(unsigned int temp)
{
if(temp)
AT91_SYS->PIOC_SODR |= AT91C_PIO_PC12; //set 1
else
AT91_SYS->PIOC_CODR |= AT91C_PIO_PC12; //set 0
delay(5);
}
void ReadySTA01() //读状态并判断STA0,STA1状态准备好
{
unsigned char flag = 1;
while((flag & 0x3) != 3)
{
CD(1);
flag = LcdCom;
//delay();
}
}
void ReadySTA3() //读状态并判断STA3状态准备好
{
unsigned char flag = 1;
while((flag & (1 << 3)) == 0)
{
CD(1);
flag = LcdCom;
//delay();
}
}
void LcdClr()
{
unsigned int R6;
ReadySTA01();
CD(0);
LcdData = 0x00;
ReadySTA01();
CD(0);
LcdData = 0x00;
ReadySTA01();
CD(1);
LcdCom = 0x24;
//ReadySTA01();
//CD(1);
//LcdCom = 0xb0;
for(R6=0;R6<0xFFFF;R6++)
{
//ReadySTA3();
//CD(0);
//LcdData = 0x00;
ReadySTA01();
CD(0);
LcdData = 0x00;
ReadySTA01();
CD(1);
LcdCom = 0xc0;
}
// ReadySTA3();
// CD(1);
// LcdCom = 0xb2;
}
unsigned char Val;
int main()
{
// enable direct output enable
AT91_SYS->PIOC_PER |= AT91C_PIO_PC12;
// enable output DAC0
AT91_SYS->PIOC_OER |= AT91C_PIO_PC12;
// AT91_SYS->PIOA_SODR |= AT91C_PIO_PA0;
//AT91_SYS->PIOA_CODR |= AT91C_PIO_PA0; //c/d
AT91_SYS->EBI_SMC2_CSR[4] = (AT91C_SM_RWHOLD | AT91C_SM_RWSETUP | AT91C_SM_ACESS |
AT91C_SM_DRP | AT91C_SM_DBW | AT91C_SM_BAT |
AT91C_SM_TDF | AT91C_SM_WSEN | AT91C_SM_NWS);
/*
while(1)
{
ReadySTA01();
LcdData = 0x80;
delay();
}
*/
//cursor set
//ReadySTA01();
//LcdData = 0x00;
//ReadySTA01();
//LcdData = 0x00;
// LcdCom = 0x21;
//GRAPHIC HOME ADDRESS SET
ReadySTA01();
CD(0);
LcdData = 0x00;
ReadySTA01();
CD(0);
LcdData = 0x00;
ReadySTA01();
CD(1);
LcdCom = 0x42;
//GRAPHIC AREA SET
ReadySTA01();
CD(0);
LcdData = 0xFF;
ReadySTA01();
CD(0);
LcdData = 0x00;
ReadySTA01();
CD(1);
LcdCom = 0x43;
//"OR" mode
ReadySTA01();
CD(1);
LcdCom = 0x80; //or
//main test]
//Cursor pattern set 3 lines
ReadySTA01();
CD(1);
LcdCom = 0xa3;
while(1)
{
// ReadySTA01();
// LcdCom = 0x90; //display off
LcdClr(); //clear display start to test
ReadySTA01();
CD(1);
LcdCom = 0x98;
//draw dot
ReadySTA01();
CD(0);
LcdData = 0x00;
ReadySTA01();
CD(0);
LcdData = 0x00;
ReadySTA01();
CD(1);
LcdCom = 0x24;
CD(1);
LcdCom = 0xf8;
CD(1);
LcdCom = 0xf9;
CD(1);
LcdCom = 0xfA;
CD(1);
LcdCom = 0xfB;
CD(1);
LcdCom = 0xfC;
CD(1);
LcdCom = 0xfD;
CD(1);
LcdCom = 0xfE;
CD(1);
LcdCom = 0xff;
//display black
ReadySTA01();
CD(0);
LcdData = 0x00;
ReadySTA01();
CD(0);
LcdData = 0x01;
ReadySTA01();
CD(1);
LcdCom = 0x24;
ReadySTA01();
CD(1);
LcdCom = 0xb0;
for(i=0;i<16;i++)
{
ReadySTA01();
CD(0);
LcdData = data[i];
for(j=0;j<30;j++)
{
ReadySTA01();
CD(0);
LcdData = 0x00;
}
}
ReadySTA3();
CD(1);
LcdCom = 0xb2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -