电子萌新的学习记录——STC12C5A60S单片机——独立按键流水灯

电子萌新的学习记录

STC12C5A60S单片机——独立按键流水灯

1.0版本(非常普通,使用三个独立按键控制加速、减速、停止与启动)代码如下:

#include <STC12C5A60S2.H>
#include "intrins.h"
sbit key1 = P2 ^ 2;
sbit key2 = P2 ^ 1;
sbit key3 = P2 ^ 0;
unsigned int i, time = 500;
void Delay_ms(unsigned int time)
{
	unsigned char i, j;
	while (time--)
	{
		_nop_(); _nop_(); _nop_();
		i = 11;
		j = 190;
		do
		{
			while (--j);
		} while (--i);
	}
}
void main()
{
	P0M0 = 0xff;   
	while (1)
	{
		for (i = 0; i < 8; i++)
		{
			P0 = 0x01 << i;
			Delay_ms(time);
			if (key1 == 0)
		{
			Delay_ms(10);
				if (key1 == 0)
				{
					time = 100;
				}
				while(!key1);
			}
			if (key2 == 0)
			{
				Delay_ms(10);
				if (key2 == 0)
				{
					time = 900;
				}
				while(!key2);
			}
			if (key3 == 0)
			{
				Delay_ms(10);
				if (key3 == 0)
				{
					while(1)
					{
						while(!key3);
						if (key3 == 0)
						{
							Delay_ms(10);
							if(key3 == 0)
							{
								break;
							}
						}
					}
				}
				while(!key3);
			}
		}
	}
}

使用stc-isp-15xx-v6.87F软件将hex文件下载进单片机版


下面为2.0版本
2.0版本可变速,代码如下

#include <STC12C5A60S2.H>
#include"intrins.h"

unsigned int i, time;
sbit key1 = P2^2;
sbit key2 = P2^1;
sbit key3 = P2^0;

void Delay_ms(unsigned int time)
{
	unsigned char i, j;
	while (time--)
	{
		_nop_();_nop_();_nop_();
		i = 11;
		j = 190;
		do
		{
			while(--j);
		}while(--i);
	}
}

void main()
{
	P0M0 = 0xff;
	time = 200;
	while(1)
	{
		for (i = 0; i < 8; i++)
		{
			P0 = 0x01 << i;
			Delay_ms(time);
			
			if (key1 == 0)
			{
				Delay_ms(10);
				if (key1 == 0)
				{
					time = time / 2;
					if (time < 40)  //这里可调最快速度
					{
						time = 40;
					}
				}
				while(!key1);
			}
			
			if (key2 == 0)
			{
				Delay_ms(10);
				if (key2 == 0)
				{
					time = time * 2;
					if (time > 1000)   //这里可调最慢速度
					{
						time = 1000;
					}
				}
				while(!key2);
			}
			
			if (key3 == 0)
			{
				Delay_ms(10);
				if (key3 == 0)
				{
					while(1)
					{
						while(!key3);
						if (key3 == 0)
						{
							Delay_ms(10);
							if (key3 == 0)
							{
								break;
							}
						}
					}
				}
				while(!key3);
			}
		}
	}
}

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STC12C5A60S2单片机手册是一本详细介绍STC12C5A60S2单片机特性、功能以及使用方法的参考资料。这本手册对于想要了解和使用STC12C5A60S2单片机的工程师和学生来说非常重要。 首先,手册会详细介绍STC12C5A60S2单片机的基本特性。它将包括单片机的工作电压范围、时钟频率、存储容量等信息,这些特性对于确保单片机能够适用于特定的应用场景非常关键。 其次,手册会提供STC12C5A60S2单片机的功能描述。这包括单片机所支持的指令集、输入输出端口、通信接口等。这些功能可以帮助工程师更好地了解单片机的能力,为他们设计和开发适当的电路布局和软件代码提供指导。 在手册中,还会给出STC12C5A60S2单片机的引脚功能描述和电气特性。这将涵盖每个引脚的具体功能和用途,以及引脚的电气特性,例如驱动能力和输入电平范围。工程师可以根据这些信息来设计适当的电路连接。 此外,手册还会提供关于STC12C5A60S2单片机编程和调试的详细信息。它包括单片机所支持的编程语言、开发环境以及调试工具。这对于学习和使用STC12C5A60S2单片机来说非常重要,有助于确保开发过程的顺利进行。 最后,手册还会提供示例电路图和代码,以帮助工程师更好地理解和应用STC12C5A60S2单片机。这些示例可以作为起点,为工程师提供一些实际应用的指导,帮助他们更好地利用单片机的功能。 总的来说,STC12C5A60S2单片机手册是一本功能丰富的参考资料,它提供了关于STC12C5A60S2单片机基本特性、功能描述、引脚功能和电气特性、编程和调试等方面的详细信息。这本手册对于学习和使用STC12C5A60S2单片机的人来说是一个宝贵的工具,将帮助他们更好地理解和应用这款单片机

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值