前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >51单片机linux环境LED、数码管、开关、循环、判断演示

51单片机linux环境LED、数码管、开关、循环、判断演示

作者头像
zhangrelay
发布于 2021-12-02 06:15:05
发布于 2021-12-02 06:15:05
38100
代码可运行
举报
运行总次数:0
代码可运行

示例程序如下,有bug,能运行但效果可提升:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <8052.h>       	

#define LSA P1_5  			
#define LSB P1_6  			
#define LSC P1_7 

char SEG[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void init0(void)
{
	LSA = 1;
	LSB = 0;
	LSC = 0;
} 
void init1(void)
{
	LSA = 1;
	LSB = 0;
	LSC = 0;
} 			
void init2(void)
{
	LSA = 0;
	LSB = 1;
	LSC = 0;
}
void init3(void)
{
	LSA = 1;
	LSB = 1;
	LSC = 0;
}
void init4(void)
{
	LSA = 0;
	LSB = 0;
	LSC = 1;
}
void ledsplus(unsigned char leds,unsigned int delay)
{
	P0=leds;
	while(delay--);
	delay=10000;
}
void seg1(unsigned char leds,unsigned int delay)
{
	P0=SEG[leds];
//	delay=50000;
	while(delay--);
}
int  main(void)			
{
	init1();
	unsigned char leds=0xff;
	unsigned char cnt=0x00;
	unsigned int delay=10000;
	while(1)				
	{
		if(P3_2==0)
		{
			for(leds=0xff;leds>0x00;leds--)
			{
				ledsplus(leds,delay);
				if(P3_4==0)
				{
					break;
				}
			}
		}
		if(P3_3==0)
		{
			for(leds=0x00;leds<11;leds++)
			{
				seg1(leds,10000*cnt);
			}
		}
		if(P3_4==0)
		{
			cnt++;
			if(cnt>7)
			{
				cnt=0x00;
			}
		}
		
		P0=0xff;
		delay=10000;
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/09/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
单片机补充案例--颤抖的数码管
这是数码管模拟波形的动态效果,但是代码中有些小bug,眼尖的可以发现哦。 直接上代码,课题上讲过了: /***************************************************************************** * 头文件 * ************************************************
zhangrelay
2021/03/03
2170
单片机补充案例--stc89c52的P4口使用
说明:头文件为8052.h默认情况下不能使用P4口,需要添加如下代码,如使用P4_4:
zhangrelay
2021/03/03
9320
单片机补充案例--中断到底用不用
是否使用中断依据实际情况而定,并非是做题惯性,题目要求用就用,这种思想不适合工作。
zhangrelay
2021/03/03
2090
单片机补充案例--数字IO口呼吸灯
说明:不使用PWM口,而是使用数字口和时延函数模拟,从而实现普通IO口对LED灯的亮度控制。
zhangrelay
2021/03/03
4130
单片机补充案例--按键点灯
关于单片机程序,如果使用固件库一定要配置好环境,对于实验一,不配置正确就无法完成编译,报错无法找到xxx等:
zhangrelay
2021/03/03
2750
单片机补充案例--速度反馈控制LED灯柱状图
说明:速度快LED显示灯多,速度慢LED显示灯少,显示次序从下向上。 设备: 码盘 端口 使用外部中断和定时器中断,实现里程计测速,从S到dS(V)的过程。 结合高等
zhangrelay
2021/03/03
3650
单片机补充案例--简易里程计
说明:使用外部中断捕获车轮上脉冲,用于计数从而测量车轮总里程,通过LED灯亮灭累积示意。
zhangrelay
2021/03/03
3150
stc89c52在Linux或MacOS下使用sdcc和stcgal中断与LCD测试代码
使用说明参考:https://zhangrelay.blog.csdn.net/article/details/108449115
zhangrelay
2020/10/09
1K0
单片机补充案例--入侵检测系统
说明:使用 STC89C52 设计入侵检测系统,给出方案和核心代码,需满足下列要求: 1. 发现入侵立刻开启 LED 闪烁警示 2. 入侵超过 5s 警报响起 3. 手动清除声光报警时,需输入安许可防密码
zhangrelay
2021/03/03
1K0
单片机补充案例--两只老虎
将led换成喇叭,通过编程实现音乐和电子琴功能也是非常容易的,单片机两只老虎的案例网上资料很多不再列举,查找即可:
zhangrelay
2021/03/03
2380
单片机实验说明<三>数码管和定时器基本使用
编程实现8段数码管的动态扫描显示,要求4个数码管从左到右分别显示“1”、“2”、“3”、“4”、及“A”、“b”、“C”、“d”。
zhangrelay
2021/03/03
5480
单片机补充案例--速度反馈控制LED亮度
说明:使用中断测速,速度快LED亮,速度慢LED暗。 设备: 码盘 接口 使用外部中断和定时器中断,实现里程计测速,从S到dS(V)的过程。 结合高等数学和离散时间系
zhangrelay
2021/03/03
4300
单片机补充案例--LED数码管99秒倒计时
说明:使用数码管实现倒计时显示 设备: 倒计时 可使用按钮作适当控制,暂停,开始,计时复位等。 程序: #include<8052.h>
zhangrelay
2021/03/03
8300
单片机实验2提示
参考程序,未必准确: /***************************************************************************** * 头文件 * *****************************************************************************/ #includ
zhangrelay
2021/12/02
2600
单片机实验2提示
单片机实验说明<二>外部中断基本使用
自行设计实验线路并编制程序:要求在无外部中断时最右一位发光二极管点亮。请编程实现:当外部中断0请求中断时发光二极管左移;当外部中断1请求中断时发光二极管闪烁。
zhangrelay
2021/03/03
5990
单片机实验1提示
以下程序仅供参考未必准确,请依据要求,修改符合。 #include<8052.h> #define LSA P1_5 #define LSB P1_6 #define LSC P1_7 void EXint_Init(void); void Delayms(unsigned int); void Down2Up(int); void Up2Down(int); void EXINT0() __interrupt 0; void EXINT1() __interrupt 2
zhangrelay
2021/12/02
2560
单片机实验1提示
51单片机数码管动态显示
#include//该程序实现的时1,2,3,4,5,6依次变化 #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delayms(uint); void main()
Gorit
2021/12/09
4050
单片机入门:数码管秒表
采用8位数码管进行秒表设计。 仿真原理图: 程序设计: /* 数码管秒表设计 */ #include<reg52.h> unsigned char LedBuff[]={ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF }; unsigned char code LedChar[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e };//共阳 /* unsigned c
电子工程师成长日记
2022/07/21
6590
单片机入门:数码管秒表
单片机课堂思考题-2000秒倒计时?
99秒倒计时,改为2000(6666)秒倒计时。 #include<8052.h> #define LSC P1_7 //特殊功能寄存器的位定义, #define LSB P1_6 //3-8译码器的输入端, #define LSA P1_5 //控制三极管Q2~Q6的导通 unsigned char smgduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x0f8,0x80,
zhangrelay
2021/12/02
5190
单片机课堂思考题-2000秒倒计时?
单片机理论与实践融入机器人课程镜像
全功能免安装课程镜像制作一直是线上课程融入线下的抓手和核心。 目前正在紧张有序推进第4版镜像制作,前一版本镜像如下: 机器人实践课程镜像(https://blog.csdn.net/zhangrelay/article/details/103868465) 除了修正反馈bug,优化内容外,增加51系列全部课程内容。 主要涉及四款: mcu8051ide sdcc stcgal HML_FwLib_STC89 这些都在博客中详细介绍过,这里再简单说明一下: mcu8051ide 安装:sudo apt
zhangrelay
2021/03/03
2930
推荐阅读
相关推荐
单片机补充案例--颤抖的数码管
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档