15H2K64S4大学计划实验箱V1.1(嘉立创专业版设计)| 第2位设计出来的
基于芯片15H2K64S4设计的15H2K64S4大学计划实验箱V1.1,
一天完成原理图到PCB的设计。
希望大家帮忙审核一下。
大家帮审核,第一名辛苦费 RMB500
增加楼上为第2名,第二名辛苦费 RMB300
自己多审核下,大家也帮审核下
完善丝印显示和走线,减少电源回路。
!(data/attachment/forum/202412/04/223603m63y3q2020uvynac.png "3D_PCB_20241128_2024-12-04.png")
<p><img src="data/attachment/forum/202412/04/223851f5h55cvhi0ii5z2d.png" alt="3D_PCB_20241128_2024-12-041.png" title="3D_PCB_20241128_2024-12-04 (1).png" /></p>
最新版原理图和PCB见附件1,2;附件3为3D预览图
[!(/source/plugin/zhanmishu_markdown/template/editor/images/upload.svg) 附件:SCH_Schematic_20241128_2024-12-04.pdf](forum.php?mod=attachment&aid=68601 "attachment")[!(/source/plugin/zhanmishu_markdown/template/editor/images/upload.svg) 附件:PCB_PCB_20241128_2024-12-04.pdf[!(/source/plugin/zhanmishu_markdown/template/editor/images/upload.svg) 附件:InteractiveBOM_PCB_20241128_2024-12-4.html](forum.php?mod=attachment&aid=68604 "attachment")](forum.php?mod=attachment&aid=68603 "attachment")
<video controls="controls" src="forum.php?mod=attachment&aid=79329"></video>
<p>最新更新进度2025年-1-6</p>
<p>以上分别包含</p>
<p>开发板LED流水灯显示、定时器中断闪烁led7 和OLED显示测试。</p>
<p><a href="forum.php?mod=attachment&aid=79330" title="attachment"><img src="/source/plugin/zhanmishu_markdown/template/editor/images/upload.svg" alt="upload" /> 附件:1.流水灯.zip</a></p>
<p>实物演示图片</p>
<p><img src="data/attachment/forum/202501/06/224258qibozb0aguzzyxwy.jpg" alt="831bd7c8183132950b510d56bfbe705.jpg" title="831bd7c8183132950b510d56bfbe705.jpg" /></p>
<p><img src="data/attachment/forum/202501/06/224229pppajtpaqjdnpnfj.jpg" alt="652a31eb93b6fca2cb99adbce933b97.jpg" title="652a31eb93b6fca2cb99adbce933b97.jpg" /></p>
<p>实物演示图片</p>
<p><img src="data/attachment/forum/202501/06/224258qibozb0aguzzyxwy.jpg" alt="831bd7c8183132950b510d56bfbe705.jpg" title="831bd7c8183132950b510d56bfbe705.jpg" /></p>
<p><img src="data/attachment/forum/202501/06/224229pppajtpaqjdnpnfj.jpg" alt="652a31eb93b6fca2cb99adbce933b97.jpg" title="652a31eb93b6fca2cb99adbce933b97.jpg" /></p>
关于数码管显示问题,提问
目的是想让数码管右边第一位单独显示一个数字3,但是数码管全部显示3
如图
程序如下
/*---------------------------------------------------------------------*/
/*---------------------------------------------------------------------*/
#include "stdio.h"
#include <STC15H.H>
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;
#define FOSC 11059200L
#define T1MS (65536-FOSC/1000) //1Tģʽ
#define DIS_DOT 0x20
#define DIS_BLACK 0x10
#define DIS_ 0x11
/*************±¾µØ³£Á¿ÉùÃ÷ **************/
u8 code t_display[]={ //±ê×¼×Ö¿â
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,
//black- H J K L N o P U t G Q r M y
0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50,0x37,0x6e,
0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x46};
u8 code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //λÂë
/*************IO¿Ú¶¨Òå **************/
sbit DS = P2^3; //pin 14 SER data input ´®ÐÐÊý¾ÝÊäÈë DS
sbit ST_CP= P2^6; //pin 12 RCLk store (latch) clock ´æ´¢¼Ä´æÆ÷ʱÖÓÊäÈë/ ST_CP
sbit SH_CP = P2^5; //pin 11 SRCLK Shift data clock ÒÆÎ»¼Ä´æÆ÷ʱÖÓÊäÈë//SH_CP
/*************±¾µØ±äÁ¿ÉùÃ÷ **************/
u8LED8; //ÏÔʾ»º³å
u8display_index;//ÏÔʾλË÷Òý
bit B_1ms; //1ms±êÖ¾
/*************±¾µØº¯ÊýÉùÃ÷ **************/
void Delay500ms(void); //@11.0592MHz
void Delay5ms(void); //@11.0592MHz
void Send_595(u8 dat);
void DisplayScan(void);
void Display();
void move(void);
void clock(void);
void WriteLED(u8 SEG,u8 DIG);
/****************Íⲿº¯ÊýÉùÃ÷ºÍÍⲿ±äÁ¿ÉùÃ÷ *****************/
/******************** Ö÷º¯Êý **************************/
void main(void)
{
u8i,k;
P0M1 = 0x00; P0M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P1M1 = 0x00; P1M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P2M1 = 0x00; P2M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P3M1 = 0x00; P3M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P4M1 = 0x00; P4M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
P5M1 = 0x00; P5M0 = 0x00; //ÉèÖÃΪ׼˫Ïò¿Ú
AUXR |= 0x80; //¶¨Ê±Æ÷0Ϊ1Tģʽ
TMOD = 0x00; //ÉèÖö¨Ê±Æ÷Ϊģʽ0(16λ×Ô¶¯ÖØ×°ÔØ)
TL0 = T1MS; //³õʼ»¯¼ÆÊ±Öµ
TH0 = T1MS >> 8;
TR0 = 1; //¶¨Ê±Æ÷0¿ªÊ¼¼ÆÊ±
ET0 = 1; //ʹÄܶ¨Ê±Æ÷0ÖжÏ
EA = 1; //´ò¿ª×ÜÖжÏ
display_index = 0;
while(1)
{
// if(B_1ms) //1msµ½
// {
// B_1ms = 0;
//// LED8 = 10; //ÏÔʾA
//// LED8 = 1;
//
// }
WriteLED(0x4F,0x01);//3
}
}
void move(void)
{
SH_CP=0;
_nop_();
SH_CP=1;
_nop_();
}
void clock(void)
{
ST_CP=0;
_nop_();
ST_CP=1;
_nop_();
ST_CP=0;
}
/**************** ÏòHC595·¢ËÍÒ»¸ö×Ö½Úº¯Êý ******************/
void Send_595(u8 dat)
{
u8i;
for(i=0; i<8; i++)
{
if(dat&0x80)
DS = 1;
else
DS = 0;
move();
dat <<= 1;
}
}
void WriteLED(u8 SEG,u8 DIG)
{
Send_595(DIG); //¿ØÖÆÎ»Ñ¡
Send_595(SEG); //¿ØÖƶÎÏÔ
clock();
}
/********************** ÏÔʾɨÃ躯Êý ************************/
void DisplayScan(void)
{
// Send_595(t_display]); //Êä³ö¶ÎÂë
// Send_595(~T_COM); //Êä³öλÂë
// P_HC595_RCLK = 1;
//
// P_HC595_RCLK = 0;
// if(++display_index >= 8) display_index = 0;//8λ½áÊø»Ø0
}
/********************** ÑÓʱɨÃ躯Êý ************************/
void Delay500ms(void) //@11.0592MHz
{
unsigned char data i, j, k;
i = 22;
j = 3;
k = 227;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void Delay5ms(void) //@11.0592MHz
{
}
/********************** Timer0 1msÖжϺ¯Êý ************************/
void timer0 (void) interrupt 1
{
}
页:
[1]