



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM大作业 某象棋快棋赛规则如下:红、黑双方对奕时间累计均为十分钟,超时判负;甲乙对奕方的计时器均用3位数码管显示,预定的初值均为十分钟,采用倒计时方式,通过按扭启动;由本方控制对方,比如甲方走完一步棋后必须按一次甲方的按键,该按键启动乙方倒计时。同理,乙方走完一步棋后必须按一次乙方的按键,该按键启动甲方倒计时。超时能发出报警声音,比赛结束。 利用你所学的知识,用LPC2000微控制器设计一个上述比赛用的计时器,尽可能详细给出软硬件设计、实现方案。一、 软件流程图二、 程序#define uchar unsigned char#define uint unsigned int#define Fpclk 12000000 /12MHz晶振#define BEEPCON (112)/0x00001000 /定义P0.12脚控制B1,低电平蜂鸣/*甲方数码管*/#define wel1 (17) /0x00000080,定义p0.7脚控制数码管位选1,高电平选中#define wel2 (18) /0x00000100,定义p0.8脚控制数码管位选2#define wel3 (19) /0x00000200,定义p0.9脚控制数码管位选3/*乙方数码管*/#define wel4 (123)/0x01000000,定义p0.23脚控制数码管位选1,高电平选中#define wel5 (124) /0x02000000,定义p0.24脚控制数码管位选2#define wel6 (125) /0x04000000,定义p0.25脚控制数码管位选3int count1 = 600,count2=600;int key1,key2;/*函数名称:定时器初始化函数*/*函数功能:定时器时间为十分钟,为倒计时计数*/void time0_init (void)/定时器0初始化,定时时间1sT0TC = 0; /设置定时器0T0PR = 99; /时钟100分频T0MCR = 0x03; /设置T0MR0匹配后复位T0TC,并产生中断T0MR0 = Fplck / 100; /设置匹配值T0TCR = 0x01; /启动定时器/*设置向量中断控制器*/VICIntSelect = VICIntSelect & (14); /IRQVICVectCntl0 = 0x20 | 4; /向量IRQ通道0VICVectAddr0 = (uint32) Timer0_ISR; /中断服务地址Timer0_ISRVICIntEable = (14); /使能中断/*函数名称:中断服务函数*/*函数功能:控制甲乙两方时间的暂停和继续*/void _irq Timer0_ISR(void) if(!key2)/乙按键后甲的时间减少 count1 -;display(count1); if(!key1)/甲按键后乙的时间减少 count2 -;display(count2);T0IR = 0x01; / 清除中断标志VICVectAddr = 0x00; / 通知VIC中断处理结束/*函数名称:甲方数码管显示函数*/*函数功能:显示甲方计时*/void display1(int dis)/甲方显示数码管 uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/0-9,共阴极 int ge,shi,bai; /PINSEL0 &= 0xfff00000;/设置引脚连接模块,将p0.0-9设置为GPIO功能/IO0DIR |= 0x00000177;/将p0.0-9设置为输出状态bai = dis / 100;shi = (dis%100)/10;ge = dis %10;IO0SET = tablebai;/高电平亮,消隐IO0SET = wel1;/高电平选中delay_ns(100);IO0CLR = wel1;/关位选IO0SET = tableshi;IO0SET = wel2;delay_ns(100);IO0CLR = wel2;/关位选IO0SET = tablege; IO0SET = wel3;delay_ns(100);IO0CLR = wel3;/关位选/*函数名称:乙方数码管显示函数*/*函数功能:显示乙方计时*/void display2(int dis)/乙方显示数码管 uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/0-9,共阴极 int ge,shi,bai; /PINSEL0 &= 0xfff00000;/设置引脚连接模块,将p0.0-9设置为GPIO功能/IO0DIR |= 0x007f0000;/将p0.16-0.22设置为输出状态bai = dis / 100;shi = (dis%100)/10;ge = dis %10;IO0SET = tablebai;/高电平亮IO0SET = wel4;/高电平选中delay_ns(100);IO0CLR = wel4;/关位选IO0SET = tableshi;IO0SET = wel5;delay_ns(100);IO0CLR = wel5;/关位选IO0SET = tablege; IO0SET = wel6;delay_ns(100);IO0CLR = wel6;/关位选/*函数名称:甲方按键函数*/*函数功能:甲方有键按下时,变为低电平,由GPIO读入*/int key_press1(int key) uint32 PinStat; /PINSEL0 &= 0xff3fffff;/设置引脚连接模块,将p0.11设置为GPIO功能/IO0DIR &= 0xffff1fff;/将p0.11设置为输入状态PinStat = IO0PIN & (111);/通过IP0PIN寄存器获取P0.11当前电平状态 return PinStat;/*函数名称:乙方按键函数*/*函数功能:乙方有键按下时,变为低电平,由GPIO读入*/int key_press2(int key) uint32 PinStat; /PINSEL0 &= 0xff3fffff;/设置引脚连接模块,将p0.13设置为GPIO功能/IO0DIR &= 0xffff2fff;/将p0.13设置为输入状态zPinStat = IO0PIN & (10;dly-) for(i=0;i5000;i+);void main(void)PINSEL0 = 0x00000000;/设置引脚连接GPIOPINSEL1 = 0x00000000;/设置引脚连接GPIOIO0DIR |= 0x00000177;/将p0.0-9设置为输出状态,甲方数码管IO0DIR |= (0x17716);/将p0.16-0.22设置为输出状态,乙方数码管IO0DIR = BEEPCON; /P0.12设置为输出状态,蜂鸣器IO0DI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 渔获物深加工与品牌化营销创新创业项目商业计划书
- 电商支付即时到账解决方案创新创业项目商业计划书
- 虚拟现实电商应用创新创业项目商业计划书
- 水产品文学创作创新创业项目商业计划书
- 电脑散热风道仿真创新创业项目商业计划书
- 园林技术专业认知
- 2025年公务员时事政治试题库有完整答案详解
- 医学装备工作汇报
- AI辅助输送路径创新创业项目商业计划书
- 2025年事业单位笔试-云南-云南儿科学(医疗招聘)历年参考题库含答案解析(5套)
- 隔物灸技术课件完整版
- 经皮肾镜术后出血的护理
- 深度学习在黄酒品质预测中的应用-深度研究
- 《建筑施工安全文明工地标准》(DBJ13-81-2006)
- 教学课件《金融服务营销》(第二版)徐海洁
- 学校1530安全教育记录
- 登革热诊疗方案(2024年版)
- 房地产经济学(第三版)课件全套 谢经荣 第1-10章 绪论-房地产市场调控政策
- 医院建设动火作业应急预案
- 烂尾楼续建报告范文
- 苏教版二年级数学下册单元测试题及答案
评论
0/150
提交评论