基于51单片机的串口乒乓球小游戏

2024-06-09 12:52

本文主要是介绍基于51单片机的串口乒乓球小游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于51单片机的乒乓球小游戏

(仿真+程序)

功能介绍

具体功能:

1.用两块单片机串口进行通信;

2.一排LED模拟乒乓球运动(哪里亮表示运动到哪);

3.当最左边LED亮,表示球运动到左边,需要左方击球;

4.当最右边LED亮,表示球运动到右边,需要右方击球;

5.复位按键模拟发球;

​演示视频:

基于51单片机的乒乓球小游戏 

添加图片注释,不超过 140 字(可选)

主机程序

#include<reg51.h>	 
#define uchar unsigned char
#define uint unsigned int
/***公众号:木子单片机****/
uchar led_data=0x80;
uchar flag=0;
uchar send_data=0x80;
uchar send_flag=1;//************************************
//串口初始化	
//************************************void Init_Uart()
{SCON = 0X50;	//设置串口工作在方式1,允许接收TMOD |= 0x20;	//定时器工作在方式2TH1   = 0xfd;	//9600波特率TL1   = 0xfd;EA    = 1;  //总中断TR1   = 1;REN=1;//允许串口接收ES    = 1;  //允许中断
}
//定时器初始化
void Init_Time()
{//初始化定时器10msTMOD|=0X01;TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=1;
}//串口输出数据
void TX_data(uchar num)
{SBUF = num;while(!TI);TI=0;}void Ex0_Init()  //外部中断
{EX0=1;//打开外部中断IT0=1;//下降沿中断
}//主函数
void main(void)
{Ex0_Init();Init_Uart(); //串口初始化Init_Time();	//定时器初始化while(1){		P0=~led_data;if(send_flag){TX_data(send_data);send_flag=0;}}
}
void EX0_INTER() interrupt 0    //外部中断1
{if(led_data==0x01)//刚好按下此时反向{flag=1;send_flag=1; send_data=0xff; }else{flag=2;led_data=0;send_flag=1; send_data=0; }
}
//串口中断子函数
void Uart_INT(void) interrupt 4     
{uchar temp=0;if(RI==1)	//如果接收到了数据  { RI=0; temp=SBUF;//接收数据if(temp==0xff){flag=0;led_data=0x80;}else{led_data=temp;}}
}//定时中断子程序
void time0(void) interrupt 1 using 1  
{static uchar temp_time=0;TH0=(65536-10000)/256;//10MSTL0=(65536-10000)%256;if(++temp_time>=30)//1s{temp_time=0;if(flag==0) //左移{if(led_data==0x01)//移动到最左边也没有按键那就失败{led_data=0;flag=2;send_flag=1; send_data=0; return;}led_data=led_data>>1;;send_flag=1; send_data=led_data;}}}

硬件设计

使用元器件:

单片机:AT89C51;

(注意:单片机是通用的,无论51还是52、无论stc还是at都一样,引脚功能都一样。程序也是一样的。)

添加图片注释,不超过 140 字(可选)

设计资料

01仿真图

本设计使用proteus7.8版本设计,与其他版本不兼容!具体如图!

添加图片注释,不超过 140 字(可选)

02程序

本设计使用软件keil5版本编程设计!具体如图!

 

03设计资料

        资料获取请关注同名公众号,全部资料包括仿真源文件 、程序(含注释)等。具体内容如下,全网最全! !

 

可以关注下方公众号!

点赞分享一起学习成长。

这篇关于基于51单片机的串口乒乓球小游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045229

相关文章

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

代码训练营 Day26 | 47.排序II | 51. N-皇后 |

47.排序II 1.跟46题一样只不过加一个树层去重 class Solution(object):def backtracking(self,nums,path,result,used):# recursion stopif len(path) == len(nums):# collect our setresult.append(path[:])return for i in range(

基于stm32的河流检测系统-单片机毕业设计

文章目录 前言资料获取设计介绍功能介绍具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机设计精品

安卓开发板_联发科MTK开发评估套件串口调试

串口调试 如果正在进行lk(little kernel ) 或内核开发,USB 串口适配器( USB 转串口 TTL 适配器的简称)对于检查系统启动日志非常有用,特别是在没有图形桌面显示的情况下。 1.选购适配器 常用的许多 USB 转串口的适配器,按芯片来分,有以下几种: CH340PL2303CP2104FT232 一般来说,采用 CH340 芯片的适配器,性能比较稳定,价

VB和51单片机串口通信讲解(只针对VB部分)

标记:该篇文章全部搬自如下网址:http://www.crystalradio.cn/thread-321839-1-1.html,谢谢啦            里面关于中文接收的部分,大家可以好好学习下,题主也在研究中................... Commport;设置或返回串口号。 SettingS:以字符串的形式设置或返回串口通信参数。 Portopen:设置或返回串口

MCU5.51单片机的最小系统

1.最小系统的组成部分 晶振电路(时钟),复位电路,电源电路(控制电压,保持稳定),下载电路(外加的,用于烧录程序) 烧录: 通过下载电路,把程序下载到单片机中用于运行 2.晶振电路 电路图: 是晶振 是电容 为了防止晶振起振时产生影响,因此加电容 3.复位电路 电路图: 按按钮RSTK1(保持一段时间的高电平)即可实现STC芯片的复位 4.电源电路 电路图:

单片机XTAL引脚引出的晶振分析

51单片机的18,19脚XTAL1,XTAL2用来提供外部振荡源给片内的时钟电路。 XTAL1和XTAL2引脚,该单片机可以使用外部时钟也可以使用内部时钟。 当使用内部时钟时,此二引线端用于外接石英晶体和微调电容; 当使用外部时钟时,用于接外部时钟信号,NMOS接XTAL2,CMOS接XTAL1。 原理: XTAL1和XTAL2分别是一个反相器的输入和输出。NMOS的反相器是

java RXTXcomm 串口通信

RXTXcomm:提供了 Windows x64, x86, ia64 and Linux x86, x86_64等操作系统支持。 下载地址 http://fizzed.com/oss/rxtx-for-java 使用RXTXcomm首先要安排JRE环境,开发IED可能eclipse. 1.下载系统相应的RXTXcomm。 2.将rxtxSerial.dll、rxtxParallel.dl