⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 说明.txt

📁 我实验板带的实验程序
💻 TXT
字号:
//------------------------------------------------------------------------------

// 该程序由湖北枝江 - 飞扬软件工作室  吴涛  友情提供11/22/2003

#include <REG51.H>
#include <intrins.h>
#include "mytest.h"
#include "lcd.h"
#include "key.h"
#include "misc.h"
#include "24c02.h"

/*

使用说明:

一、硬件配置:

需要先安装液晶162A,所有测试过程中的信息都将通过此输出。
如果测试串口发送,需要先与PC连线并启动串口接收软件,波特率4800,无校验位,数据位8,停止位1。


测试顺序如下:

1、指示灯;
2、数码管;
3、喇叭
4、24C02
5、串口

当提示按键继续时,按主板上的键或遥控器按键都可以。由于液晶占用了 TXD 口,因此做串行口
测试时会接收到一部分乱码,所以你们需要将接收软件打到 16 进制显示,看到 Hello PC! 的编
码即可。

其中键盘和红外线遥控可在等待按键继续时测试,液晶通过输出信息测试。




*/


#ifdef MONITOR51
    char code reserve [3] _at_ 0x23;
#endif

void extern0_ISR () interrupt 0  { }
void timer0_ISR  () interrupt 1  { }
void extern1_ISR () interrupt 2  { }
void timer1_ISR  () interrupt 3  { }
void serial_ISR  () interrupt 4  { }

//-------------------------------------

static const char caryLEDData [] = 
{
    0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60
};


void main (void)
{
    if (TestBoard () == TRUE)
    {
        ShowMessage ("Test OK.");
        beep (0xFF);
    }

    while (TRUE);
}

bit TestBoard ()
{
    char i;
    char *ps;

    WaitKeyDown ("Press any key to start...");

    //-------------------------------

    ShowMessage ("Testting indicator light...");

    P1 = 0xFE;
    for (i = 0; i < 7; i++)
    {
        Delay (2);  // waitting one second.
        P1 = _crol_ (P1, 1);
    }

    //-------------------------------
     
    WaitKeyDown ("Press any key to test LED...");
    ShowMessage ("Testting LED...");
     
    P2 = 0xFD;
    for (i = 0; i < 6; i++)
    {
        P0 = caryLEDData [i];
        Delay (2);  // waitting one second.
        P2 = _crol_ (P2, 1);
    }

    P0 = caryLEDData [8];
    P2 = 0;
    Delay (2);  // waitting one second.

    P2 = 0xFF;
    P0 = 0xFF;

    //-------------------------------
     
    WaitKeyDown ("Press any key to test speaker...");
    ShowMessage ("Testting speaker...");
     
    beep (0x7F);

    //-------------------------------

    WaitKeyDown ("Press any key to test 24C02...");
    ShowMessage ("Testting 24C02...");

    WT24 (0, 0xAA);
    WT24 (0xFF, 0x55);

    if (RD24 (0) != 0xAA || RD24 (0xFF) != 0x55)
    {
        ShowMessage ("Test 24C02 failed !");
        beep (0x7F);
        return FALSE;
    }

    //-------------------------------

    WaitKeyDown ("Press key to test serial port...");

    P3 = 0xFF;

    TMOD = 0x20;
    TL1 = 0xF3;
    TH1 = 0xF3;
    TR1 = 1;
    SCON = 0x40;
    PCON |= 0x80;

    ps = "Hello PC!";
    while (*ps != '\0')
    {
        SBUF = (unsigned char)*ps++;
        while (TI == 0);
        TI = 0;
    }

    //-------------------------------

    return TRUE;
}

void WaitKeyDown (char code* szMessage)
{
    ShowMessage (szMessage);
    WaitKey ();
}

void ShowMessage (char code* szMessage)
{
    ClearScreen ();
    ShowText (szMessage);
}

sbit SPEAKER = P3^3;

void beep (unsigned char cDelay)
{
    char i;
    unsigned char j, n;
   
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 0xFA; j++)
        {
            SPEAKER ^= 1;

            for (n = 0; n < cDelay; n++)
            {
                _nop_ ();
                _nop_ ();
            }
        }
    }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -