1、简单易用,可快速上手
2、流畅支持300个器件或1000个焊盘以下的设计规模
3、支持简单的电路仿真
4、面向学生、老师、创客
1、全新的交互和界面
2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计
3、更严谨的设计约束,更规范的流程
4、面向企业、更专业的用户
专业版 电子时钟
简介:这是一个简单的电子时钟,可以显示温度,时间,星期,年月日。
开源协议: GPL 3.0
本工程的MCU选自国民技术的N32G430C8L7,利用内部延时函数和内部ADC实现时间和温度显示的功能
以下主要分两个方面(硬件和软件)讲一下电路和程序的设计
一、硬件部分
1、最小系统
最小系统部分的设计参考自Nation《电路设计指南》的最小系统参考设计原理图
图片有些模糊,资料我在下面都会分享
mcu中预留了tft屏幕的引脚和程序烧录的引脚
这里面我舍去了32.768khz的晶振部分
2、复位按键
复位按键上面添加了电阻,也可以不添加这个电阻,添加该电阻可以加快复位相应时间
以下是不添加电阻的电路设计参考图
3、滤波电路
滤波是电路不可或缺的一部分,滤波电路作用是尽可能减小脉动的直流电压中的交流成分,保留其直流成分,使输出电压纹波系数降低,波形变得比较平滑,也可以减小静电对电路的影响,保护电路元器件。
本设计中也存在许多滤波电路,如复位按键的MCU、AMS1117、TYPE_C等电路部分都有滤波电容的存在
这些滤波电容在画pcb时因都尽可能的靠近需要滤波的管脚,如果离的太远那么滤波效果可能也就甚微
4、TYPE_C
USBType-C接口(简称Type-C)是一种通用串行总线(USB)的硬件接口形式,其规范由USB开发者论坛(USB-IF)发布。它的特点在于更加纤薄的设计、更快的传输速度(USB3.1最高10Gbps)以及更强悍的电力传输(最高100W),更重要的是Type-C插接口支持USB接口双面插入,正式解决了“USB永远插不准”的世界性难题。在USBType-C规范发布后,许多新款的Android移动设备、笔记本电脑、台式机甚至是游戏机等3C设备开始使用这种连接端口。
但是本电路中TYPE_C只是用来供电,所以在此选用了6pin的type_c母座
5、0.96寸tft屏幕
屏幕部分参考自开源工程
>https://oshwhub.com/FENG22784321/0-96-tft-cai-ping-qu-dong-ban_copy
这里面有详细的讲解我就不在赘述
以下是我焊接好的屏幕
屏幕显示还是不错的,就是拍的有点模糊了
5、程序烧录
这里主要用了两个GPIO和一组电源线完成
烧录的工具是ST_LINK烧录软件是KEIL,对于的资料我会发在附件
二、软件部分
1、屏幕显示
屏幕的通讯方式是spi
以下是屏幕使用到的管脚初始化函数
屏幕初始化函数
void LCD_Init(void)
{
// RCC_Configuration();
LCD_GPIO_Init();//初始化GPIO
LCD_RES_Clr();//复位
SysTick_Delay_Ms(100);
LCD_RES_Set();
SysTick_Delay_Ms(100);
LCD_BLK_Set();//打开背光
SysTick_Delay_Ms(100);
//************* Start Initial Sequence **********//
LCD_WR_REG(0x11); //Sleep out
SysTick_Delay_Ms(120); //Delay 120ms
//------------------------------------ST7735S Frame Rate-----------------------------------------//
LCD_WR_REG(0xB1);
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x3C);
LCD_WR_REG(0xB2);
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x3C);
LCD_WR_REG(0xB3);
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x3C);
//------------------------------------End ST7735S Frame Rate---------------------------------//
LCD_WR_REG(0xB4); //Dot inversion
LCD_WR_DATA8(0x03);
//------------------------------------ST7735S Power Sequence---------------------------------//
LCD_WR_REG(0xC0);
LCD_WR_DATA8(0x28);
LCD_WR_DATA8(0x08);
LCD_WR_DATA8(0x04);
LCD_WR_REG(0xC1);
LCD_WR_DATA8(0XC0);
LCD_WR_REG(0xC2);
LCD_WR_DATA8(0x0D);
LCD_WR_DATA8(0x00);
LCD_WR_REG(0xC3);
LCD_WR_DATA8(0x8D);
LCD_WR_DATA8(0x2A);
LCD_WR_REG(0xC4);
LCD_WR_DATA8(0x8D);
LCD_WR_DATA8(0xEE);
//---------------------------------End ST7735S Power Sequence-------------------------------------//
LCD_WR_REG(0xC5); //VCOM
LCD_WR_DATA8(0x1A);
LCD_WR_REG(0x36); //MX, MY, RGB mode
if(USE_HORIZONTAL==0)LCD_WR_DATA8(0x00);
else if(USE_HORIZONTAL==1)LCD_WR_DATA8(0xC0);
else if(USE_HORIZONTAL==2)LCD_WR_DATA8(0x70);
else LCD_WR_DATA8(0xA0);
//------------------------------------ST7735S Gamma Sequence---------------------------------//
LCD_WR_REG(0xE0);
LCD_WR_DATA8(0x04);
LCD_WR_DATA8(0x22);
LCD_WR_DATA8(0x07);
LCD_WR_DATA8(0x0A);
LCD_WR_DATA8(0x2E);
LCD_WR_DATA8(0x30);
LCD_WR_DATA8(0x25);
LCD_WR_DATA8(0x2A);
LCD_WR_DATA8(0x28);
LCD_WR_DATA8(0x26);
LCD_WR_DATA8(0x2E);
LCD_WR_DATA8(0x3A);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x01);
LCD_WR_DATA8(0x03);
LCD_WR_DATA8(0x13);
LCD_WR_REG(0xE1);
LCD_WR_DATA8(0x04);
LCD_WR_DATA8(0x16);
LCD_WR_DATA8(0x06);
LCD_WR_DATA8(0x0D);
LCD_WR_DATA8(0x2D);
LCD_WR_DATA8(0x26);
LCD_WR_DATA8(0x23);
LCD_WR_DATA8(0x27);
LCD_WR_DATA8(0x27);
LCD_WR_DATA8(0x25);
LCD_WR_DATA8(0x2D);
LCD_WR_DATA8(0x3B);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x01);
LCD_WR_DATA8(0x04);
LCD_WR_DATA8(0x13);
//------------------------------------End ST7735S Gamma Sequence-----------------------------//
LCD_WR_REG(0x3A); //65k mode
LCD_WR_DATA8(0x05);
LCD_WR_REG(0x29); //Display on
}
还有一些调用的显示字符和数字的函数
2、内部ADC——温度采集
2.1N32G430的ADC简介
加载中...
是否需要添加此工程到专辑?