网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月18日漏签0天
单片机吧 关注:211,634贴子:1,046,047
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 8回复贴,共1页
<<返回单片机吧
>0< 加载中...

来个大神帮我吧……

  • 只看楼主
  • 收藏

  • 回复
  • 柯柯苏柯柯
  • 列兵
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
设计一个基于AT89S52单片机的篮球比赛记分牌,用12864液晶屏显示信息。
课题要求:
1、启动时12864液晶屏第一行显示的内容是:比赛双方的队名。
第二行显示的内容是:比分为000:000。
第三行显示的内容是:本节剩余时间、进攻24秒倒计时、第几节比赛。
第四行显示的内容是:设计者的姓名、班级和学号。
2、设置如下按功能键,实现相应控制功能
(1)启动比赛开始,24秒倒计时开始计时;(2)比赛暂停,计时暂停;
(3)重置24秒 (4)重置14秒 (5)交换场地 (6)甲队加1分
(7)乙队加1分 (8)甲队减1分 (9)乙队减1分
3、进攻24秒倒计时到0时,蜂鸣器报警三声。
要求做这个题目……做了一点框架出来……


  • 柯柯苏柯柯
  • 列兵
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <reg51.h>
#include <intrins.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
sbit k1=P0^0;//一队加一
sbit k2=P0^1;//一队减一
sbit k3=P0^2;//二队加一
sbit k4=P0^3;//二队减一
sbit k5=P0^4;//反转
sbit k6=P0^5;//24s重置
sbit k7=P0^6;//14s重置
sbit k8=P0^7;//15分暂停——暂停所有
#define LCD_data P2 //数据口
sbit RS = P1^0; //寄存器选择输入
sbit RW = P1^1; //液晶读/写控制
sbit EN = P1^2; //液晶使能控制
sbit PSB = P1^3; //串/并方式控制
unsigned char i;
uchar code dis1[]={128,31,81,209,17,31,145,81,81,31,17,17,17,31,17,0,33,17,17,71,41,41,11,19,21,21,105,33,33,33,33,0,96,64,64,68,78,112,64,64,64,64,66,66,67,62,0,0,6,4,4,4,124,4,4,4,4,12,116,68,4,4,4,0,64,192,64,0,0,0,64,192,64,0,128,64,64,64,64,192,0,0,3,12,48,12,3,0,0,0,9,50,34,34,36,36,32,254,32,255,144,145,17,79,64,252,132,72,48,204,3,0,0,35,16,23,0,8,9,22,16,96,33,38,32,32,7,0,192,130,255,128,130,255,18,34,250,130,130,242,130,142,132,0,0,0,127,0,0,63,36,34,47,32,32,39,32,32,32,0};
uchar code dis2[]={32,254,32,255,144,145,17,79,64,252,132,72,48,204,3,0,0,35,16,23,0,8,9,22,16,96,33,38,32,32,7,0,192,130,255,128,130,255,18,34,250,130,130,242,130,142,132,0,0,0,127,0,0,63,36,34,47,32,32,39,32,32,32,0};
uchar code dis3[]={32,254,32,255,144,145,17,79,64,252,132,72,48,204,3,0,0,35,16,23,0,8,9,22,16,96,33,38,32,32,7,0,192,130,255,128,130,255,18,34,250,130,130,242,130,142,132,0,0,0,127,0,0,63,36,34,47,32,32,39,32,32,32,0};
uchar code dis4[]={36,254,32,0,16,248,16,16,20,18,18,16,32,192,0,0,4,127,4,2,2,63,2,18,18,34,4,8,17,96,0,0,4,254,8,8,232,168,168,232,168,8,8,56,16,0,0,0,12,9,8,62,8,28,26,42,40,8,8,8,8,0,0,0,128,254,4,8,240,128,132,254,128,128,128,128,0,0,0,0,0,31,48,32,7,0,0,63,0,0,0,3,1,0,0,00,48,8,4,132,72,48,0,0,240,8,4,4,8,240,0,0,28,18,17,16,24,4,0,0,7,8,16,16,8,7,0,0,0,8,8,252,0,0,0,0,0,8,8,252,0,0,0,0,0,16,16,31,16,16,0,0,0,16,16,31,16,16,0,0,240,8,4,4,8,240,0,0,48,8,4,132,72,48,0,0,7,8,16,16,8,7,0,0,28,18,17,16,24,4,0,0,240,136,68,68,136,48,0,0,0,8,8,252,0,0,0,0,7,8,16,16,8,7,0,0,0,16,16,31,16,16,0};
void delayms(uint xms)
{
uchar i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void key1(void)//P0.0口控制加一
{
if(P0^0==0){
delayms(10);
if(P0^0==0){
i++;
if(i==1000){
i=0;
}
do{
do{
display();
}
while(P0^0==0);}
while(P0^0==0);}
}
}
void key2(void)//P0.1口减一
{
if(P0^1==0){
delayms(10);
if(P0^1==0){
if(i==0){
i==1000;
} i--;
do{
do{
display();
}
while(P0^1==0);}
while(P0^1==0);}
}
}
void key3(void)//P0.2口加一
{
if(P0^2==0){
delayms(10);
if(P0^2==0){
i++;
if(i==1000){
i=0;
}
do{
do{
display();
}
while(P0^2==0);}
while(P0^2==0);}
}
}
void key4(void)//P0.3口减一
{
if(P0^3==0){
delayms(10);
if(P0^3==0){
if(i==0){
i==1000;
} i--;
do{
do{
display();
}
while(P0^3==0);}
while(P0^3==0);}
}
}
void write_com(uchar com)//端口
{
RS=0;
RW=0;
EN=0;
P2=com;
delayms(5);
EN=1;
delayms(5);
EN=0;
}
void write_data(uchar date)//些数据
{
RS=1;
RW=0;
EN=0;
P2=date;
delayms(5);
EN=1;
delayms(5);
EN=0;
}
void init()//LCD初始化
{
PSB=1;
write_com(0x34); //扩充指令操作
delayms(5);
write_com(0x30);
delayms(5);
write_com(0x0c);
delayms(5);
write_com(0x01);
delayms(5);
}
void lcd_pos(uchar X,uchar Y) //显示位置
{
uchar pos;
if (X==1)
{X=0x80;}
else if (X==2)
{X=0x90;}
else if (X==3)
{X=0x88;}
else if (X==4)
{X=0x98;}
pos = X+Y ;
write_com(pos); //显示地址
}
void main()
{
uchar i,n;
n=1;
delayms(100); //上电,等待稳定
init(); //初始化LCD
while(1)
{
lcd_pos(1,0); //设置显示位置为第一行
for(i=0;i<16;i++)
{
write_data(dis1[i]);
delayms(30);
}
lcd_pos(2,0); //设置显示位置为第二行
for(i=0;i<16;i++)
{
write_data(dis2[i]);
delayms(30);
}
lcd_pos(3,0); //设置显示位置为第三行
for(i=0;i<16;i++)
{
write_data(dis3[i]);
delayms(30);
}
lcd_pos(4,0); //设置显示位置为第三行
for(i=0;i<16;i++)
{
write_data(dis4[i]);
delayms(30);
}
}
}


重庆蒙以教育科技有限公司
网课录制软件-蒙以录课,多路视频信号同时录制,录完后可以任意编辑专业的录制软件,可录制网络课程,会议,个人展示等多种视频。
2025-05-18 09:09广告
立即查看
2025-05-18 09:09:32
广告
  • 柯柯苏柯柯
  • 列兵
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没人帮我看看吗、、


  • 贴吧用户_0VCKaMW
  • 中尉
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
怎么给你看,有问题可以找我的。


  • 1583382943QQ
  • 大尉
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有问题可以找我的,可以帮你。


  • pp她不爱我
  • 新兵
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你做出来了没 我也要做这个 一模一样的 能告诉我怎么做吗


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 8回复贴,共1页
<<返回单片机吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示