祁阳县住房和城乡规划建设局网站,建设网站需要做什么,网站做二维码,苏州企业做网站基于普中开发板51单片机的篮球计分器液晶LCD1602显示 1.主要功能#xff1a;讲解视频#xff1a;2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单下载链接资料下载链接#xff08;可点击#xff09;#xff1a; 基于51单片机的篮球计分器液晶LCD1602显示 ( pr… 基于普中开发板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单片机芯片。
以下为本设计资料展示图
讲解视频
仿真讲解代码讲解 2.仿真
开始仿真
打开仿真工程双击proteus中的单片机选择hex文件路径然后开始仿真。
以上仿真结果均符合设计要求。 3. 程序代码
使用keil4或者keil5编译代码有注释可以结合报告理解代码含义。 主要代码 //延时子函数
void delay(uint z)
{uint x;uchar y;for(xz;x0;x--)for(y110;y0;y--);
}
//LCD1602液晶写指令子函数
void write_com(uchar com)
{RS0;RW0;//写入P0com;delay(5);E1;delay(5);E0;
}
//LCD1602液晶写数据子函数
void write_date(uchar date)
{RS1;RW0;//写入P0date;delay(5);E1;delay(5);E0;
}
LCD1602液晶设置当前行
//void write_sfm(uchar hang,uchar add)
//{
// if(hang1) //设置当前行
// write_com(0x80add);
// else
// write_com(0x800x40add);
//}/********************************************************************
* 名称 : 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(hang1) write_com(0x80add);elsewrite_com(0x800x40add);while(1){if(*p \0) break;write_date(*p);p;}
}//LCD1602液晶初始化子函数
void LCD1602_init()
{uchar i;a_team0; //H.T分数初始化b_team0; //R.T分数初始化time0;TMOD0x10; //定时器1初始化 TL10x00;TH10x4c; //设置定时器初值 定时器50ms一次中断EA1; //开总中断ET11; //开定时器1TR10; //定时器1不工作E0; miao0;fen12;//默认单节比赛时间单位分钟num1;sec_2424;change_flag 0;write_com(0x38); //LCD设置初始化write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80); //LCD显示初始化for(i0;i16;i){write_date(table1[i]);}write_com(0x800x40);for(i0;i16;i){write_date(table2[i]);}
}
//分数更新子函数
void point_lcd(uchar add,uchar dat)
{write_com(0x80); //LCD显示初始化if(change_flag){write_string(1,2,B);write_string(1,8,A);}else{write_string(1,2,A);write_string(1,8,B);}if(change_flag){if(add 0x04){add 0x0A;}else if(add 0x0A){add 0x04;}}write_com(0x80add);write_date(0x30dat/100);write_date(0x30(dat%100)/10);write_date(0x30dat%10);write_com(0x80add);
}
//按键扫描子函数
void keyscan()
{uchar i0;iMatrix_buttons_scan();//按键检测if(i1) //A分数加一{if(a_team1000)a_team;point_lcd(0x04,a_team); }else if(i2) //A分数加二{if(a_team1000)a_teama_team2;point_lcd(0x04,a_team);}else if(i3) //A分数加三{if(a_team1000)a_teama_team3;point_lcd(0x04,a_team);}else if(i4) //A分数减一{if(a_team1)a_teama_team-1;point_lcd(0x04,a_team);}else if(i5) //B分数加一{if(b_team1000)b_team;point_lcd(0x0A,b_team);}else if(i6) //B分数加二{if(b_team1000)b_teamb_team2;point_lcd(0x0A,b_team);}else if(i7) //B分数加三{if(b_team1000)b_teamb_team3;point_lcd(0x0A,b_team);}else if(i8) //B分数减一{if(b_team1)b_teamb_team-1;point_lcd(0x0A,b_team);}else if(i9) //交换{if(change_flag){change_flag 0;}else{change_flag 1;}point_lcd(0x04,a_team);point_lcd(0x0A,b_team); }else if(i10) //{TR1~TR1; //定时器1工作/暂停if(TR11) //当倒计时工作时S1按下定时器立即停止工作{PT10;//取消定时器1优先级最高}else //倒计时不工作时S1按下倒计时立即工作{PT11;//定时器1优先级最高} }else if(i11) //{sec_2424;write_com(0x800x4e); //24s倒计时显示write_date(0x30sec_24/10); //更新倒计时时间write_date(0x30sec_24%10);write_com(0x800x4e);}}
//比赛倒计时/24s倒计时
void counter_down()
{if(time20) //每1s倒计时做减一操作{miao--;sec_24--;write_com(0x800x4e); //24s倒计时显示write_date(0x30sec_24/10);write_date(0x30sec_24%10);write_com(0x800x4e);if(sec_240) //24s结束{sec_2424;TR10; //定时器1暂停}if((miao0)(fen0)) //检测一节比赛是否结束{TR10; //定时器1暂停write_com(0x800x44);write_date(0x30);num;sec_2424; //24s计时复位write_com(0x800x4e); //24s倒计时显示write_date(0x30sec_24/10);write_date(0x30sec_24%10);write_com(0x800x4e);write_com(0x800x4b); //更新SEC-?write_date(0x30num);write_com(0x800x4b);miao0; //倒计时复位fen12;}if(miao-1){miao59;fen--;}write_com(0x800x40); //更新倒计时显示write_date(0x30fen/10);write_date(0x30fen%10);write_com(0x800x43);write_date(0x30miao/10);write_date(0x30miao%10);write_com(0x800x43);time0;}
}
//主函数
void main()
{LCD1602_init();while(1){keyscan(); //分数按键检测}
}4. 设计报告
9978字设计报告内容包括摘要硬件设计、软件设计、软硬件框图、调试、结论等 5. 设计资料内容清单下载链接
资料设计资料包括仿真程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读
1、仿真图
2、程序源码注释
3、功能要求
4、开题报告
5、设计报告
6、软硬件流程框图
7、烧录工具
8、讲解视频
Altium Designer 安装破解
filename.bat
KEILproteus 单片机仿真设计教程
KEIL安装破解
Proteus元器件查找
Proteus安装
Proteus简易使用教程
单片机学习资料
普中-2普中-3普中-4开发板原理图.pdf
相关数据手册
答辩技巧
设计报告常用描述
鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url
资料下载链接可点击