zl程序教程

您现在的位置是:首页 >  云平台

当前栏目

单片机比赛准备01-蓝桥杯-CT107D硬件开发平台熟悉

平台单片机硬件开发 蓝桥 01 准备 比赛
2023-09-14 09:13:04 时间

这个硬件的开发板使用的是IAP15的芯片作为开发的话不多说送上原理图:

https://download.csdn.net/download/u013519537/10248187

本来想自己放到文章里面百度云太麻烦了就直接随便找了个链接了

流水灯太小儿科了吧,测试下板子有没有问题

unsigned char num;
void main()
{
	P2=0XA0;P0=0X00;P2=0X80;P0=0XFF; 
	while(1)
	{
		P0=~(1<<num);
		delayms(1000);
		num++;//num=num+1;
		if(num==8)num=0;
	}
}

void delayms(int ms)
{
	int i,j;
	for(i=0;i<ms;i++)
		for(j=845;j>0;j--);
}

就在温习下按键的使用

这里的话靠跳线帽来控制独立按键还是矩阵按键的

具体见图:跳线帽在右边是独立键盘  跳线帽在左边是矩阵键盘

而这里使用的是15的单片机没有P36 P37引脚,用P42 P44代替

51(15)单片机上电默认是高电平

在CT107D开发平台为了最大限度的提高资源的利用率使用了一系列的锁存器来控制各个模块的开关,这里使用的是74HC573,

LE是锁存端来控制

HC02:四路或非门,控制模块开关

而这里的几个573是通过一个38译码器来控制多个模块,这样的话就提高了板子的利用效率

刚刚把初赛的用到的模块视频看完,先做几个小任务练练手,毕竟是新开发板,利用这几个锁存器的模式我还不太熟悉

任务01:

独立按键:
系统上电LED灯全灭 按下S4全开 按下S5全灭 按下S6奇数亮 按下S7偶数亮

#include <stc15f2k60s2.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int 
uchar mode=0;
void allinit();
void Delayms(uint ms);
void Delay1ms();
void led();
void key();
void main()
{
	allinit();
	while(1)
	{
		key();
		led();
	}
}

void allinit()
{
	P2=0xa0;
	P0=0x00;//关闭蜂鸣器 继电器
	P2=0x80;
	P0=0xff;//关闭led灯
	
}
void led()
{
	if(mode==1)
	{
		P2=0x80;
		P0=0xaa;
	}
	if(mode==2)
	{
		P2=0x80;
		P0=0x55;
	}
	if(mode==3)
	{
		P2=0x80;
		P0=0x00;
	}
	if(mode==4)
	{
		P2=0x80;
		P0=0xff;
	}
}
void key()
{
	if(P30==0)
	{
		Delayms(5);
		if(P30==0)
		{
			mode=1;
		}
		while(!P30);
	}
	if(P31==0)
	{
		Delayms(5);
		if(P31==0)
		{
			mode=2;
		}
		while(!P31);
	}
	if(P32==0)
	{
		Delayms(5);
		if(P32==0)
		{
			mode=3;
		}
		while(!P32);
	}
	if(P33==0)
	{
		Delayms(5);
		if(P33==0)
		{
			mode=4;
		}
		while(!P33);
	}
}
void Delayms(uint ms)		//@11.0592MHz
{
	unsigned char i, j, k;
	for(k=ms;k>0;k--)
	{
		_nop_();
		_nop_();
		_nop_();
		i = 11;
		j = 190;
		do
		{
			while (--j);
		} while (--i);
	}
}
void Delay1ms()		//@11.0592MHz
{
	unsigned char i, j;

	_nop_();
	_nop_();
	_nop_();
	i = 11;
	j = 190;
	do
	{
		while (--j);
	} while (--i);
}