单片机——C51实验含Proteus仿真(锁存器,流水灯,继电器,数码管静态显示,蜂鸣器)

  • 文章仅为本人学习记录,如有引用部分会另加说明引用出处

 代码部分

#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char

sbit LED_LE=P2^0;	//LED锁存器控制端
sbit FM=P2^1;		//蜂鸣器控制端
sbit RL=P2^2;		//继电器控制端
sbit Duan=P2^3;		//数码管段选锁存端
sbit Wei=P2^4;		//数码管位选锁存端
uchar temp;			//流水灯初值
sbit D1=P1^0;		//灯组
uchar code s[]={	//数码管段选0~9(高电平有效)
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code ss[]={	//数码管段选0~9带小数点(高电平有效)
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};

//延时函数
/*void delay(uint z)
{
	uint x,y;
	for(x=100;x>0;x--)
		for(y=z;y>0;y--);
}*/

void main()
{
	//temp=0xfe;//流水灯初值
	//P1=temp;//流水灯初值
	while(1)
	{
        //继电器部分
		//LED_LE=1;//开LED锁存
		//RL=0;//三极管控制继电器开
		//D1=0;
		//while(1);

        //流水灯部分
		//temp=_crol_(temp,1);//循环左移函数
		//delay(600);//延时600毫秒
		//P1=temp;//循环赋值,流水灯

        //数码管静态显示部分
		Wei=1;//开启位选
		P0=0xfe;//文章中进行仿真的数码管位低电平有效
		Wei=0;//锁存位选

		Duan=1;//开启段选
		P0=s[1];
		Duan=0;//锁存段选
		while(1);
	}
	
}

仿真部分 

1、单片机基础电路连接        

        百度百科:准双向口是指P1、2、3有固定的内部上拉电阻,当用做输入时被拉高,当外部拉低时(低电平)会拉低电流,而P0则是真双向口,因为作为输入时它是悬浮的。

        所以需要用排阻(图中RP1即排阻)给P0口接外部上拉电阻

2、灯组部分   

        加入了锁存器对灯组进行控制,锁存器LE拉高时,可以通过单片机的P1口控制灯组的亮灭,当锁存器LE拉低时单片机的P1口的值对灯组不造成影响

  

3、继电器加蜂鸣器部分

        蜂鸣器,继电器都通过从单片机引脚输出高低电平控制三极管开关从而控制蜂鸣器,继电器的工作

        继电器本身即可作为开关。继电器上并联的二极管起保护作用,防止继电器断电释放时,由于自感产生高电压损坏晶体三极管(三极管用于放大单片机输出的电流以驱动继电器)

        在仿真时注意将继电器上端的导通电压改为12V

        继电器工作原理转载至:行走的枸杞子——继电器的原理

4、锁存器数码管部分

        数码管采用两个锁存器(锁存器的用法参照2、灯组部分  )分别控制段选和位选,选择数码管时注意共阴,共阳与代码的匹配

PS:更改proteus快捷键

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例 基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例基于51单片机开发的小程序,学习资料,用于学习51单片机的嵌入式开发,应用案例
抢答器是一种常见的电子设备,主要用于比赛或课堂上,用于快速确定参与者或学生谁最先回答问题或按下按钮。基于单片机的设计是一种常见的抢答器设计方法。 基于单片机的抢答器设计可以使用实验箱或Proteus仿真软件进行开发和测试。 首先,设计需求包括:按钮开关、显示屏、倒计时功能和正确错误指示灯。 接下来,根据设计需求,我们需要选取适当的单片机,例如常见的51单片机。然后,将单片机与按钮开关、显示屏、指示灯等外部元件进行连接。 通过编程,可以实现以下功能: 1. 开关检测:使用单片机的IO口来检测按钮开关是否按下。当按钮按下时,发送信号给单片机,触发抢答动作。 2. 倒计时功能:使用定时器功能,实现倒计时功能。可以设置倒计时的时间,并在倒计时结束后触发相应的动作,例如熄灭指示灯或开启下一轮抢答。 3. 显示屏:连接显示屏到单片机的IO口,实现显示倒计时时间或其他相关信息。可以利用数码管或LCD显示屏作为显示装置。 4. 正确错误指示灯:设计两个指示灯,一个代表正确答案,一个代表错误答案。根据参与者的回答情况,触发相应的指示灯亮起。 在Proteus仿真软件中,可以进行电路图的设计和模拟,通过添加相应的元件和连接线,模拟实验箱中的硬件连接。然后,编写单片机的程序,并在仿真软件中进行调试和测试。 通过基于单片机的设计,可以实现一个功能完善的抢答器。这种设计不仅能提高交互效果,还可以增加比赛或课堂的趣味性和互动性,提高学生参与度和竞技性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值