/*************************** 延时凾数 ********************
* 名称: Delay
* 说明:
* 功能: 延时
* 调用:
* 输入: Temp 延时系数
* 返回值: 无
*********************************************************************/
以下放在这个文件中 <Variable.h>
unsigned char Index1[16]; // 菜单变量交换数组
sbit Print_STR = P1^0; // 下面是引脚接打印机
sbit Print_ACK = P1^1;
void Delay(char Temp)
{
char j;
while (Temp--)
{
for (j=0 ; j <= 50; j++);
}
return;
}
// ***** 接口控制命令 *********
void Command_ACK()
{
Print_STR = 0;
Delay(5);
Print_STR = 1;
while (Print_ACK);
return;
}
// **** 打印结束 X+N 进纸命令 ****
void Formfeed(char Temp)
{
P3 = 0x1b;
Command_ACK();
P3 = 0x4a;
Command_ACK();
P3 = Temp;
Command_ACK();
return;
}
// **** 打印结束回车换行命令 ****
void Enter()
{
P3 = 0x0a;
Command_ACK();
P3 = 0x0d;
Command_ACK();
return ;
}
/******************* 字库选择 + 字号选择函数 *****************
* 名称: ASCII_cn(char zh,char xy)
* 说明: 进入字符集选择
* 调用: 接口控制命令 Command_ACK();
* 输入: 字库 zh 1 to 3 , 字号 xy 2 to 8
*********************************************************************/
void ASCII_cn(char zh,char xy)
{
switch (zh)
{
case 1:
P3 = 0x1c; // 退出汉字方式命令
Command_ACK();
P3 = 0x2e;
Command_ACK();
P3 = 0x1b; // 进入 ASCII 字符集 一级字库
Command_ACK();
P3 = 0x36;
Command_ACK();
break ;
case 2:
P3 = 0x1c; // 退出汉字方式命令
Command_ACK();
P3 = 0x2e;
Command_ACK();
P3 = 0x1b; // 进入 ASCII 字符集 二级字库
Command_ACK();
P3 = 0x37;
Command_ACK();
break ;
case 3: // 进入汉字方式字符集 三级字库
P3 = 0x1c;
Command_ACK();
P3 = 0x26;
Command_ACK();
break ;
}
// ****** 放大字体命令 *********
P3 = 0x1b;
Command_ACK();
P3 = 0x57;
Command_ACK();
P3 = xy; // 字号 xy 2 to 8
Command_ACK();
return;
}
/*************************** 初始化 *********************************
* 名称: Tmod_Primary()
* 说明: 初始化系统
* 功能:
* 调用:
* 输入: 无
* 返回值: 无
*********************************************************************/
void Tmod_Primary(void)
{
OSCXCN = 0x67; // 内部时钟配置
OSCICN = 0x15; // 内部时钟 4MHz
OSCICN = 0x08; // 外部时钟 5.5296MHz
WDTCN = 0x07; // 启动看门狗
WDTCN = 0xDE;
WDTCN = 0xAD;
WDTCN = 0xFF;
PRT1IF = 0x00; // 端口配置 I/O
PRT0CF = 0xf5;
PRT1CF = 0xf0;
PRT2CF = 0x7f;
PRT3CF = 0x00; // 端口配置 I/O
XBR0 = 0x0c;
XBR1 = 0x04;
XBR2 = 0x40; // 交叉开关配置
EA = 0;
// ****** 初始化打印机 ******
Print_STR = 1;
P3 = 0x1b;
Command_ACK();
P3 = 0x40;
Command_ACK();
return;
}
/************************ 打印与显示菜单函数 ******************************
* 名称: Menu_Show(char)
* 说明: 打印与显示菜单
* 功能: 显示设备状态
* 调用:
* 调用:
* 调用:
* 输入: 菜单 Temp01
* 返回值: 无
*********************************************************************/
void Menu_Show(char Temp01)
{
switch(Temp01)
{
case 1:
Line_1.Char1 = ' '; // 显示 MEM !!
Line_1.Char2 = 'M';
Line_1.Char3 = 'E';
Line_1.Char4 = 'M';
Line_1.Char5 = ' ';
Line_1.Char6 = '!';
Line_1.Char7 = '!';
Line_1.Char8 = ' ';
Line_2.Char1 = 'O'; // Overflow , Memory 存储器以满或溢出
Line_2.Char2 = 'v';
Line_2.Char3 = 'e';
Line_2.Char4 = 'r';
Line_2.Char5 = 'f';
Line_2.Char6 = 'l';
Line_2.Char7 = 'o';
Line_2.Char8 = 'w';
break ;
case 2:
Line_1.Char1 = 'S';
Line_1.Char2 = 'u';
Line_1.Char3 = 'm';
Line_1.Char4 = ' ';
Line_1.Char5 = '5';
Line_1.Char6 = '2';
Line_1.Char7 = '3';
Line_1.Char8 = '4';
Line_2.Char1 = 'F'; // 选择 F1
Line_2.Char2 = '1';
Line_2.Char3 = 0x7f;
Line_2.Char4 = ' ';
Line_2.Char5 = 'W'; // wale 选择
Line_2.Char6 = 'a';
Line_2.Char7 = 'l';
Line_2.Char8 = 'e';
break ;
case 3:
Line_1.Char1 = 'C'; // Commence 开始, 着手
Line_1.Char2 = 'o';
Line_1.Char3 = 'm';
Line_1.Char4 = 'm';
Line_1.Char5 = 'e';
Line_1.Char6 = 'n';
Line_1.Char7 = 'c';
Line_1.Char8 = 'e';
Line_2.Char1 = 'W'; // Work 手工,操作
Line_2.Char2 = 'o';
Line_2.Char3 = 'r';
Line_2.Char4 = 'k';
Line_2.Char5 = ' ';
Line_2.Char6 = 0x7e;
Line_2.Char7 = 'G';
Line_2.Char8 = 'o';
break ;
case 4:
Line_1.Char1 = 'F'; // Fate 天数
Line_1.Char2 = 'a';
Line_1.Char3 = 't';
Line_1.Char4 = 'e';
Line_1.Char5 = ' ';
Line_1.Char6 = ' ';
Line_1.Char7 = '?';
Line_1.Char8 = '?';
Line_2.Char1 = 'Q'; // Quiz 提问
Line_2.Char2 = 'u';
Line_2.Char3 = 'i';
Line_2.Char4 = 'z';
Line_2.Char5 = ' ';
Line_2.Char6 = ' ';
Line_2.Char7 = '^';
Line_2.Char8 = ' ';
break ;
case 5:
Line_1.Char1 = 'F'; // Fate 天数
Line_1.Char2 = 'a';
Line_1.Char3 = 't';
Line_1.Char4 = 'e';
Line_1.Char5 = ' ';
Line_1.Char6 = ' ';
Line_2.Char1 = 'Q'; // Quiz 提问
Line_2.Char2 = 'u';
Line_2.Char3 = 'i';
Line_2.Char4 = 'z';
Line_2.Char5 = ' ';
Line_2.Char6 = ' ';
Line_2.Char7 = ' ';
Line_2.Char8 = '^';
break ;
case 6:
Line_1.Char1 = 'B'; // Base 基数
Line_1.Char2 = 'a';
Line_1.Char3 = 's';
Line_1.Char4 = 'e';
Line_1.Char5 = ' ';
Line_1.Char6 = '?';
Line_1.Char7 = '?';
Line_1.Char8 = '?';
Line_2.Char1 = 'Q'; // Quiz 提问
Line_2.Char2 = 'u';
Line_2.Char3 = 'i';
Line_2.Char4 = 'z';
Line_2.Char5 = ' ';
Line_2.Char6 = '^';
Line_2.Char7 = '^';
Line_2.Char8 = '^';
break ;
case 7:
Line_1.Char1 = 'P'; // Pray 请求
Line_1.Char2 = 'r';
Line_1.Char3 = 'a';
Line_1.Char4 = 'y';
Line_1.Char5 = '<';
Line_1.Char6 = '3';
Line_1.Char7 = '2';
Line_1.Char8 = '%';
Line_2.Char1 = 'C'; // Charge 充电
Line_2.Char2 = 'h';
Line_2.Char3 = 'r';
Line_2.Char4 = 'g';
Line_2.Char5 = 'e';
Line_2.Char6 = ' ';
Line_2.Char7 = '!';
Line_2.Char8 = '!';
break ;
case 8:
Line_1.Char1 = 'D'; // 清除 FLASH 存储器
Line_1.Char2 = 'E';
Line_1.Char3 = 'L';
Line_1.Char4 = ' ';
Line_1.Char5 = 'M';
Line_1.Char6 = 'E';
Line_1.Char7 = 'M';
Line_1.Char8 = '!';
Line_2.Char1 = 'O'; // Yes On
Line_2.Char2 = 'n';
Line_2.Char3 = ' ';
Line_2.Char4 = '?'; // 显示设置清除密码
Line_2.Char5 = ' ';
Line_2.Char6 = 'Y';
Line_2.Char7 = 'e';
Line_2.Char8 = 's';
break ;
case 9:
Line_1.Char1 = ' '; // 清除 FLASH 存储器
Line_1.Char2 = 'D';
Line_1.Char3 = 'E';
Line_1.Char4 = 'L';
Line_1.Char5 = ' ';
Line_1.Char6 = 'O';
Line_1.Char7 = 'K';
Line_1.Char8 = ' ';
Line_2.Char1 = ' '; // key-press按键
Line_2.Char2 = 0x7e;
Line_2.Char3 = 'F';
Line_2.Char4 = '2';
Line_2.Char5 = ' ';
Line_2.Char6 = 'I';
Line_2.Char7 = 'n';
Line_2.Char8 = 's';
break ;
case 10:
Line_1.Char1 = 'P';
Line_1.Char2 = 'o';
Line_1.Char3 = 'w';
Line_1.Char4 = 'e';
Line_1.Char5 = 'r';
Line_1.Char6 = '9';
Line_1.Char7 = '8';
Line_1.Char8 = '%';
Line_2.Char1 = 'B';
Line_2.Char2 = 'u';
Line_2.Char3 = 's';
Line_2.Char4 = 'k';
Line_2.Char5 = ' ';
Line_2.Char6 = 'F';
Line_2.Char7 = '2';
Line_2.Char8 = 0x7f;
break ;
case 11:
Line_1.Char1 = 'M'; // Message 通讯消息
Line_1.Char2 = 'e';
Line_1.Char3 = 's';
Line_1.Char4 = 's';
Line_1.Char5 = 'a';
Line_1.Char6 = 'g';
Line_1.Char7 = 'e';
Line_1.Char8 = '!';
Line_2.Char1 = 'C'; // COM , Data
Line_2.Char2 = 'O';
Line_2.Char3 = 'M';
Line_2.Char4 = ' ';
Line_2.Char5 = 'D';
Line_2.Char6 = 'a';
Line_2.Char7 = 't';
Line_2.Char8 = 'a';
break ;
case 12:
Line_1.Char1 = ' '; // setup 设置
Line_1.Char2 = 'S';
Line_1.Char3 = 'e';
Line_1.Char4 = 't';
Line_1.Char5 = 'u';
Line_1.Char6 = 'p';
Line_1.Char7 = ' ';
Line_1.Char8 = ' ';
Line_2.Char1 = 'B';
Line_2.Char2 = 'u';
Line_2.Char3 = 's';
Line_2.Char4 = 'k';
Line_2.Char5 = ' ';
Line_2.Char6 = 'O';
Line_2.Char7 = 'K';
Line_2.Char8 = ' ';
break ;
case 13:
Line_1.Char1 = 'S'; // Start-up启动 Estate 状态
Line_1.Char2 = 't';
Line_1.Char3 = 'o';
Line_1.Char4 = 'p';
Line_1.Char5 = ' ';
Line_1.Char6 = ' ';
Line_1.Char7 = 'U';
Line_1.Char8 = 'p';
Line_2.Char1 = 'F'; // 启动 again 再一次
Line_2.Char2 = '1';
Line_2.Char3 = 0x7f;
Line_2.Char4 = 'I';
Line_2.Char5 = 'n';
Line_2.Char6 = 0x7e;
Line_2.Char7 = 'F';
Line_2.Char8 = '3';
break ;
case 14:
Line_1.Char1 = '2'; // check 检查, 制止, 核对
Line_1.Char2 = '2';
Line_1.Char3 = '0';
Line_1.Char4 = 0x7f;
Line_1.Char5 = 0x7e;
Line_1.Char6 = '5';
Line_1.Char7 = '0';
Line_1.Char8 = '0';
Line_2.Char1 = 0x7e; // key-press按键
Line_2.Char2 = 'F';
Line_2.Char3 = '2';
Line_2.Char4 = ' ';
Line_2.Char5 = 'W'; // wale 选择
Line_2.Char6 = 'a';
Line_2.Char7 = 'l';
Line_2.Char8 = 'e';
break ;
default: // ???
break ;
}
Index1[0] = Line_1.Char1;
Index1[1] = Line_1.Char2;
Index1[2] = Line_1.Char3;
Index1[3] = Line_1.Char4;
Index1[4] = Line_1.Char5;
Index1[5] = Line_1.Char6;
Index1[6] = Line_1.Char7;
Index1[7] = Line_1.Char8;
Index1[8] = Line_2.Char1;
Index1[9] = Line_2.Char2;
Index1[10] = Line_2.Char3;
Index1[11] = Line_2.Char4;
Index1[12] = Line_2.Char5;
Index1[13] = Line_2.Char6;
Index1[14] = Line_2.Char7;
Index1[15] = Line_2.Char8;
return;
}
系统分类:
单片机 | 用户分类:
无分类
| 来源:
原创