洪嵐峰 發表於 2023-4-9 09:25:51

STC8H1K08 微型示波器

以下是使用STC8H1K08製作微型示波器的示例代碼:


#include <STC8.H>

#define LCD_SCL P1_0
#define LCD_SDA P1_1
#define LCD_RST P1_2
#define OSC_OUT P3_3

typedef unsigned char u8;
typedef unsigned int u16;

void delay(u16 i)
{
    while(i--);
}

void init_LCD()
{
    LCD_SCL=0;
    LCD_SDA=1;
    LCD_RST=1;
    delay(50000);
    LCD_RST=0;
    delay(50000);
    LCD_RST=1;
    delay(50000);
    IIC_start();
    IIC_write_byte(0x78);
    IIC_write_byte(0x8a);
    IIC_write_byte(0x00);
    IIC_stop();
    IIC_start();
    IIC_write_byte(0x78);
    IIC_write_byte(0xae);
    IIC_write_byte(0x00);
    IIC_stop();
}

void display(u8 *s,u8 x,u8 y)
{
    u8 i;
    IIC_start();
    IIC_write_byte(0x78);
    IIC_write_byte(0x40|x);
    IIC_write_byte(0xb0|y);
    for(i=0;i<8;i++)
    {
        IIC_write_byte(table]);
    }
    IIC_stop();
}

void main()
{
    u8 buf;
    u16 i,t;
    init_LCD();
    display("OSC:",0,0);
    while(1)
    {
        for(i=0;i<128;i++)
        {
            t=OSC_OUT;
            t=(t<<8)+OSC_OUT;
            sprintf(buf,"%04d",t);
            display(buf,i%16,i/16+1);
            delay(50);
        }
    }
}
在這個示例代碼中,使用了P3.3作為示波器的輸入口。程序每50個時鐘週期讀取一次P3.3引腳的狀態,並將讀取到的數值顯示在液晶屏幕上,實現了一個簡單的微型示波器。
頁: [1]
查看完整版本: STC8H1K08 微型示波器