?? main.c
字號(hào):
/*2005年全國電子大賽懸掛運(yùn)動(dòng)控制系統(tǒng)主程序*/
/*燕山大學(xué)信息學(xué)院097隊(duì)*/
//#include <iom8v.h>
#include <iom32v.h>
#include <macros.h>
#include <eeprom.h>
#include <stdlib.h>
#include <math.h>
/***注意,連續(xù)5個(gè)/是為了調(diào)試設(shè)置的記號(hào)*****/
//#include "ziku.h"
/*里面存放包含文件子函數(shù)的聲明,所有子函數(shù)的聲明都方sub_funs.h里面*/
//#include "sub_funs.h"
/*字庫文件,也可以方到工程里面,就不用include了*/
//#include "ziku.h"
/*工程文件里面有delay.c<里面有延時(shí)子函數(shù)>,
dis.c<顯示函數(shù)>,
keyboard.c<鍵盤函數(shù)>
*/
/*************************/
#define uchar unsigned char
#define unit unsigned int
#define uint unsigned int
#define ulong unsigned long
#define xtal 8
#define fosc 8000000 //晶振8MHZ
#define baud 2400 //波特率
/*************************/
#define uchar unsigned char
#define unit unsigned int
#define uint unsigned int
#define ulong unsigned long
#define L 1150
#define P 150
#define one_size 0.2639 //0.2639
#define PI 3.1415926
#define E1 {del(10); PORTC|=0x08;del(10);PORTC&=~0x08;WDR();}
#define E2() {del(10); PORTC|=0x10;del(10);PORTC&=~0x10;WDR();}
#define E3 {del(10); PORTC|=0x20;del(10);PORTC&=~0x20;WDR();}
/***********************/
#define KEY_OK 15
#define KEY_FUN 14
#define KEY_UP 13
#define KEY_DOWN 12
#define KEY_LEFT 11
#define KEY_RIGHT 10
#define KEY_0 0
#define KEY_1 1
#define KEY_2 2
#define KEY_3 3
#define KEY_4 4
#define KEY_5 5
#define KEY_6 6
#define KEY_7 7
#define KEY_8 8
#define KEY_9 9
#define MENU_MAX 6 //菜單的數(shù)量
#define NULL 0
#define EE2() delay_us(10);PORTC|=(1<<4);delay_us(10);PORTC&=~(1<<4)
#define EN_DIS() PORTC|=(1<<4) /*使能LCD,PORTC4*/
#define DIS_DIS() PORTC&=~(1<<4)/*禁止LCD*/
#define DBUS PORTD /*PORTA為數(shù)據(jù)總線*/
#define OUT_DBUS() DDRD|=0xff /*設(shè)置數(shù)據(jù)線位輸出模式*/
#define IN_DBUS() DDRD=0x00 /*設(shè)置數(shù)據(jù)總線為輸入方式*/
#define OUT_D_Cx() DDRA|=0xFf /*設(shè)置控制線位輸出模式*/
#define SETDIF() PORTA|=0x02;EE2() /*PORTC.0為DIF標(biāo)志信號(hào)線*/
#define CLRDIF() PORTA&=(~0x02);EE2() /**/
#define SETRWF() PORTA|=0x04;EE2() /*PORTC.1為RWF標(biāo)志信號(hào)線*/
#define CLRRWF() PORTA&=(~0x04);EE2() /**/
#define SETEF() PORTA|=0x08;EE2() /*PORTC.2為EF標(biāo)志信號(hào)線*/
#define CLREF() PORTA&=(~0x08);EE2() /**/
#define SETCS1() PORTA|=0x10;EE2() /*PORTC.3為CS1標(biāo)志信號(hào)線*/
#define CLRCS1() PORTA&=(~0x10);EE2() /**/
#define SETCS2() PORTA|=0x20;EE2()/*PORTC.4為CS2標(biāo)志信號(hào)線*/
#define CLRCS2() PORTA&=(~0x20);EE2() /**/
#define SETRST() PORTA|=0x40;EE2() /*PORTC.5為RST標(biāo)志信號(hào)線*/
#define CLRRST() PORTA&=(~0x40);EE2() /**/
uint t_cnt=0;
/***********************/
/***********************/
//每一次步進(jìn) ss 的變化量
float ss1,ss2;///設(shè)定坐標(biāo)后的線長
float ss01,ss02;//原點(diǎn)時(shí)線長
float x,y;//當(dāng)前x,y?
char phase1,phase2;
uchar fx=0,fy=0,mode=0;
float seq[4];
///dui lie
//float px=0,py=0;//要顯示的坐標(biāo)值
//float yuan_s1=0,yuan_s2=0;
unit nx, ny;
uchar a;
uchar flag(void);
uchar getchar(void);
void del(unit time);
void delay(unsigned int n);
void write_step(void);
void draw_line_base(float x0,float y0);
void draw_line(float linex0,float liney0);
uchar xdat[4]={0xc0,0x60,0x30,0x90};
uchar ydat[4]={0x0c,0x06,0x03,0x09};
uchar xi,yi;
char sym_v;
/***********************/
/***********************/
const unsigned char A_Z[]={
0xF8,0x24,0x22,0x24,0xF8, //A
0x82,0xFE,0x92,0x92,0x6C, //B
0x7C,0x82,0x82,0x82,0x44, //C
0x82,0xFE,0x82,0x82,0x7C, //D
0x82,0xFE,0x92,0x92,0xC6, //E
0x82,0xFE,0x92,0x3A,0x06, //F
0x38,0x44,0x82,0xA2,0x66, //G
0xFE,0x10,0x10,0xFE,0x00, //H
0x82,0xFE,0x82,0x00,0x00, //I
0x40,0x82,0x82,0x7E,0x02, //J
0xFE,0x10,0x2C,0xC2,0x00, //K
0xFE,0x80,0x80,0x80,0x00, //L
0xFE,0x0E,0xF0,0x0E,0xFE, //M
0xFE,0x18,0x60,0xFE,0x00, //N
0x7C,0x82,0x82,0x82,0x7C, //O
0x82,0xFE,0x92,0x12,0x0C, //P
0x7C,0xA2,0xA2,0xC2,0x7C, //Q
0xFE,0x12,0x72,0x92,0x8C, //R
0xCC,0x92,0x92,0x92,0x66, //S
0x06,0x82,0xFE,0x82,0x06, //T
0x7E,0x80,0x80,0x7E,0x00, //U
0x0E,0x70,0xC0,0x70,0x0E, //V
0x0E,0xF0,0x1E,0xF0,0x0E, //W
0x82,0xCE,0x30,0xCE,0x82, //X
0x02,0x8E,0xF0,0x8E,0x02, //Y
0x82,0xE2,0x92,0x8E,0x82 //Z
};
const unsigned char a_z[]={
0x40,0xA8,0xA8,0xF0,0x00, //a
0xFE,0x90,0x90,0x60,0x00, //b
0x70,0x88,0x88,0x88,0x00, //c
0x60,0x90,0x90,0xFE,0x00, //d
0x70,0xA8,0xA8,0x30,0x00, //e
0x90,0xFC,0x92,0x12,0x00, //f
0x74,0xAA,0xAA,0xA6,0x42, //g
0xFE,0x10,0x10,0xE0,0x00, //h
0x10,0x7A,0x80,0x40,0x00, //i
0x40,0x88,0x7A,0x00,0x00, //j
0xFE,0x20,0xF0,0x88,0x00, //k
0xFE,0x80,0x40,0x00,0x00, //l
0xF8,0x08,0xF8,0x08,0xF0, //m
0x08,0xF0,0x08,0x08,0xF0, //n
0x70,0x88,0x88,0x70,0x00, //o
0xFC,0x24,0x24,0x18,0x00, //p
0x18,0x24,0x24,0xFC,0x00, //q
0x88,0xF8,0x90,0x08,0x08, //r
0x98,0xA8,0xA8,0xC8,0x00, //s
0x08,0x7E,0x88,0x40,0x00, //t
0x78,0x80,0x80,0x78,0x80, //u
0x08,0x38,0xC0,0x38,0x08, //v
0x18,0xE0,0x38,0xE0,0x18, //w
0x88,0xD8,0x20,0xD8,0x88, //x
0x9C,0xA0,0x7C,0x00,0x00, //y
0xC8,0xA8,0x98,0x88,0x00 //z
};
const unsigned char num0_9[]={
0x3e,0x51,0x49,0x45,0x3e, //0
0x42,0x7f,0x40,0x00,0x00, //1
0x42,0x61,0x51,0x49,0x46, //2
0x21,0x41,0x45,0x4b,0x31, //3
0x18,0x14,0x12,0x7f,0x10, //4
0x27,0x45,0x45,0x45,0x39, //5
0x3c,0x4a,0x49,0x49,0x30, //6
0x01,0x01,0x79,0x05,0x03, //7
0x36,0x49,0x49,0x49,0x36, //8
0x06,0x49,0x49,0x29,0x1e, //9
};
//空格
const unsigned char space[]={0x00,0x00,0x00,0x00};
//下畫線
const unsigned char x_ds[]={0x80,0x80,0x80,0x00};
//冒號(hào)
const unsigned char x_mh[]={0xc6,0xc6,0x00,0x00};
//小數(shù)點(diǎn)
const unsigned char x_p[]={0xc0,0x00,0x00,0x00};
//下箭頭
const unsigned char x_xia[]={0x06,0x1E,0x7E,0x1E,0x06,0x00};
//上箭頭
const unsigned char x_shang[]={0x60,0x78,0x7E,0x78,0x60,0x00};
/********下面是漢字區(qū)****************/
//漢字是前面的是上面部分,后面的是下面部分,各16個(gè),一共32個(gè)
//懸
const unsigned char hz_xuan[]={0,64,64,64,127,213,85,85,85,85,85,127,64,64,64,0,0,64,112,2,59,66,66,74,82,66,66,99,6,16,96,0};
//掛
const unsigned char hz_gua[]={16,16,16,255,144,80,72,72,72,255,72,72,72,72,64,0,2,66,129,127,0,64,68,68,68,127,68,68,68,68,64,0};
//運(yùn)
const unsigned char hz_yun[]={64,65,206,4,0,32,34,162,98,34,162,34,34,34,32,0,64,32,31,32,40,76,74,73,72,76,68,69,94,76,64,0};
//動(dòng)
const unsigned char hz_dong[]={32,36,36,228,36,36,36,32,16,16,255,16,16,240,0,0,8,28,11,8,12,5,78,36,16,12,3,32,64,63,0,0};
//控
const unsigned char hz_kong[]={8,8,8,255,136,72,0,152,72,40,10,44,72,216,8,0,2,66,129,127,0,0,64,66,66,66,126,66,66,66,64,0};
//制
const unsigned char hz_zhi_[]={0,80,79,74,72,255,72,72,72,0,252,0,0,255,0,0,0,0,63,1,1,255,33,97,63,0,15,64,128,127,0,0};
//系
const unsigned char hz_xi[]={0,0,2,34,178,170,102,98,34,17,77,129,1,1,0,0,0,64,33,19,9,5,65,129,127,1,5,9,19,98,0,0};
//統(tǒng)
const unsigned char hz_tong[]={32,48,44,163,96,16,132,196,164,157,134,132,164,196,132,0,32,34,35,18,18,146,64,48,15,0,0,63,64,65,112,0};
//燕
const unsigned char hz_yan[]={68,68,68,244,4,223,84,84,84,223,4,228,68,100,68,0,66,98,57,3,8,51,98,2,10,51,96,1,10,50,99,0};
//山
const unsigned char hz_shan[]={0,0,224,0,0,0,0,255,0,0,0,0,0,224,0,0,0,32,127,32,32,32,32,63,32,32,32,32,32,127,0,0};
//大
const unsigned char hz_da[]={32,32,32,32,32,32,160,127,160,32,32,32,32,32,32,0,0,128,64,32,16,12,3,0,1,6,8,48,96,192,64,0};
//學(xué)
const unsigned char hz_xue[]={64,48,16,18,92,84,80,81,94,212,80,24,87,50,16,0,0,2,2,2,2,2,66,130,127,2,2,2,2,2,2,0};
//信
const unsigned char hz_xin_[]={128,64,48,252,7,10,168,168,169,174,170,168,168,8,8,0,0,0,0,127,0,0,126,34,34,34,34,34,126,0,0,0};
//息
const unsigned char hz_xi_[]={0,0,0,252,84,84,86,85,84,84,84,252,0,0,0,0,0,32,56,1,61,65,65,69,89,65,65,113,0,8,48,0};
//院
const unsigned char hz_yuan_[]={254,2,50,74,134,12,36,36,37,38,36,36,36,12,4,0,255,0,2,4,131,65,49,15,1,1,127,129,129,129,241,0};
//const unsigned char hz_dui[]={254,2,18,42,198,2,0,0,0,255,0,0,0,0,0,0,127,0,2,68,67,32,16,12,3,0,3,12,16,96,32,0};
//當(dāng)
//const unsigned char hz_dang[]={0,0,64,66,92,72,64,64,127,64,80,78,68,192,0,0,0,0,32,34,34,34,34,34,34,34,34,34,34,127,0,0};
//前
//const unsigned char hz_qian[]={8,8,232,168,169,174,234,8,8,200,12,11,234,8,8,0,0,0,127,4,36,68,63,0,0,31,64,128,127,0,0,0};
//坐
const unsigned char hz_zuo[]={0,128,96,28,32,192,0,255,0,128,64,60,64,128,0,0,65,64,68,68,68,68,68,127,69,68,68,68,68,64,64,0};
//標(biāo)
const unsigned char hz_biao[]={16,16,208,255,80,144,32,34,34,34,226,34,34,34,32,0,4,3,0,255,0,9,4,3,64,128,127,0,1,6,28,0};
//畫
const unsigned char hz_hua[]={2,242,2,2,250,74,74,250,74,74,250,2,2,242,2,0,0,127,32,32,47,36,36,39,36,36,47,32,32,127,0,0};
//圓
const unsigned char hz_yuan[]={0,255,1,1,221,85,85,85,85,85,221,1,1,255,0,0,0,255,64,64,103,80,72,71,72,80,103,64,64,255,0,0};
//設(shè)
//const unsigned char hz_she[]={64,65,206,4,0,128,64,190,130,130,130,190,192,64,64,0,0,0,127,32,144,128,64,67,44,16,16,44,67,192,64,0};
//置
//const unsigned char hz_zhi[]={0,32,47,169,169,175,233,185,169,175,169,169,47,32,0,0,128,128,128,255,170,170,170,170,170,170,170,255,128,128,128,0};
//右箭頭,指示用
const unsigned char hz_jiantou[]={0,254,254,252,252,248,248,240,240,224,224,192,192,128,128,0,0,127,127,63,63,31,31,15,15,7,7,3,3,1,1,0};
//線
const unsigned char hz_xian[]={64,96,88,199,98,0,144,144,144,255,144,146,156,148,128,0,32,34,35,18,18,18,32,32,16,19,12,20,34,64,248,0};
//點(diǎn)
const unsigned char hz_dian[]={0,0,0,224,32,32,32,63,36,36,36,244,36,0,0,0,0,64,48,7,18,98,2,10,18,98,2,15,16,96,0,0};
//找
const unsigned char hz_zhao[]={8,8,8,255,136,72,8,16,16,255,16,18,148,16,16,0,2,66,129,127,0,32,32,16,16,8,15,26,33,64,240,0};
//圖
const unsigned char hz_tu[]={0,254,66,66,34,30,170,74,170,154,10,2,2,254,0,0,0,255,66,66,65,65,72,114,84,64,65,67,65,255,0,0};
//黑
//const unsigned char hz_hei[]={0,0,63,33,37,57,33,255,49,41,37,33,63,0,0,0,68,52,5,5,21,101,5,7,21,101,5,5,5,20,100,0};
//斷
const unsigned char hz_duan[]={0,254,68,88,192,255,80,76,0,252,68,68,194,66,66,0,0,63,36,35,32,63,97,34,24,7,0,0,255,0,0,0};
//定
const unsigned char hz_ding[]={0,16,12,164,36,36,37,230,36,36,36,36,20,12,4,0,64,32,24,7,8,16,32,127,66,66,66,66,64,64,0,0};
//一
const unsigned char hz_yi[]={0,128,128,128,128,128,128,128,128,128,128,128,128,192,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//二
const unsigned char hz_er[]={0,0,4,4,4,4,4,4,4,4,4,6,4,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,24,16,0};
//完
const unsigned char hz_wan[]= {0,144,140,164,164,164,165,166,164,164,164,164,148,140,4,0,0,128,64,32,24,7,0,0,0,63,64,64,64,112,0,0};
//成
const unsigned char hz_cheng[]={0,0,248,72,72,72,200,8,255,8,9,10,200,136,8,0,64,48,15,0,8,80,79,32,16,11,12,18,33,64,240,0};
//心
const unsigned char hz_xin[]={0,128,0,0,240,0,1,2,28,8,0,64,128,0,0,0,4,3,0,0,63,64,64,64,64,64,64,120,0,7,2,0};
//數(shù)
const unsigned char hz_shu[]={0x10,0x92,0x54,0x38,0xFF,0x38,0x54,0x52,0x80,0xF0,0x1F,0x12,0x10,0xF0,0x10,0x00,0x42,0x42,0x2A,0x2E,0x13,0x1A,0x26,0x02,0x40,0x20,0x13,0x0C,0x33,0x60,0x20,0x00};
//左肩頭
const unsigned char hz_jiantou_xx[]={0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0x00,0x00,0x01,0x01,0x03,0x03,0x07,0x07,0x0F,0x0F,0x1F,0x1F,0x3F,0x3F,0x7F,0x7F,0x00};
/**************************/
void delay_us(uint us);
void delay_ms(uint ms);
/*************************/
void init_dis(void);
void reset(void);
void do_x(uchar d);
uchar read_x(uchar row, uchar line);
void write_x(uchar x,uchar y,uchar c);
void from_x(uchar x);
void do_on(void);
void setx(uchar x);
void sety(uchar y);
void setyEx(uchar y);
void clrscr(uint cs);
void clr_row(uint row,uint cs);
void write_p(uchar x,uchar y,uchar i);
void dis_hz(uint x,uint y,const uchar *hz);
void dis_hz_row(uint row,uint y,const char **hz);
uint dis_en_row(uint x,uint y,uchar *p);
void dis_welcome(void);
uint dis_en(uint x,uint y,uint c);
void line(uint x1,uint y1,uint x2,uint y2);
void line_x(uint x1,uint y1,uint x2,uint y2);
void draw_point(uint x,uint y);
void draw_line_x(uint x1,uint y1,uint x2,uint y2);
void dis_menu(uint menu_index,uint menu_max);
/***************************/
void dis_side(void);
void start_wait(void);
void stop_wait(void);
int get_num(uint row,uint line);
void m_dingdian(void);
void m_huaxian(void);
void m_huayuan(void);
void m_zhaoxian(void);
void m_huatu(void);
void m_dingbiao(void);
void c_point(uint x,uint y);/*接受馬達(dá)來的數(shù)據(jù)*/
uint dis_num_row(uint x,uint y,uint d);
/***************/
uint get_key(void);
void draw_cricle(float);
/*下面是需要的子函數(shù)*/
void delay_us(uint us)
{
while(us--)
{
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
}
}
void delay_ms(uint ms)
{
unsigned int i,j;
for(j=0;j<ms;j++)
{
for(i=1;i<(unsigned int)(8*143-2);i++)
{
;
}
}
}
/*等待并獲取鍵盤輸入*/
uint get_key(void)
{
uchar r; //返回值
uchar value1,value2; //136 132 130 129 1 2 3 MENU
PORTB = 0xF0; //72 68 66 65 4 5 6 UP
DDRB = 0x0F; //40 36 34 33 7 8 9 DOWN
delay_ms(10); //24 20 18 17 * 0 # CLEAR
while(1) //循環(huán)檢測是不是右鍵按下
{
PORTB = 0xF0;
DDRB = 0x0F;
delay_ms(30);
value1=PINB|0x0F;
value1=~value1;/*取的列位*/
if(value1!=0x00)
{
PORTB=0xFF;
DDRB=0xF0;
PORTB=0x0F;
delay_ms(30);
value2=PINB|0xF0;
value2=~value2;
if(value2!=0x00)
{
value1=value1|value2;
switch (value1)
{
case 136: r=KEY_1;break;
case 132: r=KEY_2;break;
case 130: r=KEY_3;break;
case 72: r=KEY_4;break;
case 68: r=KEY_5;break;
case 66: r=KEY_6;break;
case 40: r=KEY_7;break;
case 36: r=KEY_8;break;
case 34: r=KEY_9;break;
case 24: r=KEY_0;break;
case 17: r=KEY_OK;break;
case 129: r=KEY_FUN;break;
case 65: r=KEY_UP;break;
case 33: r=KEY_DOWN;break;
case 20: r=KEY_LEFT;break;
case 18: r=KEY_RIGHT;break;
default:r=128;break;
}
break;
}
}
}
delay_ms(100);
return(r);
////return KEY_OK;
}
/*初始化單片機(jī)的顯示環(huán)境,但是不進(jìn)行清楚屏幕*/
void init_dis(void)
{
//DDRC|=(1<<4);
DDRC|=(1<<4);PORTC|=(1<<4);
OUT_DBUS(); /*設(shè)置數(shù)據(jù)端口為輸出模式*/
OUT_D_Cx(); /*設(shè)置控制端口為輸出模式*/
DDRC|=(1<<4);
//EN_DIS();
CLRRWF(); /*本程序只寫不讀,故在前面設(shè)置RWF標(biāo)志,如果讀,讀完自動(dòng)恢復(fù)寫*/
reset(); /*復(fù)位模塊*/
do_on(); /*打開顯示*/
//clrscr(); /*清空屏幕顯示*/
from_x(0); /*從第0小行行顯示*/
}
void reset(void) /*顯示模塊復(fù)位函數(shù)*/
{
SETCS1();
SETCS2();
CLRRST();
delay_us(200); /*延遲200us*/
SETRST();
delay_us(200);
}
void do_x(uchar d) /*對(duì)顯示模塊進(jìn)行操作,但是不管操作類型;如果要設(shè)置DIF,RWF,CS1-2等,在其前設(shè)置*/
{
DBUS=d;
CLREF();
delay_us(1); /*延遲1us*/
SETEF();
delay_us(1);
CLREF();
delay_us(1);
}
uchar read_x(uchar row, uchar line)/*讀制定行,列的數(shù)據(jù)*/
{
uchar c;
/*比賽的時(shí)候,圖形在右屏幕,只讀圖形的數(shù)據(jù),所以選右屏幕就可以了*/
//SETCS2();
//CLRCS1();
/*設(shè)置坐標(biāo)*/
//setx(row&7);
//sety(line&63);
/*上面的效率高,下面的通用*/
setyEx(line);
setx(row);
/*讀取數(shù)據(jù)*/
IN_DBUS(); /*設(shè)置為輸入*/
SETDIF(); /*數(shù)據(jù)模式*/
SETRWF(); /*讀操作*/
/*第一次讀*/
CLREF();
delay_us(1); /*延遲1us*/
SETEF();
delay_us(1);
CLREF();
delay_us(1);
/*第二次讀*/
CLREF();
delay_us(1); /*延遲1us*/
SETEF();
delay_us(5);
c=PIND;
CLREF();
delay_us(1);
/***********/
CLRRWF();
OUT_DBUS();
return c;
}
/*y=0~127*/
void write_x(uchar x,uchar y,uchar c)
{
setyEx(y);
setx(x);
SETDIF();
CLRRWF();
do_x(c);
}
void do_on(void) /*打開顯示模塊<2板都打開>*/
{
CLRDIF(); /*設(shè)置為指令模式*/
SETCS1(); /*2片都打開*/
SETCS2();
do_x(0x3f);
}
void from_x(uchar x) /*設(shè)置開始顯示的行*/
{
CLRDIF(); /*設(shè)置為指令模式*/
SETCS1(); /*2片都打開*/
SETCS2();
do_x(x+0xc0);
}
void setx(uchar x) /*設(shè)置當(dāng)前x位置,不改變CS1或CS2*/
{
CLRDIF();
do_x((x&0x7)+0xb8);
}
void sety(uchar y) /*本函數(shù)不涉及CS1和CS2,使用時(shí)請(qǐng)注意;y>=0 && y<=63,多余的位無效*/
{
CLRDIF();
do_x((y&0x3f)+0x40);
}
void setyEx(uchar y) /*增強(qiáng)的sety,連同CS一起設(shè)置,y>=0 && y<=127*/
{
CLRDIF();
y&=127;
if(y>63)
{
SETCS2();
CLRCS1();
}
else
{
SETCS1();
CLRCS2();
}
do_x((y&0x3f)+0x40);
}
/*左面是1,右面是2,全部清除是0*/
void clrscr(uint cs)
{
uchar i,j;
SETCS1();
SETCS2();
if(cs==1)
{
CLRCS2();
}
if(cs==2)
{
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -