亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
威達SP系列微型打印機51單片機驅動程序
[打印本頁]
作者:
xiaos
時間:
2015-4-10 18:44
標題:
威達SP系列微型打印機51單片機驅動程序
//===============================================================
//威達SP系列微型打印機驅動程序
//硬件連接:51的串口發送接收端接打印機的對應口
//print_driver.c
//writer:谷雨 2017年3月28于EDA實驗室
//================================================================
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
//點陣設置
#define Dot_Matrix16_16 0x00
#define Dot_Matrix8_16 0x01
#define Dot_Matrix16_8 0x02
#define Dot_Matrix8_8 0x03
void UART_init(uchar n);
void UART_SendString(uchar len,uchar *str);
void Printer_English(uchar leng,uchar *string);
void Printer_Char(uchar length,uchar *cha);
void Printer_init();
void ALL_in_one(uchar num);
uchar Init_Printer[2]={0x1B,0x40};// 初始化打印機 ''2''
uchar Set_Char[2]={0x1c,0x26}; //設置為漢字打印 2
uchar Select_Char_Set1[2]={0x1b,0x36}; //設置字符集 1 打印 2
uchar Select_Char_Set2[2]={0x1b,0x37}; //設置字符集 2 打印 2
uchar Set_Dot_Matrix[3]={0x1c,0x69,Dot_Matrix8_8}; //選擇8X8點陣打印 3 第三個數設為n=0 16×16點陣
//n=1 8*16點陣 n=2 16*8點陣 n=3 8*8點陣
uchar Anti_White[3]={0x1B,0x69,0x00}; //禁止反白 3
uchar Ch_Rotation_Zero[3]={0x1c,0x49,2}; //設置為漢字0度旋轉打印 3 P56
uchar Set_N_LineSpace[3]={0x1b,0x31,0x01}; //設置n點行間距 3 P28
uchar Set_Three_Go[3]={0x1b,0x4a,3}; //設置三點走行 3
uchar Exit_Ch[2]={0x1c,0x2e}; // 退出漢字打印 2
uchar CR_line[1]={0x0d}; // 換行
//--------------------------------------------------------
// 函數名稱 :void UART_init(uchar n)
// 函數功能 :串口初始化
// 入口參數 :n 為波特率選擇位
// 出口參數 :無
//--------------------------------------------------------
void UART_init(uchar n)
{
TMOD=0x20; //定時器T1使用工作方式2
switch(n)
{
case 1:
TH1=0xe8;
TH0=0xe8; //設置波特率2400
break;
case 2:
TH1=0xf4;
TH0=0xf4; //設置波特率4800
break;
case 3:
TH1=0xfa;
TH0=0xfa; //設置波特率9600
break;
case 4:
TH1=0xfd;
TH0=0xfd;//設置波特率19200
break;
default:
break;
}
TR1=1; //開始計時
PCON=0x80; //SMOD=1;
SCON=0x50; //工作方式1,波特率9600bit/s,允許接收
EA=0;
TI=1;
RI=1;
}
//--------------------------------------------------------
// 函數名稱 :void UART_SendString(uchar len,uchar *str)
// 函數功能 :串口輸出字符串
// 入口參數 :length為漢字碼組長度 str為機內碼首地址
// 出口參數 :無
//--------------------------------------------------------
void UART_SendString(uchar len,uchar *str)
{
uchar i=0;
while(i {
while(!TI);
SBUF=*str++;
TI=0;
i++;
}
}
//--------------------------------------------------------
// 函數名稱 :void Printer_init()
// 函數功能 :打印機初始化
// 入口參數 :無
// 出口參數 :無
//--------------------------------------------------------
void Printer_init()
{
UART_SendString(2,Init_Printer);//初始化打印機
UART_SendString(3,Set_Dot_Matrix);//選擇8*8點陣
UART_SendString(3,Anti_White);//禁止反白
}
//--------------------------------------------------------
// 函數名稱 :void Printer_English(uchar leng,uchar *string)
// 函數功能 :打印機普通方式初始化
// 入口參數 :leng 打印的字符長度
// string 打印的字符串
// 出口參數 :無
//--------------------------------------------------------
void Printer_English(uchar leng,uchar *string)
{
UART_SendString(2,Select_Char_Set1);//選擇字符集1
UART_SendString(3,Set_Dot_Matrix);//選擇8*8點陣
UART_SendString(leng,string);
}
//--------------------------------------------------------
// 函數名稱 :void Printer_Char(uchar length,uchar *cha)
// 函數功能 :打印機漢字打印方式初始化
// 入口參數 :length為漢字碼組長度 cha為機內碼首地址
// 出口參數 :無
//--------------------------------------------------------
void Printer_Char(uchar length,uchar *cha)
{
UART_SendString(2,Set_Char);//選擇漢字打印方式
UART_SendString(3,Set_Dot_Matrix);//選擇8*8點陣
UART_SendString(length, cha);
UART_SendString(2,Exit_Ch);
}
//--------------------------------------------------------
// 函數名稱 :void ALL_in_one(unsigned int num)
// 函數功能 :功能集合函數
// 入口參數 :num為功能選擇
// 出口參數 :無
//--------------------------------------------------------
void ALL_in_one(uchar num)
{
uchar big[3]={0x1b,0x57,3}; //放大倍數打印(橫縱均放大)若想橫放大則第二項為0x55,若為縱放大則為0x56
// 此處放大三倍
uchar under_line[3]={0x1b,0x2d,1}; //下劃線打開,此命令后所有字符均有下劃線除非中止
// 最后項值設置下劃線,此處為打開,若關為0
uchar blank[4]={0x1b,0x66,0,3}; //打印空格或空行
//第三項值設置m,若為0打印空格符,若為1打印空行
// 第四項設置n,為空格或行的個數
switch (num)
{
case 0: //換行
UART_SendString(1,CR_line);
break;
case 1: //放大倍數打印(橫縱均放大)
UART_SendString(3,big);
break;
case 2: //下劃線打開,此命令后所有字符均有下劃線除非中止
UART_SendString(3,under_line);
break;
case 3: //打印空格或空行
UART_SendString(4,blank);
break;
default :
break;
}
}
void main()
{
uchar English_Table[10] = "I LOVE YOU";
uchar Data1[]={0xD1,0xCC,0xCC,0xA8,0xB4,0xF3,0xD1,0xA7,0xC4,0xe3,
0xba,0xc3,0x0a,0xce,0xd2,0xb0,0xae,0xc4,0xe3,0x0a,};
uchar XX[]={48,49,50,51};
UART_init(3);//串口初始化
Printer_init();// 打印機初始化
ALL_in_one(2);//開下劃線
Printer_Char(20,Data1);//打印煙臺大學你好,我愛你
Printer_English(10,English_Table);//打印I LOVE YOU
ALL_in_one(0);//換行
Printer_English(4,XX);
while(1);
}
復制代碼
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1