超级终端使用.doc

上传人:大米 文档编号:551607664 上传时间:2022-10-14 格式:DOC 页数:18 大小:86KB
返回 下载 相关 举报
超级终端使用.doc_第1页
第1页 / 共18页
超级终端使用.doc_第2页
第2页 / 共18页
超级终端使用.doc_第3页
第3页 / 共18页
超级终端使用.doc_第4页
第4页 / 共18页
超级终端使用.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《超级终端使用.doc》由会员分享,可在线阅读,更多相关《超级终端使用.doc(18页珍藏版)》请在金锄头文库上搜索。

1、有趣的串口之超级终端的玩法题:有趣的串口之超级终端的玩法(基于51)作:杜洋 (doyoung)时:2006年11月14日源:DoY 1. 导言= 本文为超级终端的应用总结文章,实验基于51单片机,对ARM和其它MPU同样适用。 某人,接听一位用户的电话,他问什么是超级终端。对于嵌入式系统开发工程师来说,问这个问题是值的讨论的,我们应该不应该问这个问题呢?至少阅过本文您不会重蹈覆辙。2. 了解超级终端= 在WINDOWS XP或是WINDOWS 2000操作系统下,在“开始菜单程序附件通讯”目录下可以看到“超级终端”。这是WINDOWS自带的通信终端工具,我们用它的串口通信功能。 在“文件/属

2、性/连接到(选项卡)/连接时使用(项)”里设置 COM1(串口接啥就选啥),在“设置.”里设置为“19200 8 无 1 无”。最后点击“呼叫/呼叫”行完事了。 好吧,没有介绍其它设备之前您是可以用超级终端自慰的(自己和自己玩)。将COM1串口的2、3引脚短接(接错了把电脑搞炸了别找我),即是将发出的数据接收回来。在超级终端框里输入信息同样显示出来,好像在用TXT记事本或是QQ聊天对话框一样。如果您这样玩的很开心那就不用再看下一节了,直到您还想知道更有趣的知识。3. 单片机平台建立= 断开串口COM1的2、3引脚吧,应该和单片机互动起来才有应用的价值。之前,我们要有一块拥有串口功能的单片机实验

3、板或是嵌入目标板,否则请您检查一下IE的地址栏,看看您是不是错输入了网址来到我的博客,希望我的地址和黄色小说的地址字符并不接近。在百度里输入“单片机串口电路”,答案会挤进您的眼睛里,那我就不费口水了。 全当您有了我们所需要的设备,在51的FLASH中写入下面的程序。在超级终端上会发现同样自慰的效果。-i nclude i nclude /BAUD SET = 19200 8 NOR 1 NOR/主程序void main() unsigned char dat; SCON = 0x50; /SCON: serail mode 1, 8-bit UART, enable ucvr TMOD |=

4、0x20; /TMOD: timer 1, mode 2, 8-bit reload PCON |= 0x80; /SMOD=1; TH1 = 0xFD; /Baud:9600 fosc=11.0592MHz IE |= 0x90; /Enable Serial Interrupt TR1 = 1; / timer 1 run while(1) if ( RI ) dat = SBUF; /接收数据 SBUF 为单片机的接收发送缓冲寄存器 RI = 0; SBUF = dat; /发送数据 -4. 有趣的功能= 向串口打印字符吧,应该是有趣的事了。您可以在超级终端上打出你想对女友说却又不敢说的

5、话。还可以把关键的字眼改变颜色、加亮或是闪烁显示,还可以用n(换行)、r(归位)、x00(十六进制输入)来设置一个美丽的图景。当然,这是大炮打蚊子,她看了不会感动的,就自己感动一下算了。 下面的程序里我用到了上面我提过的功能,有兴趣研究一下是一件好事,不然就看下一节。i nclude i nclude void send_char_com(unsigned char ch);void send_string_com(unsigned char *str);void init_serialcomm(void);void Delay(unsigned int a);/串口初始化void init_

6、serialcomm(void) /btl = 19200 SCON = 0x50; /SCON: serail mode 1, 8-bit UART, enable ucvr TMOD |= 0x20; /TMOD: timer 1, mode 2, 8-bit reload PCON |= 0x80; /SMOD=1; TH1 = 0xFD; /Baud:9600 fosc=11.0592MHz IE |= 0x90; /Enable Serial Interrupt TR1 = 1; / timer 1 run /串口接收中断函数 void serial () interrupt 4 u

7、sing 3 if(RI) unsigned char ch; RI = 0;send_string_com(x0c);/send_char_com(0x0c);x_welcome (); /显示欢迎画面x_menu ( );/向串口发送一个字符 void send_char_com(unsigned char ch) SBUF=ch;while(TI = 0);TI=0;/向串口发送一个字符串,长度不限。/应用:send_string_com(d9887321$); void send_string_com(unsigned char *str)while(*str != 0) send_c

8、har_com(*str); *str+; *str = 0;/欢迎画面(启动时显示)void x_welcome ( void )send_string_com(x0cnr0331;34m);send_string_com(欢迎使用串口控制平台 );send_string_com(nrby DoYoung V1.0 2006.11.11);/void x_menu ( void )send_string_com(nnr0331;31mUART 0331;30m);send_string_com(请输入功能序号: );send_string_com(nr0331;31mdoyoung 0331

9、;30m);void x_run ( void )send_string_com(bx5c);Delay(200);send_string_com(b|);Delay(200);send_string_com(b/);Delay(200);send_string_com(b-);Delay(200);void Delay(unsigned int a)unsigned char i;while( -a != 0)for(i = 0; i 125; i+); /一个 ; 表示空语句,CPU空转。 /i 从0加到125,CPU大概就耗时1毫秒/主程序main()init_serialcomm();

10、 /初始化串口x_welcome (); /显示欢迎画面x_menu (); while(1) x_run ( ) ; - 5. ASC II码表和转义字符= 我们输入的显示字符都是ASC II的标准,了解这个有必要。对于一些特殊的指令,ASC II则用转义字符更为方便。-Decimal Octal Hex Binary Value 10 08 16 02 - - *- - - 000 000 000 00000000 NUL (Null char.) 001 001 001 00000001 SOH (Start of Header)发送文件首 002 002 002 00000010 ST

11、X (Start of Text)文本开始 003 003 003 00000011 ETX (End of Text)文本尾 004 004 004 00000100 EOT (End of Transmission)发送结束 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 (Horizontal Tab) 010 012 00A 00001010 LF (Line Feed)换行 011 013 00B 00001011 VT (Vertical Tab) 012 014 00C 00001100

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号