1、ARM 大作业 某象棋快棋赛规则如下:红、黑双方对奕时间累计均为十分钟,超时判负;甲乙对奕方的计时器均用 3 位数码管显示,预定的初值均为十分钟,采用倒计时方式,通过按扭启动;由本方控制对方,比如甲方走完一步棋后必须按一次甲方的按键,该按键启动乙方倒计时。同理,乙方走完一步棋后必须按一次乙方的按键,该按键启动甲方倒计时。超时能发出报警声音,比赛结束。 利用你所学的知识,用 LPC2000 微控制器设计一个上述比赛用的计时器,尽可能详细给出软硬件设计、实现方案。 一、 软件流程图 开 始定 时 器 0 初 始 化G P I O 初 始 化启 动 定 时 器 0 , 定时 时 间 6 0 0 s
2、, 倒 计时 方 式甲 乙 双 方 数 码 管 显示甲 是 否 将 键 按下 ?暂 停 甲 计 时继 续 乙 计 时乙 是 否 将 键 按下 ?暂 停 乙 计 时继 续 甲 计 时甲 或 者 乙 计 时是 否 归 零 ?蜂 鸣 器 超 时 警 报结 束YNYNY二、 程序 #define uchar unsigned char #define uint unsigned int #define Fpclk 12000000 /12MHz 晶振 #define BEEPCON (10;dly-) for(i=0;i5000;i+); void main(void) PINSEL0 = 0x000
3、00000;/设置引脚连接 GPIO PINSEL1 = 0x00000000;/设置引脚连接 GPIO IO0DIR |= 0x00000177;/ 将 p0.0-9 设置为输出状态 ,甲方数码管 IO0DIR |= (0x17716);/将 p0.16-0.22 设置为输出状态,乙方数码管 IO0DIR = BEEPCON; /P0.12 设置为输出状态,蜂鸣器 IO0DIR /将 p0.11 设置为输入状态,甲方按键 IO0DIR /将 p0.13 设置为输入状态,乙方按键 while(1) key1 = key_press(); key2 = key_press(); if (count1=0)|(count2=0) beep(); 三、 硬件电路图