Chinaunix首页 | 论坛 | 博客
  • 博客访问: 323784
  • 博文数量: 61
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 789
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-05 22:48
文章分类
文章存档

2012年(1)

2011年(2)

2010年(22)

2009年(36)

我的朋友

分类: WINDOWS

2010-05-22 10:30:36

一般来说,从单片机发给超级终端显示的颜色默认是白底黑字的,最近看到一篇文章说超级终端的文字颜色和背景其实是可以改变的,所以就拿手上的开发板来试了一把。
超级终端设置为:
波特率:9600
数据位:8位
奇偶校验:无
停止位:1
数据流控制:无
 
下面是51单片机上的代码,代码风格就凑合看了,随便写的程序懒得注意什么风格。o(∩_∩)o...
 

#include<reg51.h>
bit sent;
int a = 1000;
void ini()
{
    SM0 = 0;
    SM1 = 1;
    REN = 1;
    TI = 0;
    RI = 0;
    PCON = 0;
    TH1 = 0xFD; //11.0592MHz 9600波特率

    TL1 = 0XFD;
    TMOD = 0X20;
    EA = 1;
    ET1 = 0;
    ES = 1;
    TR1 = 1;
}

void send_char_com(unsigned char ch)
{
    SBUF = ch;
    while (TI == 0);
    TI = 0;
}

void send_string_com(unsigned char *str, char len)
{
    // while(*str != 0)

    int i;
    for (i = 0;i < len;i++)
    {
        send_char_com(*str);
        str++;
    }
    *str = 0;
}

void main()
{
    ini();        //初始化串口

    //welcome();

    while (1)
    {

        if (sent == 1)
        {    //welcome();

            SBUF = 0x0c;
            //send_string_com("\n\n\r\033[1;31mUART> \033[1;30m");

            //如果不能正常显示请修改下面四个函数调用中的第二个参数。

            send_string_com( "\n\r\033[1;40;32m", 15);
            send_string_com( "\n\r 欢迎使用串口控制平台", 54);
            send_string_com( "\n\r by colin", 48);
            send_string_com( "\n\r", 2);
            TI = 0;
            sent = 0;
            ES = 1;


        }
    }
}

void intrr() interrupt 4
{
    unsigned char temp;
    if (RI == 1)
    {
    temp = SBUF;
    if (temp != 0)
        {
            sent = 1;
            ES = 0;
        }
        else
        {
            sent = 0;
        }
        RI = 0;
    }
    else
    {
        TI = 0;
    }
}


阅读(2015) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~