论文部分内容阅读
[摘 要]随着信息技术的飞速发展,嵌入式技术得到了广泛的应用与发展。本文设计了基于ARM的简单抢答器,该系统能根据实际情况进行抢答器复位、抢答开始、数据显示处理、抢答结束等,实现了简单的抢答器设计,通过设计进一步了解并加深对ARM的认识,模拟抢答器的实现。
[关键词]ARM;抢答器;S3C2410
中图分类号:S3C2410 文献标识码:A 文章编号:1009-914X(2015)36-0207-01
0 引言
随着科学技术的发展和人们生活水平的提高,嵌入式技术的发展越来越迅猛。嵌入式系统以其可靠性高、实时性强、系统配置低等优势,广泛应用在工业控制、消费电子、信息家电等领域,小型电子设备像抢答器就需要使用这样的系统来完成。本文将使用设计和控制ARM系统,模拟简单的抢答器。
1 系统设计方案
1.1 设计要求
本设计是在武汉创维特信息技术有限公司的ARM9教学实验箱上完成,模拟了简单的抢答器。用小键盘上的十六个键模拟有十六个人的抢答器。具体要求如下:
(1)每次抢答前需要通过外部中断2复位,同时数码管上显示10秒倒计时;
(2)计时结束时,蜂鸣器响起,数码管清除显示。此时,表示可以开始抢答,数码管上会显示第一个抢答的号码;
(3)在秒中断中,处理显示倒计时的数据,并使蜂鸣器响;
(4)在运行过程中,随时可以通过外部中断2重新开始抢答的倒计时。
1.2 系统流程
由于此系统较为简单,故采用自上而下的设计方法,进行程序设计;抢答开始和结束,采用中断的方法,由中断处理程序处理。程序流程如下图1所示,
2 嵌入式开发环境说明
硬件方面,我们使用S3C2410实验箱的串口与PC机串口连接,通过JTAG口的ARM仿真器把实验箱和PC机连接。
软件方面,我们使用与实验箱配套的ADT软件进行开发。
3 典型功能实现
3.1 外部中断2 的中断实现
在本设计中,外部中断2起着至关重要的作用。跳出显示抢答到的数据,或者在计时中,重新开始计时。
void irq_eint2(void)
{
Irq_Clear(IRQ_EINT2);
ch=0;
D[1]=1;
D[0]=0;
flag=0;
rRTCCON=0x01; //以下设置秒中断使能
rTICNT=0xff;
rRTCCON=0x0;
}
3.2 处理抢答结果
计时结束之后,开始等待键盘的输入,一旦接收到第一个输入值,即一直显示该值,直到有外部按键2按下,使ch=0,重新开始下一轮抢答。计时过程中和等待抢答过程中也可以通过按键2重新开始。
void Main(void)
{
……
while(1)
{
while(flag==0)// eint_flag为0执行倒计时,否则判断是否有键按下
{
for(i=0;i<2;i++)
{
*((unsigned char *)0x10000006) =~(1 << i);// 数码管显示抢答
*((unsigned char *)0x10000004) = seg[D[i]];
for(t=200;t>0;t--);
}
}
*((unsigned char *)0x10000006)=0xff; //计时结束后,数码管不显示内容
ch = Key_Get(); //讀键盘直到有键按下或按键2使重新开始抢答
while(ch!=0) //有键按下,显示结果
{
……
}
}
}
3.3 秒中断处理
秒中断服务程序中,处理显示倒计时的数据,并使蜂鸣器响。具体实现如下:
void rtc_tick_isr(void)
{
int t;
Irq_Clear(IRQ_TICK);
if(D[1]==1){
D[1]=0;
D[0]=9;
}
else
D[0]--;
if(D[1]==0 && D[0]==0){ //倒计时结束
rRTCCON=0x01;
rTICNT=0x0; //TICNT的bit[7]置0,停止秒中断
rRTCCON=0x0;
flag=1; //设置计时停止标志
rTCON=0xa; //启动蜂鸣器
rTCON=0x9;
for(t=50000;t>0;t--);
rTCON=0x0; //关闭蜂鸣器
}
}
4 结束语
本文设计实现了基于ARM9 平台的简单抢答器,该系统实现了抢答器复位、抢答开始、数据显示处理、抢答结束等,基本实现了嵌入式抢答器的功能需求,很好地模拟了抢答器的功能,而且操作简单、方便。
参考文献
[1]周功明,周陈琛. 基于单片机AT89C2051的九路多功能智力竞赛抢答器的设计[J].现代电子技术,2006,10(20):4-6.
[2]韩满林.用触摸屏和PLC实现四人抢答器的控制设计[J].电子工程师,2007,33(12):77-80.
[3]李鹏辉.基于PLC技术的抢答器设计[J].电气技术,2010,9(9):76-77.
[4]龚昌来.单片机控制的智能型抢答器设计[J].广东自动化与信息工程,2003,3(3):28-30.
[关键词]ARM;抢答器;S3C2410
中图分类号:S3C2410 文献标识码:A 文章编号:1009-914X(2015)36-0207-01
0 引言
随着科学技术的发展和人们生活水平的提高,嵌入式技术的发展越来越迅猛。嵌入式系统以其可靠性高、实时性强、系统配置低等优势,广泛应用在工业控制、消费电子、信息家电等领域,小型电子设备像抢答器就需要使用这样的系统来完成。本文将使用设计和控制ARM系统,模拟简单的抢答器。
1 系统设计方案
1.1 设计要求
本设计是在武汉创维特信息技术有限公司的ARM9教学实验箱上完成,模拟了简单的抢答器。用小键盘上的十六个键模拟有十六个人的抢答器。具体要求如下:
(1)每次抢答前需要通过外部中断2复位,同时数码管上显示10秒倒计时;
(2)计时结束时,蜂鸣器响起,数码管清除显示。此时,表示可以开始抢答,数码管上会显示第一个抢答的号码;
(3)在秒中断中,处理显示倒计时的数据,并使蜂鸣器响;
(4)在运行过程中,随时可以通过外部中断2重新开始抢答的倒计时。
1.2 系统流程
由于此系统较为简单,故采用自上而下的设计方法,进行程序设计;抢答开始和结束,采用中断的方法,由中断处理程序处理。程序流程如下图1所示,
2 嵌入式开发环境说明
硬件方面,我们使用S3C2410实验箱的串口与PC机串口连接,通过JTAG口的ARM仿真器把实验箱和PC机连接。
软件方面,我们使用与实验箱配套的ADT软件进行开发。
3 典型功能实现
3.1 外部中断2 的中断实现
在本设计中,外部中断2起着至关重要的作用。跳出显示抢答到的数据,或者在计时中,重新开始计时。
void irq_eint2(void)
{
Irq_Clear(IRQ_EINT2);
ch=0;
D[1]=1;
D[0]=0;
flag=0;
rRTCCON=0x01; //以下设置秒中断使能
rTICNT=0xff;
rRTCCON=0x0;
}
3.2 处理抢答结果
计时结束之后,开始等待键盘的输入,一旦接收到第一个输入值,即一直显示该值,直到有外部按键2按下,使ch=0,重新开始下一轮抢答。计时过程中和等待抢答过程中也可以通过按键2重新开始。
void Main(void)
{
……
while(1)
{
while(flag==0)// eint_flag为0执行倒计时,否则判断是否有键按下
{
for(i=0;i<2;i++)
{
*((unsigned char *)0x10000006) =~(1 << i);// 数码管显示抢答
*((unsigned char *)0x10000004) = seg[D[i]];
for(t=200;t>0;t--);
}
}
*((unsigned char *)0x10000006)=0xff; //计时结束后,数码管不显示内容
ch = Key_Get(); //讀键盘直到有键按下或按键2使重新开始抢答
while(ch!=0) //有键按下,显示结果
{
……
}
}
}
3.3 秒中断处理
秒中断服务程序中,处理显示倒计时的数据,并使蜂鸣器响。具体实现如下:
void rtc_tick_isr(void)
{
int t;
Irq_Clear(IRQ_TICK);
if(D[1]==1){
D[1]=0;
D[0]=9;
}
else
D[0]--;
if(D[1]==0 && D[0]==0){ //倒计时结束
rRTCCON=0x01;
rTICNT=0x0; //TICNT的bit[7]置0,停止秒中断
rRTCCON=0x0;
flag=1; //设置计时停止标志
rTCON=0xa; //启动蜂鸣器
rTCON=0x9;
for(t=50000;t>0;t--);
rTCON=0x0; //关闭蜂鸣器
}
}
4 结束语
本文设计实现了基于ARM9 平台的简单抢答器,该系统实现了抢答器复位、抢答开始、数据显示处理、抢答结束等,基本实现了嵌入式抢答器的功能需求,很好地模拟了抢答器的功能,而且操作简单、方便。
参考文献
[1]周功明,周陈琛. 基于单片机AT89C2051的九路多功能智力竞赛抢答器的设计[J].现代电子技术,2006,10(20):4-6.
[2]韩满林.用触摸屏和PLC实现四人抢答器的控制设计[J].电子工程师,2007,33(12):77-80.
[3]李鹏辉.基于PLC技术的抢答器设计[J].电气技术,2010,9(9):76-77.
[4]龚昌来.单片机控制的智能型抢答器设计[J].广东自动化与信息工程,2003,3(3):28-30.