每次要看原理图时,都需要打开99SE,有点麻烦。
有原理图就好啦。。。。
提供原理图、PCB的PDF
1.STC12C5A60S2.rar
——回复可见内容——
//***************************************************************
2楼. 秀PCB
4楼. 小试LED
15楼. 74HC573的15脚有点问题
16楼. 数码管显示计数
17楼. lcd1602 + ds18b20
18楼.TFT彩屏简单显示
xj0126的MCU DIY进程贴

基本都焊接完毕
试了下LED,还不错哦
都懂的。。。
下面是代码
#include<stc12c5a60s2.h>//我用的stc12c5a60s2,建的一个头文件。
/********* 延时子程序***********/
void delayms(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
/*****************************************************************************
void main()
{
unsigned char LED;
LED = 0xfe;
P1 = LED;
while(1)
{
delayms(250);
LED = _crol_(LED,1); //循环右移1位,在头文件intrins.h
P1 = LED;
}
}

简单的数码管计数显示
外加代码。。。
可以根据此来修改一下,以便更好地读懂代码。
#include <stc12c5a60s2.h> //头文件
#define uchar unsigned char
#define uint unsigned int
sbit ls138_a=P2^0;
sbit ls138_b=P2^1;
sbit ls138_c=P2^2;
char seg_dis[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9
void delay(uchar m);
void main()
{
long seg_data;
char seg_tab[8];
char count=0;
uchar i;
seg_data=0;
while(1)
{
if(++count)
{
if(count==1)
{
seg_data++;
count=0;
}
}
/*seg_tab[0]=seg_dis[seg_data%10000/1000];
seg_tab[1]=seg_dis[seg_data%1000/100];
seg_tab[2]=seg_dis[seg_data%100/10];
seg_tab[3]=seg_dis[seg_data%10];*/
seg_tab[0]=seg_dis[seg_data%100000000/10000000]; // 千万
seg_tab[1]=seg_dis[seg_data%10000000/1000000]; // 百万
seg_tab[2]=seg_dis[seg_data%1000000/100000]; // 十万
seg_tab[3]=seg_dis[seg_data%100000/10000]; // 万位
seg_tab[4]=seg_dis[seg_data%10000/1000]; // 千位
seg_tab[5]=seg_dis[seg_data%1000/100]; // 百位
seg_tab[6]=seg_dis[seg_data%100/10]; // 十位
seg_tab[7]=seg_dis[seg_data%10]; // 个位
for(i=0;i<8;i++)
{
P0 = seg_tab[i];
switch(i)
{
case 0: ls138_c=0; ls138_b=0; ls138_a=0;break;
case 1: ls138_c=0; ls138_b=0; ls138_a=1;break;
case 2: ls138_c=0; ls138_b=1; ls138_a=0;break;
case 3: ls138_c=0; ls138_b=1; ls138_a=1;break;
case 4: ls138_c=1; ls138_b=0; ls138_a=0;break;
case 5: ls138_c=1; ls138_b=0; ls138_a=1;break;
case 6: ls138_c=1; ls138_b=1; ls138_a=0;break;
case 7: ls138_c=1; ls138_b=1; ls138_a=1;break;
default : break;
}
delay(10);
}
}
}
void delay(uchar m)//延时函数
{
uchar i,j;
for(i=0;i<m;i++)
{
for(j=0;j<200;j++)
{
;
}
}
}