【普中开发板】基于51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+设计报告+讲解视频) |
您所在的位置:网站首页 › 篮球板安装图片大全大图 › 【普中开发板】基于51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+设计报告+讲解视频) |
基于普中开发板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单片机芯片。 以下为本设计资料展示图: 讲解视频:仿真讲解+代码讲解 开始仿真 打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。 以上仿真结果均符合设计要求。 使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。 主要代码 //延时子函数 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 |