【普中开发板】基于51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+设计报告+讲解视频)

您所在的位置:网站首页 篮球板安装图片大全大图 【普中开发板】基于51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+设计报告+讲解视频)

【普中开发板】基于51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+设计报告+讲解视频)

2024-07-09 09:10| 来源: 网络整理| 查看: 265

基于普中开发板51单片机的篮球计分器液晶LCD1602显示 1.主要功能:讲解视频:2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单&&下载链接资料下载链接(可点击): 基于51单片机的篮球计分器液晶LCD1602显示

( proteus仿真+程序+设计报告+实物仿真讲解视频)

仿真图proteus8.16(有低版本)

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:P09

1.主要功能:

基于51单片机AT89C51/52(与AT89S51/52、AT89C51/52、STC89C51/52等51内核单片机通用)

基于51单片机的篮球计分器液晶LCD1602显示

设计内容:

1、设计LCD显示篮球比赛计时计分牌。

2、通过加分按钮可以给A队或B队加分。

3、设计对调功能,A队和B队分数互换,意味着中场交换场地。

4、显示比赛倒计时功能。

5、创新内容:

如显示第几小节。

可以通过按键完成+1、+2、+3、-1操作。

篮球比赛24秒进攻倒计时功能

(目前仅完全适配普中开发板A234,其他普中开发板型号可能需要做代码修改或接线)

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

以下为本设计资料展示图:

讲解视频:

仿真讲解+代码讲解

img

2.仿真

开始仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

以上仿真结果均符合设计要求。

img

3. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

img

主要代码

//延时子函数 void delay(uint z) { uint x; uchar y; for(x=z;x>0;x--) for(y=110;y>0;y--); } //LCD1602液晶写指令子函数 void write_com(uchar com) { RS=0; RW=0;//写入 P0=com; delay(5); E=1; delay(5); E=0; } //LCD1602液晶写数据子函数 void write_date(uchar date) { RS=1; RW=0;//写入 P0=date; delay(5); E=1; delay(5); E=0; } LCD1602液晶设置当前行 //void write_sfm(uchar hang,uchar add) //{ // if(hang==1) //设置当前行 // write_com(0x80+add); // else // write_com(0x80+0x40+add); //} /******************************************************************** * 名称 : write_string(uchar hang,uchar add,uchar *p) * 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下 write_string(1,5,"ab cd ef;") * 输入 : 行,列,需要输入1602的数据 * 输出 : 无 ***********************************************************************/ void write_string(uchar hang,uchar add,uchar *p) { if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p == '\0') break; write_date(*p); p++; } } //LCD1602液晶初始化子函数 void LCD1602_init() { uchar i; a_team=0; //H.T分数初始化 b_team=0; //R.T分数初始化 time=0; TMOD=0x10; //定时器1初始化 TL1=0x00; TH1=0x4c; //设置定时器初值 定时器50ms一次中断 EA=1; //开总中断 ET1=1; //开定时器1 TR1=0; //定时器1不工作 E=0; miao=0; fen=12;//默认单节比赛时间(单位分钟) num=1; sec_24=24; change_flag = 0; write_com(0x38); //LCD设置初始化 write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); //LCD显示初始化 for(i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3