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);
}
}
相关代码见附件。
8pin都可以这样玩,功能蛮多的 之后的测试中发现,数码管和74HC595移位寄存器芯片有一点发热,数码管亮度过大,需要在74HC595和数码管之间添加300Ω限流电阻(如果有同学复刻的话需要注意这一点)每个数码管数字引脚均需添加限流电阻 看着很小巧啊,适合做什么实例开发呢? 晓飛飛 发表于 2024-9-25 19:08
看着很小巧啊,适合做什么实例开发呢?
可以开发的项目有很多哦~
这里举几个例子:
1. 数码管改成最小那种,可以做成桌面倒计时工具;
2. 顶部 IIC 接口可以外接 SHT40 温湿度传感器,通过底部 IIC OLED 屏显示环境温湿度;
3. 物联网相关——顶部接口作为串口通信接口,外接无线WiFi模块,可以将底部接口的传感器数据通过MQTT协议,上传至云端服务器,支持 Home Assistant 智能家居等等。
……
这款芯片的性能还是相当不错的,常见的物联网功能都能实现,后面我会验证这些方案{:5_361:} lijinlei 发表于 2024-9-25 19:43
可以开发的项目有很多哦~
这里举几个例子:
1. 数码管改成最小那种,可以做成桌面倒计时工具;
实现基于 DHT11 和 OELD 的温湿度计项目,效果如下
视频演示
271
lijinlei 发表于 2024-9-25 18:57
之后的测试中发现,数码管和74HC595移位寄存器芯片有一点发热,数码管亮度过大,需要在74HC595和数码管之间 ...
================2024年10月7日更新=============
增加限流电阻
详见:STC8G1K08A-SOP8扩展开发板
测试视频如下
272
273
页:
[1]