📄 main.c
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#define ZLG7290 0x70
#define org 0xfe3e//0xfe3e
#define pur 0x9131//0xf01f
#define wordx 31
#define wordy 31
#define line1 0
#define line2 50
#define line3 95
#define line4 140
#define line5 185
#define line6 230
#define line7 275
#define line8 320
#define col1 0
#define col2 45
#define col22 75
#define col3 105
#define col33 135
#define col4 165
#define col5 240
extern uint16 pic1[];
extern uint16 pic2[];
extern uint16 pic3[];
extern uint16 pic4[];
extern uint16 pic5[];
extern uint16 pic6[];
extern uint8 word[];
void DelayNS(uint32 dly)
{
uint32 i;
for(; dly>0; dly--)
{
for(i=0; i<5000; i++);
}
}
/****************************************************************************
* 名 称:I2C_Init()
* 功 能:主模式I2C初始化,包括初始化其中断为向量IRQ中断。
* 入口参数:fi2c 初始化I2C总线速率,最大值为400K
* 出口参数:无
****************************************************************************/
void I2C_Init(uint32 fi2c)
{
if(fi2c>400000) fi2c = 400000;
PINSEL0 = (PINSEL0 & (~0xF0)) | 0x50; // 不影响其它管脚连接,设置I/O连接到I2C
I2SCLH = (Fpclk/fi2c + 1) / 2; // 设置I2C时钟为fi2c
I2SCLL = (Fpclk/fi2c) / 2;
I2CONCLR = 0x2C;
I2CONSET = 0x40; // 使能主I2C
/* 设置I2C中断允许 */
VICIntSelect = 0x00000000; // 设置所有通道为IRQ中断
VICVectCntl0 = 0x29; // I2C通道分配到IRQ slot 0,即优先级最高
VICVectAddr0 = (int)IRQ_I2C; // 设置I2C中断向量地址
VICIntEnable = 0x0200; // 使能I2C中断
}
/****************************************************************************
* 名 称: disword
* 功 能:调用字库,所有字均在文件wordname.c中
* 入口参数:带入口参数x0,y0,x1,y1表示字符起始及终止位置,color表示字符的底色(是否选中此行)
n表示字的位置码,字符的点阵为32×32,存储在word中从no*128开始的128个字节中;
* 出口参数:无
****************************************************************************/
void disword(uint32 x1,uint32 y1,uint32 color,uint8 n)
{
uint32 x,y,i=0,no;
uint8 middat,dat;
no=n*128;
middat=word[no];
for(y=0; y<y1; y++)
{ for(x=0; x<x1; x++)
{dat=middat&0x80;
if(dat==0)
TftSendDat(color);
else
TftSendDat(BLACK);
middat=middat<<1;
i++;
if(i==8)
{ i=0;
no++;
middat=word[no];
}
}
}
}
/****************************************************************************
* 名 称: disword(*)
* 功 能:显示字符
* 入口参数:“菜单”没有入口参数,其他字符带入口参数stat,表示字符的底色(是否选中此行)
* 出口参数:无
****************************************************************************/
void diswordmune(void)
{ //“姓名”
TftSetWindow(col22,line1+15,col22+wordx,line1+15+wordy);
TftSetWrite(col22,line1+15);
disword(wordx,wordy,WHITE,0);
TftSetWindow(col33,line1+15,col33+wordy,line1+15+wordy);
TftSetWrite(col33,line1+15);
disword(wordx,wordy,WHITE,1);
}
void diswordorg(uint8 stat) //“吴鸿”
{ uint32 color;
if(stat==0)
color=WHITE;
else
color=org;
TftSetWindow(col2,line3+8,col2+wordx,line3+8+wordy);
TftSetWrite(col2,line3+8);
disword(wordx,wordy,color,2);
TftSetWindow(col4,line3+8,col4+wordx,line3+8+wordy);
TftSetWrite(col4,line3+8);
disword(wordx,wordy,color,3);
}
void diswordgre(uint8 stat) //“陈晓”
{uint32 color;
if(stat==0)
color=WHITE;
else
color=GREEN;
TftSetWindow(col2,line5+8,col2+wordx,line5+8+wordy);
TftSetWrite(col2,line5+8);
disword(wordx,wordy,color,4);
TftSetWindow(col4,line5+8,col4+wordx,line5+8+wordy);
TftSetWrite(col4,line5+8);
disword(wordx,wordy,color,5);
}
void diswordred(uint8 stat) //“田永慧”
{uint32 color;
if(stat==0)
color=WHITE;
else
color=RED;
TftSetWindow(col2,line2+8,col2+wordx,line2+8+wordy);
TftSetWrite(col2,line2+8);
disword(wordx,wordy,color,6);
TftSetWindow(col3,line2+8,col3+wordx,line2+8+wordy);
TftSetWrite(col3,line2+8);
disword(wordx,wordy,color,7);
TftSetWindow(col4,line2+8,col4+wordx,line2+8+wordy);
TftSetWrite(col4,line2+8);
disword(wordx,wordy,color,8);
}
void diswordyel(uint8 stat) //“乐应英”
{uint32 color;
if(stat==0)
color=WHITE;
else
color=YELLOW;
TftSetWindow(col2,line4+8,col2+wordx,line4+8+wordy);
TftSetWrite(col2,line4+8);
disword(wordx,wordy,color,9);
TftSetWindow(col3,line4+8,col3+wordx,line4+8+wordy);
TftSetWrite(col3,line4+8);
disword(wordx,wordy,color,10);
TftSetWindow(col4,line4+8,col4+wordx,line4+8+wordy);
TftSetWrite(col4,line4+8);
disword(wordx,wordy,color,11);
}
void diswordblu(uint8 stat) // “李东芬”
{uint32 color;
if(stat==0)
color=WHITE;
else
color=BLUE;
TftSetWindow(col2,line6+8,col2+wordx,line6+8+wordy);
TftSetWrite(col2,line6+8);
disword(wordx,wordy,color,12);
TftSetWindow(col3,line6+8,col3+wordx,line6+8+wordy);
TftSetWrite(col3,line6+8);
disword(wordx,wordy,color,13);
TftSetWindow(col4,line6+8,col4+wordx,line6+8+wordy);
TftSetWrite(col4,line6+8);
disword(wordx,wordy,color,14);
}
void diswordpur(uint8 stat) //“陈瑶玲”
{uint32 color;
if(stat==0)
color=WHITE;
else
color=pur;
TftSetWindow(col2,line7+8,col2+wordx,line7+8+wordy);
TftSetWrite(col2,line7+8);
disword(wordx,wordy,color,4);
TftSetWindow(col3,line7+8,col3+wordx,line7+8+wordy);
TftSetWrite(col3,line7+8);
disword(wordx,wordy,color,15);
TftSetWindow(col4,line7+8,col4+wordx,line7+8+wordy);
TftSetWrite(col4,line7+8);
disword(wordx,wordy,color,16);
}
/****************************************************************************
* 名 称:Disp'color'rank
* 功 能:重写色条
* 入口参数:x0,y0,x1,y1指示色条起始位置,color指示该条的颜色
* 出口参数:无
****************************************************************************/
void Dispcolorrank(uint32 x0,uint32 y0,uint32 x1,uint32 y1,uint32 color)
{
uint32 x,y;
for(y=y0; y<y1; y++)
{ for(x=x0; x<x1; x++)
{
TftSendDat(color);
}
}
}
/****************************************************************************
* 名 称:Disp'color'all
* 功 能:以全屏重写方式滚动色条
* 入口参数:无
* 出口参数:无
****************************************************************************/
void Dispredall(void) //红色
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,line1);
Dispcolorrank(col1,line1,col5,line2,WHITE);
Dispcolorrank(col1,line2,col5,line3,RED);
Dispcolorrank(col1,line3,col5,line8,WHITE);
diswordmune();
diswordred(1);
diswordorg(0);
diswordyel(0);
diswordgre(0);
diswordblu(0);
diswordpur(0);
}
void Disporgall(void) // 橙色
{
TftSetWindow(0,0,239,319);
TftSetWrite(col1,line1);
Dispcolorrank(col1,line1,col5,line3,WHITE);
Dispcolorrank(col1,line3,col5,line4,org);
Dispcolorrank(col1,line4,col5,line8,WHITE);
diswordmune();
diswordred(0);
diswordorg(1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -