📄 demo.c
字号:
#include <reg51.h>
#include <stdio.h>
#include <math.h>
#include <absacc.h>
#include <string.h>
/* 设置地址 */
#define d_add XBYTE[0x8000]
#define c_add XBYTE[0x8100]
/* MD3,MD2设置值 */
#define para1 64;
/* 设置判忙位 */
sbit Acc_0=ACC^0;
sbit Acc_1=ACC^1;
sbit Acc_2=ACC^2;
sbit Acc_3=ACC^3;
/* X,Y轴坐标 */
unsigned int O_X,O_Y,com,dat1,dat2;
/**********************/
/* 演示主程序 */
/**********************/
void main()
{
unsigned int i,j,k,a;
INT_1(); /* 初始化函数 */
CLEAR(); /* 清屏函数*/
a=para1; /* 绘点 */
for(k=0;k<320;) /* 屏宽度 */
{
for(j=0;j<a;j++)
{
O_X=k; /* 设置X轴坐标 */
O_Y=j; /* 设置Y轴坐标 */
WRI_D(); /* 调绘点函数*/
k++;
}
for(j=a;j>0;j--)
{
O_X=k;
O_Y=j;
WRI_D();
k++;
}
}
}
/************************/
/* 初始化函数 */
/************************/
INT_1()
{
dat1=0x00; /*设文本显示区域首地址*/
dat2=0x00;
com=0x40;
PR1();
dat1=para1; /*设文本显示区域宽度*/
dat2=0x00;
com=0x41;
PR1();
dat1=0x00; /*设图形显示区域首地址*/
dat2=0x08;
com=0x42;
PR1();
dat1=para1; /*设图形显示区域宽度*/
dat2=0x00;
com=0x43;
PR1();
com=0xa0; /*光标形状设置*/
PR12();
com=0x80; /*显示方式设置逻辑"或"合成*/
PR12();
com=0x9c; /*显示开关设置 开文本和图形显示*/
PR12();
}
/**************************/
/* 清显示函数 */
/**************************/
CLEAR()
{
unsigned int i,j,a;
a=para1;
dat1=0x00; /* 设置显示存储器首地址 */
dat2=0x00;
com=0x24;
PR1();
com=0xb0;
PR12();
for(i=0;i<(8*1024)/a;i++) /* 清显示区(8K字节) */
{
for(j=0;j<a;j++)
{
ST3();
d_add=0x00;
}
}
com=0xb2;
PR12();
}
/************************/
/* 绘点函数 */
/************************/
WRI_D()
{
unsigned int j,k;
unsigned char i;
k=para1;
i=O_X%8;
O_X=O_X/8;
j=k*O_Y+O_X+0x0800; /* 图形显示区首地址为0x0800 */
dat1=j%256;
dat2=j/256;
com=0x24; /* 设置显示RAM地址 */
PR1();
i=0x07-i; /* 设置置/消点位 */
com=i|0xf8; /* 设置位操作指令 */
PR12();
}
/*************************/
/* 写数据函数 */
/*************************/
PR1()
{
ST01();
d_add=dat1;
PR11();
PR12();
}
PR11()
{
ST01();
d_add=dat2;
PR12();
}
/*************************/
/* 写指令函数 */
/*************************/
PR12()
{
ST01();
c_add=com;
}
/***************************/
/* 判"S1,S0"函数 */
/***************************/
ST01()
{
do
{
ACC=c_add;
}
while(Acc_0==0,Acc_1==0);
}
/***********************/
/* 判"S3" */
/***********************/
ST3()
{
do
{
ACC=c_add;
}
while(Acc_3==0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -