)
// 2、整屏擦除(可对于功能1和功能2模块操作)
// 3、光笔擦除(可对于功能1和功能2模块操作)
// 4、对象拖移(可对于功能1和功能2模块操作)
// 5、写字存储(可对于功能1和功能2模块操作)PS:由于时间问题,
// 而且这个功能题目没要求,暂先搁置
// 6、自动调光参数设置,即调整使用者喜好的屏幕亮度级别,
// 而同时,系统会在这个级别内对LED屏根据环境光强的变化而自动调光
// 7、超时待机时间设定
//
//联系人:唐敏健(15014225360/380467850@)
//
//****************************************************************************
#include"myself.h"
#include<reg52.h>
#include<intrins.h>
uchar LED_CODE[5][4]= /*LED灯的列编码,每个LED灯的编码为5位数据(0到2^5),每次要给32列LED灯同步输出1位数据,共5次。*/
{ /*这些数据由于操作频率高,故把它们定义在内部RAM中*/
0X00,0X00,0XFF,0XFF,
0X00,0XFF,0X00,0XFF,
0X0F,0X0F,0X0F,0X0F,
0X33,0X33,0X33,0X33,
0X55,0X55,0X55,0X55
};
uchar LED_ROW,LED_LINE,N; //存放当前光笔坐标的全局变量,系统初始化时把它设为99(任意一个大于32的数)
uchar ROW_TEMP; //扫描时行坐标的”临时变量“(全局变量),以便进入中断后,LED_ROW=ROW_TEMP,保存起来
uchar KEYS=0; //存储按下的按键编号,初始化为0,
uchar li_level=10;
uchar men_lig=10;
uchar min=0,sec=0;
uchar sleepmin=5; //默认超时5分钟待机
//sbit pen_key=P3^3; //光笔按键P3^3是INT0,所以要在初始化阶段关闭外部中断0
//sbit OUT_EN =P1^7;
uchar xdata LEDDATA0[32][4],LEDDATA1[32][4],LEDDATA2[32][4],LEDDATA3[32][4],LEDDATA4[32][4];
//存放整屏数据的数组,屏幕数据量为32/8*32字节
size point[4]; //二维数组的指针数组
void delay_us( int us)
{
while(us>0)
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();//24条空操作指令为1US,现在为20条
us--;
}
}
void main()
{
uchar light_T;
N=3;
light_T=0;
relay=0;
point[0]=LEDDATA1;point[1]=LEDDATA2;
point[2]=LEDDATA3;point[3]=LEDDATA4;
//**********************
//定时器1初始化
TL0 = _TH0_TL0_ % 256;
TH0 = _TH0_TL0_ / 256 + (char)CY;
TR0 = 1;
//*****************
//sys_init(); //系统初始化,把4个数组首地址放进point[4]中去
while(1)
{
one_
word(LEDDATA0,writting); //扫描一个点并予以显示
KEYS=getkey(); //AD扫描按键,其实按键扫描1秒钟内进行10次足矣,不必跟随这个dis_play()做至少20次的扫描,
//因为人的手不可能