篮球计分器「篮球计分器汉字编码表」

体育正文 152 0

篮球计分器

篮球计分器汉字编码表

单片机课程设计 篮球比赛计分器

你好! 是c语言写代码吗?原理图确定了吗?程序什么时间要
单片机课程设计 篮球比赛计分器

求一份关于篮球计分器的51单片机C语言程序

这是一个数码管显示的篮球计分程序,你可以参考一下:#include"reg52.h"#define u8 unsigned char#define u16 unsigned intsbit UP_1    = P1^1;  //第一队加分键sbit DOWN_1  = P1^2;  //第一队减分键sbit UP_2    = P1^3;  //第二队加分键sbit DOWN_2  = P1^4;  //第二队减分键sbit Change  = P1^5;  //交换键sbit Begin   = P1^6;  //开始键sbit Pause  = P1^7;  //暂停键sbit Beef   = P2^4;  //蜂鸣器sbit duan = P2^3;  //段选sbit wei  = P2^2;  //位选u8 Grate_1=0;  //第一队计分u8 Grate_2=0;  //第二队计分u8 Grate_change=0;  //换场标志u8 Time = 99;  //总时间u16 Flag=0;  //计时次数u8 leddata[]={                 0x3F,  //"0"                0x06,  //"1"                0x5B,  //"2"                0x4F,  //"3"                0x66,  //"4"                0x6D,  //"5"                0x7D,  //"6"                0x07,  //"7"                0x7F,  //"8"                0x6F,  //"9"                };              void InitTimer1(void){    TMOD = 0x10; //定时器1设为模式1    TH1 = 0xFC;    TL1 = 0x18;     //1ms    EA = 1;         //开总中断    ET1 = 1;        //开定时器1中断//    TR1 = 1;      //}void delay(u8 d)    //延时{    u8 a,b,c;    for(c=d;c>0;c--)        for(b=17;b>0;b--)           for(a=16;a>0;a--);}void beef(u8 d)   //发声{    u8 a,b,c;    for(c=d;c>0;c--)        for(b=17;b>0;b--)           for(a=16;a>0;a--)           {Beef=~Beef;           }}void display(u8 grate_1,u8 grate_2,u8 time)  //显示{   u8 w1,w2,w3,w4,w7,w8;   w1=grate_1/10; //计算第一队分数十位   w2=grate_1%10; //计算第一队分数个位   w3=grate_2/10; //计算第二队分数十位   w4=grate_2%10; //计算第二队分数个位   w7=time/10; //计算时间十位   w8=time%10; //计算时间个位  P0=0xff; //消隐,该段显示第一队分数十位   wei=1;   P0=0xfe; //送位码   wei=0;   P0=0xff;   duan=1;   P0=leddata[w1]; //送段码   duan=0;   delay(5);   P0=0xff; //显示第一队分数个位   wei=1;   P0=0xfd;   wei=0;   P0=0xff;   duan=1;   P0=leddata[w2];   duan=0;   delay(5);   P0=0xff; //显示第二队分数十位   wei=1;   P0=0xf7;   wei=0;   P0=0xff;   duan=1;   P0=leddata[w3];   duan=0;   delay(5);       P0=0xff;  //显示第二队分数个位   wei=1;   P0=0xef;   wei=0;   P0=0xff;   duan=1;   P0=leddata[w4];   duan=0;   delay(5);      P0=0xff;   //显示时间十位   wei=1;   P0=0xbf;   wei=0;   P0=0xff;   duan=1;   P0=leddata[w7];   duan=0;   delay(5);      P0=0xff;   //显示时间个位   wei=1;   P0=0x7f;   wei=0;   P0=0xff;   duan=1;   P0=leddata[w8];   duan=0;   delay(5);}void main(){    InitTimer1();  //初始化定时器1    UP_1    = 1;  //以下初始化IO口    DOWN_1  = 1;    UP_2    = 1;    DOWN_2  = 1;    Change  = 1;    Begin   = 1;    while(1){        if(UP_1==0)  //如果第一队加分键按下        {            ET1 = 0;  //关闭定时器1中断            delay(5);  //稍加延时            while(UP_1==0);//等待按键抬起            Grate_1++;    //第一队分数加1            ET1 = 1;    //开启定时器1中断        }        if(DOWN_1==0)   //如果第一队减分键按下{            ET1 = 0;            delay(5);            while(DOWN_1==0);            Grate_1--;   //第一队分数减1            ET1 = 1;        }        if(UP_2==0)    //如果第二队加分键按下        {            ET1 = 0;            delay(5);            while(UP_2==0);            Grate_2++;    //第二队分数加1            ET1 = 1;        }        if(DOWN_2==0)    //如果第二队减分键按下        {            ET1 = 0;            delay(5);            while(DOWN_2==0);            Grate_2--;    //第二队分数减1            ET1 = 1;        }        if(Change==0)    //如果换场键按下        {            ET1 = 0;            delay(5);            while(Change==0);            Grate_change=Grate_1; //一下三行语句完成分数交换显示Grate_1=Grate_2;Grate_2=Grate_change;            ET1 = 1;        }        if(Begin==0)  //如果开始键按下        {            delay(5);            while(Begin==0);            TR1 = 1;        //开启定时器1        } if(Pause==0) { delay(5); while(Pause==0); TR1=0; }        if(Time<=0)    //如果时间计数到0        {            Time=99;    //恢复初始时间            TR1 = 0;    //关闭定时器1            beef(100);    //发声        }display(Grate_1,Grate_2,Time); //显示分数、时间    }}void Timer1Interrupt(void) interrupt 3   //定时器1中断函数{    TH1 = 0xFC;   //重赋初值    TL1 = 0x18;    Flag++;   //中断次数加1    if(Flag>=1000)//1000次也就是1秒到    {        Flag=0;        Time--;    //秒变量减1    }}
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。 C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
求一份关于篮球计分器的51单片机C语言程序

求用单片机写个篮球计分器的程序

与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、 全静态操作:0Hz~33Hz 、 三级加密程序存储器 、 32个可编程I/O口线 、三个16位定时器/计数器 八个中断源 、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。 功能特性描述At89s52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用)P1.6 MISO(在系统编程用)P1.7 SCK(在系统编程用)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚 第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。 FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
#include void main(void){int dd[6],dd1=0,dd2=0,i=0,j;int xianshi[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//数码管数据0~9while(1){if(P2_0) dd1=dd1+1;//这是1分,P2接6个按键else if(P2_1) dd1 = dd1 +2;else if(P2_2) dd1 = dd1 +3;else if(P2_3) dd2 = dd2 +1;else if(P2_4) dd2 = dd2 +2;else if(P2_5) dd2 = dd2 +3;i=0x01;dd[0]=dd2%10;//得到B队得分的个位数dd[1]=dd2%100;dd[2]=dd2/100;dd[3]=dd1%10;dd[4]=dd1%100;dd[5]=dd1/100;for(j=0;j<6;j++){P1=i<利用micro:bit编写一个篮球计分器
求用单片机写个篮球计分器的程序

篮球比赛计分器

篮球比赛计时计分器是为了解决篮球比赛时计分与计时准确的问题。此装置利用单片机AT89C51完成了计时和计分的功能。本文详细地介绍了系统硬件与软件的设计过程,采用该装置可根据实际情况进行比分修改和时间的准确显示,具有低功耗,可靠性,安全性以及低成本等特点
篮球比赛计分器

求单片机用汇编写个篮球计分器的程序

用C多好,汇编已经很长时间没用了,勉为其难吧 P1.0到1.5对应AB队的比分按键+1、+2、+3(按下时为0)。P0口接数码管(通过74S373),P2.0到P2.3通过4个反相器分别控制4个数码管(为1时点亮,你可以设0时点亮,就看你是共阳极还是共阴极,本例采用共阴极)ORG 0000HSTA MOV R0,#00HMOV R1,#00HMAIN: MOV P1,#0FFHMOV A,P1CJNE A,#0FEH,LP1INC R0ACALL DELAYAJMP MAINLP1: CJNE A,#0FD,LP2INC R0INC R0ACALL DELAYAJMP MAINLP2: CJNE A,#0FBH,LP3INC R0INC R0INC R0ACALL DELAYAJMP MAINLP3: CJNE A,#0F7H,LP4INC R1ACALL DELAYAJMP MAINLLP4: CJNE A,#0EFH,LP5INC R1INC R1ACALL DELAYAJMP MAINLP5: CJNE A,#0DFH,MAININC R1INC R1INC R1ACALL DELAYAJMP MAINDELAY: MOV R2,#10HDISPL: MOV A,R0ANL A,#0FHMOV DPTR,#TABMOV A,@A+DPTRMOV P2,#01HMOV P0,AMOV A,R0ANL A,#0FHSWAP AMOV DPTR,#TABMOV A,@A+DPTRMOV P2,#02HMOV P0,ADISPL2: MOV A,R1ANL A,#0FHMOV DPTR,#TABMOV A,@A+DPTRMOV P2,#04HMOV P0,AMOV A,R1ANL A,#0FHSWAP AMOV DPTR,#TABMOV A,@A+DPTRMOV P2,#08HMOV P0,ADJNZ R2,DISPLRET TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,6FH,77H,7CH,39H,5EH,79H,71H,76H,73H
求单片机用汇编写个篮球计分器的程序

欢迎 发表评论:

评论列表

暂时没有评论

暂无评论,快抢沙发吧~