lijinlei 发表于 2024-9-25 04:28:02

8G1K08A-SOP8 开发板 PCB 设计 V2.0

本帖最后由 DebugLab 于 2024-9-25 09:07 编辑

之前设计了一款 8G1K08A-SOP8 扩展开发板(v1.0),由于未考虑到该款芯片不支持硬件USB,因此对开发板设计进行优化。优化后的开发板仅保留串口通信和串口下载接口作为供电接口。此外该开发板包含一位 74HC595 共阴数码管、所有IO接口LED指示灯、串口通信接口、OLED IIC扩展接口、IIC通信接口等。


实物效果如下


3D图如下






2D图




PCB如下




原理图如下




PCB 项目详见:https://oshwhub.com/jinleili/stc8g1k08a-sop8-extension-develo

DHT11测试



OLED IIC通信测试



板载数码管秒表计时测试
264

代码
#include <STC8G.H>
#include "intrins.h"
typedef unsigned char u8;                              //unsigned char               类型用 u8 表示
typedef unsigned int u16;                              //unsigned int                  类型用 u16表示
typedef unsigned long int u32;      //unsigned long int 类型用 u32表示

sbit DS = P5^5;                        //串行输入SER接
sbit ST = P3^2;                        //锁存时钟RCLK接
sbit SH = P5^4;                        //串行输入时钟SRCLK接
sbit COM1 = P0^0;                        //数码管公共端COM1接

void delayms(u8 ms);                                                //延时函数声明
void Write595(u8 dat);

u8 SEG_Code = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40,0xFF};      //数码管全灭(10),横杆-(11),数码管全亮(12)
//u8 SEG_Code = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf,0x00};//BS digital tube
void main()
{      
      u8 i,number;
      
      P0M1 = 0x00;P0M0 = 0x00;                //设置P0口为准双向口模式 00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
      P1M1 = 0x00;P1M0 = 0x00;                //设置P1口为准双向口模式 00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
      P2M1 = 0x00;P2M0 = 0x00;                //设置P2口为推挽输出模式 00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
      P3M1 = 0x00;P3M0 = 0x00;                //设置P0口为准双向口模式 00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
      P4M1 = 0x00;P4M0 = 0x00;                //设置P1口为准双向口模式 00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
      P5M1 = 0x00;P5M0 = 0x00;                //设置P2口为推挽输出模式 00:准双向口 01:推挽输出 10:高阻输入 11:开漏输出
      
      number = 0;
      while(1)
      {
                for(i = 0;i < 200;i++)      //每个数字显示200*5毫秒(粗略计算1秒)
                {
                        Write595(number);                                        //显示0-9计数
                        COM1 = 0;                                                      //共阴极数码管,公共端给低电平点亮
                        delayms(5);                                                //延时5毫秒
                }
                number++;
                if(number > 9) number = 0;
      }
}
void Write595(u8 dat)                              //向595发送写数据函数
{
      u16 i;
      u8 datcode;
      datcode = SEG_Code;      //十进制数转段码
      for(i = 0;i < 8;i++)                //写数据
      {
                SH = 0;                                                      //拉低串行输入时钟SCLK
                DS = datcode & 0x80;      //取最高位
                SH = 1;                                                      //SCKL时钟上升沿,数据存移位寄存器
         datcode <<= 1;                                        //每次一位
      }
      ST = 0;                                                      //拉低ST时钟
      ST = 1;                                                      //ST时钟上升沿,更新输出存储器数据
}
//----------------Timer-----------------------------
void delayms(u8 ms)                //@24.000MHz
{
      u8 i, j;
      
      while(ms--)
      {
                _nop_();
                i = 32;
                j = 40;
                do
                {
                        while (--j);
                } while (--i);
      }
}

相关代码见附件。

soma 发表于 2024-9-25 16:52:21

8pin都可以这样玩,功能蛮多的

lijinlei 发表于 2024-9-25 18:57:23

之后的测试中发现,数码管和74HC595移位寄存器芯片有一点发热,数码管亮度过大,需要在74HC595和数码管之间添加300Ω限流电阻(如果有同学复刻的话需要注意这一点)每个数码管数字引脚均需添加限流电阻

晓飛飛 发表于 2024-9-25 19:08:14

看着很小巧啊,适合做什么实例开发呢?

lijinlei 发表于 2024-9-25 19:43:38

晓飛飛 发表于 2024-9-25 19:08
看着很小巧啊,适合做什么实例开发呢?

可以开发的项目有很多哦~
这里举几个例子:
1. 数码管改成最小那种,可以做成桌面倒计时工具;
2. 顶部 IIC 接口可以外接 SHT40 温湿度传感器,通过底部 IIC OLED 屏显示环境温湿度;
3. 物联网相关——顶部接口作为串口通信接口,外接无线WiFi模块,可以将底部接口的传感器数据通过MQTT协议,上传至云端服务器,支持 Home Assistant 智能家居等等。
……
这款芯片的性能还是相当不错的,常见的物联网功能都能实现,后面我会验证这些方案{:5_361:}

lijinlei 发表于 2024-10-5 18:16:30

lijinlei 发表于 2024-9-25 19:43
可以开发的项目有很多哦~
这里举几个例子:
1. 数码管改成最小那种,可以做成桌面倒计时工具;


实现基于 DHT11 和 OELD 的温湿度计项目,效果如下



视频演示
271

lijinlei 发表于 2024-10-7 22:39:33

lijinlei 发表于 2024-9-25 18:57
之后的测试中发现,数码管和74HC595移位寄存器芯片有一点发热,数码管亮度过大,需要在74HC595和数码管之间 ...

================2024年10月7日更新=============
增加限流电阻
详见:STC8G1K08A-SOP8扩展开发板
测试视频如下
272
273


页: [1]
查看完整版本: 8G1K08A-SOP8 开发板 PCB 设计 V2.0