考试结束了,论坛活动也快结束了!唉,没有把握好时间
先说个现象:PCB焊完后,试了个小程序,发现一个问题。LED2有异常现象,当IO为高电平时,LED2微量,导致IO的电平变为3.6V左右,怀疑是蜂鸣器驱动电路那边的问题。
还没有花时间来检查是否是蜂鸣器驱动电路上面的问题,下来可以把4.7K的电阻换大点试一试。建议各位在以后的设计中把蜂鸣器电路设计为低电平驱动电路,效果比较好。这是个人以前实验时所用到的最好的一种电路,分享哈。图片如下所示:
接下来的进程帖会在下面楼层贴出!
ypanging MCU DIY进程帖
流水灯,最基本的。测试板子用的
程序如下:
//P1口LED流水灯,12M晶振
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delayms(uint x)//延时x ms
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uchar k;
uchar temp;
P1=0xff; //P1口全部置1,熄灭所有LED
while(1)
{
temp=0x01; //赋初值给temp,只有1位为1
for(k=0;k<8;k++)
{
P1=~temp; //将temp取反后送P1口输出
delayms(1000); //调用延时函数,延时1s
temp=temp<<1; //temp种的数据左移1位
}
}
}
图片如下:
下面是一位数码管显示0-F的计数器:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P3^7;
sbit we0=P2^0;
sbit we1=P2^1;
sbit we2=P2^2;
uchar num,num1;tt;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void main()
{
num=0;
tt=0;
TMOD=0x11;//设置定时器0为工作方式1
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TH1=(65536-20000)/256;
TL1=(65536-20000)%256;
EA=1;//开总中断
ET0=1;//开定时器0中断
ET1=1;
TR0=1;//启动定时器0
TR1=1;
we0=0;
we1=0;
we2=0;
dula=1;
P0=0x3f;
dula=0;
while(1)
{
if(num1==25)
{
num1=0;
P1=~P1;
}
if(tt==100)
{
tt=0;
num++;
if(num==16)
num=0;
dula=1;
P0=table[num];
dula=0;
}
}
}
void time0() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
tt++;
}
void time1() interrupt 3
{
TH1=(65536-20000)/256;
TL1=(65536-20000)%256;
num1++;
}
图片如下:
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |