【Proteus仿真】基于51单片机的八路抢答器
【Proteus仿真】基于51单片机的八路抢答器【Proteus仿真】基于51单片机的八路抢答器
Proteus仿真
主要功能和使用介绍
采用4位数码管设计。
下排按键一一对应八位选手。
上排三个按键,从走到右依次为:开始、暂停、复位。
操作流程:上电后数码管显示“—-”当主持人按下“开始”键后,倒计时60秒,开始计时,此时,八位选手就可以抢答,如有紧急情况需要停止的话,主持人按“暂停”键就可以,如果有选手抢答成功,数码管显示“1 25”,1表示是1号选手,25表示剩余还25秒,倒计时小于5秒时,蜂鸣器响,提示时间快要结束,当倒计时为0秒时,此题结束,表示没有任何选手抢答成功,主持人按“复位”键后从新开始。
可以设定倒计时时间,在上电后,数码管显示“—-”,此时按下1号选手对应的按键,进入倒计时时间设定状态,2号选手对应的按键为时间加,3号选手对应的按键为时间减,设定完成后再按1号选手键退出。
程序代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474 ...
【Proteus仿真】多路非阻塞延时流水灯演示
【Proteus仿真】多路非阻塞延时流水灯演示【Proteus仿真】多路非阻塞延时流水灯演示
🌻Proteus仿真演示
🌼功能说明
📜51单片机利用定时器轮询设置2路不同长度的延时时间,跑流水灯。
📓实现方法
📑利用定时器中断,创建一个以1毫秒为时基的定时器中断函数。在需要不同时间的定时长度时,就设置一个定时的标量,当使能这个被定义的标量后,定时器每隔1毫秒就进入中断服务函数里面查询并累加计数,当累计计数达到标量值时就将对应的标量标志位置1,然后只要在主循环中查询该标量标志位是否值1从而实现非阻塞定时的功能。
✅定时器中断服务函数
12345678910111213141516171819void time0\_isr() interrupt 1 using 0{ TR0 = 0 ; if(time_enable)//计数器使能 { cnt --; if(!cnt)time_flag = 1;//计数时间到 } if(time_enable2)//计数器使能 { cnt2 --; if(!cnt2)time_ ...
51单片机+ LCD1602+PCF8574转IIC接口+矩阵按键
51单片机+ LCD1602+PCF8574转IIC接口+矩阵按键【Proteus仿真】51单片机+ LCD1602+PCF8574转IIC接口+矩阵按键
🎬Proteus仿真
📜PCF8574地址:
📑程序说明
本例程使用了2片PCF8574,并没有共用I2C总线,虽然配置了不同的地址,但是为什么不共用I2C总线,主要是因为按键扫描这一路I2C,使用了INT0中断,如果共用I2C总线,经仿真测试发现,会影响到按键扫描这一路I2C,所以只能将两路I2C分开。
📝main主程序12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811 ...
【Proteus仿真】51单片机+16X16点阵显示
【Proteus仿真】51单片机+16X16点阵显示【Proteus仿真】51单片机+16X16点阵显示
📌相关篇《【Proteus仿真】8x8Led点阵数字循环显示》
📍《【Proteus仿真】8×8LED点阵屏仿电梯数字滚动显示》
🎈《【Proteus仿真】74HC595+74LS154驱动显示16X16点阵》
🌻单字符显示
🌼移动字符串显示
🍁取模软件(PCtoLCD2002)和取模方式
📖主程序代码
🎉可以根据需求,自行选择显示内容。启用对应的功能函数,具体显示内容可以根据现有的内容,自行取模替换。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111 ...
【Proteus仿真】51单片机+8255A IO扩展例程
【Proteus仿真】51单片机+8255A IO扩展例程【Proteus仿真】51单片机+8255A IO扩展例程
📍相关参考:51单片机8255A扩展IO口
🎬Proteus仿真演示:
📺仿真示例二演示:
📓8255A与51单片机连接
🔖8051单片机和8255A连接示意图:
🌿51单片机的P0口作为数据总线使用,与8255A的D7~D0数据信号线进行连接,当P00 - P07不作为8255A 的A、B、C端口地址使用时,可以不接上拉电阻或者74HC373锁存器。
🌿8255A的CS:片选信号输入引脚直接接GND。
🌿RD读信号输入引脚接51单片机P37.
🌿WR写信号输入引脚接51单片机P36
⛳8255A端口地址确认方法
🌿CS、A1、A0接单片机的地址总线,构成单片机访问8255A的16位地址.
🌿16位总线访间地址=片选地址(CS) +片内地址(A1、A0)
🔖CS引脚直接接GND的话,该位(BIT)配置不受影响,只需配置A1、A2这两位.
✨避开配置端口P0情况下,使用P2端口进行地址配置:
🌿地址配置一: ...
【Proteus仿真】51单片机+ADC0808模数转换数码管显示
【Proteus仿真】51单片机+ADC0808模数转换数码管显示【Proteus仿真】51单片机+ADC0808模数转换数码管显示
📺Proteus仿真演示:
📗ADC0808主要数据参数简介
8路输入通道,8位A/D转换器,即分辨率为8位:0 - 255。
转换时间为100μs(时钟为640KHz时),130μs(时钟为500KHz时)。
模拟输入电压范围0~+5V,不需零点和满刻度校准。
📓引脚功能简介
IN0~IN7:8路模拟量输入端。
OUT1 - OUT8:8位数字量输出端。
ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。
ALE:地址锁存允许信号,输入端,产生一个正脉冲以锁存地址。
START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC: A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入端,高电平有效。当A&#x ...
【Proteus仿真】51单片机+ADC0808直流电机调速
【Proteus仿真】51单片机+ADC0808直流电机调速【Proteus仿真】51单片机+ADC0808直流电机调速
📌相关篇《【Proteus仿真】51单片机+ADC0808模数转换数码管显示》
🎬Proteus仿真演示:
📑程序说明
🖍通过读取ADC0808数值,来调节对应的输出引脚高低电平时间。从而实现电机调速效果。这里将ADC0808数值进行了除2处理,减小调速等级,避免在仿真时,调节数值出现2个区域内不同转动的状态。
📝程序代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#include <REGX52.H>#include "intrins.h"sbit CLOCK = P2 ^ 4;sbit ST = P2 ^ 5;sbit EOC = P2 ^ 6;sbit OE = P2 ^ 7;sbit PWM = P3 ^ 7;unsigned int ADC;v ...
【Proteus仿真】51单片机+LCD1602+74HC164驱动显示
【Proteus仿真】51单片机+LCD1602+74HC164驱动显示 【Proteus仿真】51单片机+LCD1602+74HC164仅用2个IO驱动显示
🌼Proteus效果展示:
🛠也可以通过两个数据输入端(DSA和DSB)的逻辑与接一起再和和数据输出端Q5逻辑与实现
🌿74hc164时序图
📝main主程序代码
1234567891011121314151617#include "lcd1602.h"void main(){ LCD1602\_Init();//LCD1602初始化 LCD1602\_write\_str("Hello World"); LCD1602\_Write\_Data(0,0xc0); //切换到第二行显示 LCD1602\_write\_str("Perseverance51"); LCD1602\_delay\_ms(2000);// LCD\_Clear();//清屏函数 while(1) { }}
lcd1602. ...
【Proteus仿真】51单片机+LGM1264显示串口接收图片数据
【Proteus仿真】51单片机+LGM1264显示串口接收图片数据【Proteus仿真】51单片机+LGM1264显示串口接收图片数据
🎬仿真实验演示:
🌿Proteus8.12平台
🌿本实验代码支持SDCC编译器以及Keil。
🌿调试串口波特率:9600
🏳🌈配置条件
🔨需要安装虚拟串口工具,并创建2个虚拟端口:
🌿图片转字符码基于python模块实现,需要安装Python.
🔧所依赖相关的python插件:PyQt5、pyserial
🔖插件安装:
🌿通过Python运行SKDisplayConverter.pyw
🍁Keil工程架构
📍本工程模版来源于Github:https://github.com/stephenkingston/SSD1306-8051-pythonserial/tree/master
📚工程资源123链接: https://pan.baidu.com/s/1DTcEbwHljMnoCXZ\_kUyh9Q提取码: w7vh
【Proteus仿真】51单片机+PCA9685 16路舵机控制
【Proteus仿真】51单片机+PCA9685 16路舵机控制
📺Proteus仿真演示:
⛳I2C地址说明
🎉 将A0-A5全部接地,地址为: 0x80
📝程序源码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711 ...
