超级终端使用.docx
- 文档编号:14516335
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:15
- 大小:35.65KB
超级终端使用.docx
《超级终端使用.docx》由会员分享,可在线阅读,更多相关《超级终端使用.docx(15页珍藏版)》请在冰点文库上搜索。
超级终端使用
有趣的串口之超级终端的玩法
题:
有趣的串口之超级终端的玩法(基于51)
作:
杜洋(doyoung)
时:
2006年11月14日
源:
DoY
1.导言
================================
本文为超级终端的应用总结文章,实验基于51单片机,对ARM和其它MPU同样适用。
某人,接听一位用户的电话,他问什么是超级终端。
对于嵌入式系统开发工程师来说,问这个问题是
值的讨论的,我们应该不应该问这个问题呢?
至少阅过本文您不会重蹈覆辙。
2.了解超级终端
================================
在WINDOWSXP或是WINDOWS2000操作系统下,在“「开始」菜单\程序\附件\通讯”目录下可以看到
“超级终端”。
这是WINDOWS自带的通信终端工具,我们用它的串口通信功能。
在“文件/属性/连接到(选项卡)/连接时使用(项)”里设置COM1(串口接啥就选啥),在“设置
...”里设置为“19200 8 无 1 无”。
最后点击“呼叫/呼叫”行完事了。
好吧,没有介绍其它设备之前您是可以用超级终端自慰的(自己和自己玩)。
将COM1串口的2、3引脚
短接(接错了把电脑搞炸了别找我),即是将发出的数据接收回来。
在超级终端框里输入信息同样显示出
来,好像在用TXT记事本或是QQ聊天对话框一样。
如果您这样玩的很开心那就不用再看下一节了,直到您
还想知道更有趣的知识。
3.单片机平台建立
================================
断开串口COM1的2、3引脚吧,应该和单片机互动起来才有应用的价值。
之前,我们要有一块拥有串口
功能的单片机实验板或是嵌入目标板,否则请您检查一下IE的地址栏,看看您是不是错输入了网址来到我
的博客,希望我的地址和黄色小说的地址字符并不接近。
在XX里输入“单片机串口电路”,答案会挤进
您的眼睛里,那我就不费口水了。
全当您有了我们所需要的设备,在51的FLASH中写入下面的程序。
在超级终端上会发现同样自慰的效
果。
---------
#include
#include
//BAUDSET==19200 8 NOR 1 NOR
//主程序
voidmain()
{
unsignedchardat;
SCON =0x50; //SCON:
serailmode1,8-bitUART,enableucvr
TMOD|=0x20; //TMOD:
timer1,mode2,8-bitreload
PCON|=0x80; //SMOD=1;
TH1 =0xFD; //Baud:
9600 fosc=11.0592MHz
IE |=0x90; //EnableSerialInterrupt
TR1 =1; //timer1run
while
(1)
{
if(RI)
{
dat=SBUF; //接收数据SBUF为单片机的接收发送缓冲寄存器
RI=0;
SBUF=dat; //发送数据
}
}
}
-----------------------
4.有趣的功能
================================
向串口打印字符吧,应该是有趣的事了。
您可以在超级终端上打出你想对女友说却又不敢说的话。
还
可以把关键的字眼改变颜色、加亮或是闪烁显示,还可以用\n(换行)、\r(归位)、\x00(十六进制输
入)来设置一个美丽的图景。
当然,这是大炮打蚊子,她看了不会感动的,就自己感动一下算了。
下面的程序里我用到了上面我提过的功能,有兴趣研究一下是一件好事,不然就看下一节。
#include
#include
voidsend_char_com(unsignedcharch);
voidsend_string_com(unsignedchar*str);
voidinit_serialcomm(void);
voidDelay(unsignedinta);
//串口初始化
voidinit_serialcomm(void)//btl==19200
{
SCON =0x50; //SCON:
serailmode1,8-bitUART,enableucvr
TMOD|=0x20; //TMOD:
timer1,mode2,8-bitreload
PCON|=0x80; //SMOD=1;
TH1 =0xFD; //Baud:
9600 fosc=11.0592MHz
IE |=0x90; //EnableSerialInterrupt
TR1 =1; //timer1run
}
//串口接收中断函数
voidserial()interrupt4using3
{
if(RI)
{
unsignedcharch;
RI=0;
send_string_com("\x0c");
//send_char_com(0x0c);
x_welcome(); //显示欢迎画面
x_menu( );
}
}
//向串口发送一个字符
voidsend_char_com(unsignedcharch)
{
SBUF=ch;
while(TI==0);
TI=0;
}
//向串口发送一个字符串,长度不限。
//应用:
send_string_com("d9887321$");
voidsend_string_com(unsignedchar*str)
{
while(*str!
='\0')
{
send_char_com(*str);
*str++;
}
*str=0;
}
//欢迎画面(启动时显示)
voidx_welcome(void)
{
send_string_com("\x0c\n\r\033[1;34m");
send_string_com("欢迎使用串口控制平台 ");
send_string_com("\n\rbyDoYoungV1.02006.11.11");
}
//
voidx_menu(void)
{
send_string_com("\n\n\r\033[1;31mUART>\033[1;30m");
send_string_com("请输入功能序号:
");
send_string_com("\n\r\033[1;31mdoyoung>\033[1;30m");
}
voidx_run(void)
{
send_string_com("\b\x5c");
Delay(200);
send_string_com("\b|");
Delay(200);
send_string_com("\b/");
Delay(200);
send_string_com("\b-");
Delay(200);
}
voidDelay(unsignedinta)
{
unsignedchari;
while(--a!
=0)
{
for(i=0;i<125;i++); //一个;表示空语句,CPU空转。
} //i从0加到125,CPU大概就耗时1毫秒
}
//主程序
main()
{
init_serialcomm(); //初始化串口
x_welcome(); //显示欢迎画面
x_menu();
while
(1)
{
x_run( );
}
}
------------
5.ASCII码表和转义字符
================================
我们输入的显示字符都是ASCII的标准,了解这个有必要。
对于一些特殊的指令,ASCII则用转义字
符更为方便。
------------
Decimal Octal Hex Binary Value
10 08 16 02
------- ----- *--- ------ -----
000 000 000 00000000 NUL (Nullchar.)
001 001 001 00000001 SOH (StartofHeader)发送文件首
002 002 002 00000010 STX (StartofText)文本开始
003 003 003 00000011 ETX (EndofText)文本尾
004 004 004 00000100 EOT (EndofTransmission)发送结束
005 005 005 00000101 ENQ (Enquiry)
006 006 006 00000110 ACK (Acknowledgment)确认
007 007 007 00000111 BEL (Bell)蜂鸣
008 010 008 00001000 BS (Backspace)退格
009 011 009 00001001 HT (HorizontalTab)
010 012 00A 00001010 LF (LineFeed)换行
011 013 00B 00001011 VT (VerticalTab)
012 014 00C 00001100 FF (FormFeed)换页/清屏
013 015 00D 00001101 CR (CarriageReturn)回车
014 016 00E 00001110 SO (ShiftOut)SHIFT松开
015 017 00F 00001111 SI (ShiftIn)按下
016 020 010 00010000 DLE (DataLinkEscape)清除
017 021 011 00010001 DC1(XON)(DeviceControl1)
018 022 012 00010010 DC2 (DeviceControl2)
019 023 013 00010011 DC3(XOFF)(DeviceControl3)
020 024 014 00010100 DC4 (DeviceControl4)
021 025 015 00010101 NAK (NegativeAcknowledgement)
022 026 016 00010110 SYN (SynchronousIdle)
023 027 017 00010111 ETB (EndofTrans.Block)
024 030 018 00011000 CAN (Cancel)
025 031 019 00011001 EM (EndofMedium)
026 032 01A 00011010 SUB (Substitute)
027 033 01B 00011011 ESC (Escape)退出
028 034 01C 00011100 FS (FileSeparator)
029 035 01D 00011101 GS (GroupSeparator)
030 036 01E 00011110 RS (RequesttoSend/RecordSeparator)
031 037 01F 00011111 US (UnitSeparator)
032 040 020 00100000 SP (Space)空格
033 041 021 00100001 !
(exclamationmark)
034 042 022 00100010 " (doublequote)
035 043 023 00100011 # (numbersign)
036 044 024 00100100 $ (dollarsign)
037 045 025 00100101 % (percent)
038 046 026 00100110 & (ampersand)
039 047 027 00100111 ' (singlequote)
040 050 028 00101000 ( (left/openingparenthesis)
041 051 029 00101001 ) (right/closingparenthesis)
042 052 02A 00101010 * (asterisk)
043 053 02B 00101011 + (plus)
044 054 02C 00101100 , (comma)
045 055 02D 00101101 - (minusordash)
046 056 02E 00101110 . (dot)
047 057 02F 00101111 / (forwardslash)
048 060 030 00110000 0
049 061 031 00110001 1
050 062 032 00110010 2
051 063 033 00110011 3
052 064 034 00110100 4
053 065 035 00110101 5
054 066 036 00110110 6
055 067 037 00110111 7
056 070 038 00111000 8
057 071 039 00111001 9
058 072 03A 00111010 :
(colon)
059 073 03B 00111011 ; (semi-colon)
060 074 03C 00111100 < (lessthan)
061 075 03D 00111101 = (equalsign)
062 076 03E 00111110 > (greaterthan)
063 077 03F 00111111 ?
(questionmark)
064 100 040 01000000 @ (ATsymbol)
065 101 041 01000001 A
066 102 042 01000010 B
067 103 043 01000011 C
068 104 044 01000100 D
069 105 045 01000101 E
070 106 046 01000110 F
071 107 047 01000111 G
072 110 048 01001000 H
073 111 049 01001001 I
074 112 04A 01001010 J
075 113 04B 01001011 K
076 114 04C 01001100 L
077 115 04D 01001101 M
078 116 04E 01001110 N
079 117 04F 01001111 O
080 120 050 01010000 P
081 121 051 01010001 Q
082 122 052 01010010 R
083 123 053 01010011 S
084 124 054 01010100 T
085 125 055 01010101 U
086 126 056 01010110 V
087 127 057 01010111 W
088 130 058 01011000 X
089 131 059 01011001 Y
090 132 05A 01011010 Z
091 133 05B 01011011 [ (left/openingbracket)
092 134 05C 01011100 \ (backslash)
093 135 05D 01011101 ] (right/closingbracket)
094 136 05E 01011110
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超级 终端 使用