以下是篮球计分器的c语言程序源代码:
#include #include #define uchar unsigned char #define uint unsigned int uchar secs = 0; uchar minutes = 1; uchar LED,num1,num2,num = 4; uchar flag1 = 1,flag2 = 0; uchar m_secs = 24; uchar key_value = 0; uchar table[13] = {1,2,3,4,5,6,7,8,9,0,1,2,3}; uchar code LedNum[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar scan_kay(void); void delay(uchar z); void INT0_Initial(void) { EX0 = 1; IT0 = 1; EA = 1; P1 = 0xF0; } void INT0_Interrupt(void) interrupt 0 { uchar temp; temp = scan_kay(); if(temp!=0x7f) { key_value = temp; } P1 = 0xF0; } void Time0_Initial(void) { TMOD = 0x01; TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; ET0 = 1; TR0 = 1; EA = 1; PT0 = 1; PX0 = 0; } volatile uchar cnt = 0; void Time0_Interrupt(void) interrupt 1 { TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; cnt ++; minutes=11; if(cnt==15) { cnt = 0; secs --; m_secs --; if(flag2==1) { LED = !LED; } if(flag2==0) { LED = 0; } } if(secs>60) { secs = 59; minutes --; } if(m_secs>24) { m_secs = 23; if(flag1==1) { flag2 = 1; } if(flag1==0) { flag2 = 0; } } if(minutes>60) { minutes = 11; m_secs = 24; num ++; } if(num==4) { num = 1; } } void HEXTOBCD(void) { table[0] = LedNum[num]; table[1] = LedNum[m_secs/10]; table[2] = LedNum[m_secs%10]; table[3] = LedNum[minutes/10]; table[4] = LedNum[minutes%10]; table[5] = LedNum[secs/10]; table[6] = LedNum[secs%10]; table[7] = LedNum[num1/100]; table[8] = LedNum[num1%100/10]; table[9] = LedNum[num1%10]; table[10] = LedNum[num2/100]; table[11] = LedNum[num2%100/10]; table[12] = LedNum[num2%10]; } void Display(uchar *str) { uchar i,temp = 0; for(i=0;i<13;i++) { P0 = 0x00; _nop_(); P2 = temp+i; P0 = str[i]; delay(2); } } uchar i,j; void delay(uchar z) { for(i=1;i } void main() { INT0_Initial(); Time0_Initial(); delay(10); LED = 0; while(1) { switch(key_value) { case 12: { num1 ++;key_value = 0; flag1 = 0; if(num1>255) { num1 = 0; } break; } case 13: { num1 --;key_value = 0; flag1 = 0; if(num1>255) { num1 = 255; } break; } case 14: { num2 ++;key_value = 0; flag1 = 0; if(num2>255) { num2 = 0; } break; } case 15: { num2 --;key_value = 0; flag1 = 0; if(num2>255) { num2 = 255; } break; } case 1: { TR0 = 1; key_value = 0; break; } case 2: { num1 = 0;num2 = 0; num = 4; secs = 0;minutes = 12; m_secs = 24; key_value = 0; TR0 = 1; break; } case 3: { TR0 = 0; key_value = 0; break; } default: { break; } } HEXTOBCD(); delay(5); Display(table); delay(10); } } uchar scan_key(void) { uchar i,key_value; P1 = 0xFF; for(i=0;i<4;i++) { P1 = ~(1< key_value = P1&0xF0; if(key_value!=0xF0) { delay(20); key_value = P1&0xF0; if(key_value!=0xF0) { key_value &= 0xF0; switch(key_value) { case 0x70: key_value = 15-(3-i)*4;break; case 0xb0: key_value = 14-(3-i)*4;break; case 0xd0: key_value = 13-(3-i)*4;break; case 0xe0: key_value = 12-(3-i)*4;break; default: key_value = 0x7f; } return key_value; } } P1 = 0xFF; } return 0x7f; } uchar scan_kay(void) { uchar key_va1,key_va2; key_va1 = scan_key(); if(key_va1==0x7f) { return 0x7f; } do { key_va2 = scan_key(); }while(key_va1==key_va2); return key_va1; }
上一篇:51单片机+74hc595芯片实现跑马灯
下一篇:基于51单片机函数信号发生器
推荐阅读
史海拾趣
Anadigm是一家曾经存在的半导体公司,专注于可编程模拟信号处理器(PASP)技术。以下是Anadigm公司发展的相关故事:
公司成立与初期发展:Anadigm公司成立于1997年,总部位于美国加利福尼亚州圣塔莫尼卡市。公司的创始人致力于开发一种新型的可编程模拟信号处理器(PASP),以应对传统模拟电路设计的局限性。通过引入数字技术,Anadigm旨在提供更灵活、高性能的模拟信号处理解决方案。
PASP技术的推出与市场应用:Anadigm公司于2000年推出了其首款可编程模拟信号处理器产品系列。这些器件具有灵活的可编程性和高度集成的特点,能够适应多种应用场景,包括电力管理、医疗设备、汽车电子和工业控制等领域。Anadigm的PASP技术受到了行业的关注,并在市场上取得了一定的成功。
技术创新与产品优化:Anadigm公司不断投入研发,致力于改进其PASP技术并推出更先进的产品。公司持续与客户合作,了解市场需求并进行技术创新,以满足不断变化的行业需求。Anadigm的产品不断优化,性能不断提升,赢得了客户的信赖和市场份额的扩大。
合并与收购:尽管Anadigm公司在PASP技术方面取得了一定的成就,但面临着激烈的市场竞争和资金压力。在公司运营一段时间后,Anadigm于2008年被美国半导体公司Exar Corporation收购。此次收购使得Anadigm成为Exar的全资子公司,继续在模拟信号处理领域发展。
最终终止业务:然而,随着时间的推移,Anadigm在市场上的地位逐渐下滑,未能在激烈的竞争中保持竞争优势。最终,Exar Corporation于2014年宣布终止Anadigm的业务,并关闭其产品线。这标志着Anadigm作为一个独立的实体在半导体行业的终结。
以上是Anadigm公司发展的一些主要故事,展示了该公司从创立到终止业务的发展历程。
在产品质量方面,启臣微始终坚持严格的标准和精细的工艺流程。公司建立了一套完善的质量管理体系,从原材料采购到产品出厂,每一个环节都经过严格把关。这种对品质的执着追求,让启臣微的产品在市场上赢得了良好的口碑,也为公司赢得了众多客户的信赖。
随着全球环保意识的不断提高,C-TECH Co., Ltd积极响应环保号召,将环保理念融入公司的发展之中。公司在2007年就通过了ISO 14001环境管理体系认证,并在生产过程中采用环保材料和工艺,减少废弃物排放和能源消耗。此外,公司还积极参与环保公益活动,推动行业绿色发展。通过践行环保理念,C-TECH Co., Ltd在电子行业树立了良好的企业形象。
为了进一步扩大市场份额,Honda Tsushin Kogyo可能实施了全球化战略。公司积极寻求国际合作机会,与全球范围内的电子产品制造商建立了稳定的合作关系。同时,公司还可能在海外设立生产基地或销售网点,以便更好地服务当地市场。通过全球化战略的实施,Honda Tsushin Kogyo不仅提升了品牌知名度,还增强了企业的国际竞争力。
为了进一步提升品牌影响力和市场竞争力,DFRobot积极寻求国际合作机会。他们与国际知名的开源硬件品牌建立了合作关系,共同推广开源硬件和机器人技术。同时,DFRobot还积极参加各类国际展览和论坛活动,展示公司的最新产品和技术成果。这些国际合作和交流活动不仅提升了DFRobot的品牌知名度,也促进了公司与国际同行的交流与合作。
品质是Analog Power公司的生命线。他们深知只有提供高质量的产品和服务,才能赢得客户的信任和忠诚。因此,公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司还注重客户反馈和需求,不断优化产品和服务,以满足客户的期望和需求。
详细介绍PIC单片机使用SPI方式与IC卡进行数据传输的原理和电路设计,以及使用USART方式与PC机进行串行异步通信的工作原理;介绍PIC单片机听SPI方式和USART方式的设置方法。… 查看全部问答∨ |
|
介绍 在分析应用技术被市场采纳比重的时候,处于人类科学前沿的医疗器械市场,总是显得保守和谨慎。当其他工业和消费类市场沉浸于无线连接、网络及英特网的潜在应用时,医疗领域仍继续采用传统的已经测试使用的技术。然而诸如人口老龄化、高涨的医 ...… 查看全部问答∨ |
平台:AU1250(MIPS) 系统:WINCE 5.0 开发基于AU1250+WINCE 5.0下面的ST16C554驱动,做过类似的项目的朋友加我: QQ:525074092 MSN: zhaozw1975@hotmail.com … 查看全部问答∨ |
请问各位: 1:笔记本硬盘和普通台式机硬盘在电平上有没有差别。分别是3.3V和5V吗,最近在做一个嵌入式系统,识别不到硬盘,可能是电平原因,板子的IDE接口是3.3V的。 2:不同厂商的硬盘支持的UDMA方式是不是略有差别? ...… 查看全部问答∨ |
大家几年前搞的东东,我现在才弄,而且还有很多不懂,真是惭愧。 我有几个问题想请教各位大虾。 1.采用Multi-Bin方式启动WinCE,Bootloader是否只能用eBoot。 2.若不是,其他的Bootloader势必要解决BinFS格式化的问题,请问哪位有BinFS文件系统 ...… 查看全部问答∨ |
问题在代码中加注释那部分 //设置name元素的内容并连接。 TiXmlText *NameContent = new TiXmlText(str1); 总感觉这个str1出了问题,请问有解吗? void CContactDlg::OnBnClickedCallOnoff() { static int onoff=SWITCH_ON; CStrin ...… 查看全部问答∨ |
|
我定义了一个uchar[1]数组,其中uchar[0]保存一个汉字unicode编码值的高8位,uchar[1]保存这个汉字unicode编码值的低8位, 请问如何把这两个字节合并出一个完整的汉字unicode编码值?… 查看全部问答∨ |