江西理工大学ARM创新实验报告——刘迎春_第1页
江西理工大学ARM创新实验报告——刘迎春_第2页
江西理工大学ARM创新实验报告——刘迎春_第3页
江西理工大学ARM创新实验报告——刘迎春_第4页
江西理工大学ARM创新实验报告——刘迎春_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、江 西 理 工 大 学ARM创新实验设计报告题 目:基于ARM2103的键盘数码管显示数值控制学 院:机电工程学院专 业:自动化班 级: 081学 生:刘迎春学 号:13指导教师:王祖麟 职称:教授指导教师:温如春 职称:副教授目 录第一章 设计目的第二章 LED扩展电路、键盘显示板原理及原理图2.1 LED扩展电路概述2.2 键盘显示板2.3 键盘显示板原理图 第三章 示例程序 3.2 按键控制数码管显示3.2 定时精确定时数码显示管流水灯 第四章 实验效果 第五章 实验总结第六章 致谢附录:段码数值表参考文献- 15 - / 17文档可自由编辑打印第一章 设计目的本设计是有关数码显示管的显

2、示,通过定时器来给定时间长生中断,将数据传送到键盘显示板上显示。微控制器是NXP公司推出的基于ARM7TDMI核的ARM2103,以ZLG(周立功)的EasyARM2103为开发板,选择容易操作的八段共阴极数码管显示组成一个简易的电子时钟系统。介绍了ARM的变异平台ADSV1.2及其操作以及ARM的C语言编程。本次课题实验,其目的在于进一步巩固同学们所学的知识,增强在硬件和软件方面的动手能力,达到理论与时间的相结合,为以后的学习打下一个良好的基础。 第二章 键盘显示板原理及原理图2.1 LED扩展电路概述2.11LED扩展电路电路 EasyARM2103 开发板提供了 3 个独立的按键、4 个

3、发光二极管,按键与显示电路如图2.7所示。当P0 口作为输入时,内部没有上拉电阻,需要外接上拉电阻R17、R18、R19。显示电路中采用灌电流的驱动方式来驱动发光二极管,由于LPC2103 芯片I/O口提供的灌电流大于其拉电流,可以保证了发光二极管的亮度。2.12LED的硬件原理除了键盘显示板之外,LED数码显示管与LED液晶显示器也在人机沟通方面发挥着重要的角色,LED是发光二极管的缩写,LED里边有8只二极管,与实验板ARM2131上边所接的二级挂管是相同的,分别几座a, b, c, d, e, f, g, h,dp,其中dp为小数点,每一只发光二极管都有一根电极引到外部引脚上,而另外一只

4、引脚就连接在一起同样也引到外部引脚上,记作公共端(COM),如图5-8所示 图2-1 数码管引脚图 图2-2 数码管实物图市面上的常用LED数码管有两种,分为共阳极和共阴极。共阳极:当数码管里面的发光二极管的阳极接在一起作为公共引脚,在正常情况下此引脚接电源正极。当发光二极管的阴极接低电平的时候,发光二极管被点亮,从而相应得数码管显示,如图5-10所示共阴极:当数码管里面的发光二极管的阴极接在一起作为公共引脚,在正常情况下此引脚接电源正极。当发光二极管的阳极接低电平的时候,发光二极管被点亮,从而相应得数码管显示,如图5-11所示 图2-3 LED的数码显示原理图5-10 图5-112.2键盘显

5、示板与数码管的工作原理 键盘显示板工作原理:键盘是由按键构成,是单片机系统里最常用的输入设备。我们可以通过键盘输入数据或命令来实现简单的人-机通信。 数码显示管原理:每个数码管都有a、b、c、d、e、f、g七个笔划和一个小数点DP,这八个联对应二极管阳极,阴极都联在一起(称共阴极)。以四位数码管矩阵为例,四个数码管的a、b、c、d、e、f、g七个笔划和一个小数点DP电极分别并联在一起。当c行高电平,3列低电平,其他行列都为高阻态时,第三个数码管的c笔划亮,通过扫描方式在1/20秒内四个数码管的笔划该亮的都亮一次,由于视觉暂留,就会看到结果。2.3键盘显示板原理图 键盘显示板原理图如图所示: 图

6、2-4 键盘显示板原理图第三章 示例程序3.1 按键控制数码管显示/* 描述:p0.4为SCK ,p0.5为MISO, p0.6为MOSI*/#include "config.h"uint32 data9=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f;/*定义段码*/uint32 ssh8=1,2,3,4,5,6,7,8;uint32 selectable8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;char i=2; /*位码循环变量*/void delay(uint32 dly)uint3

7、2 i; for(;dly>0;dly-) for(i=0;i<500;i+);/*主函数*/int main(void)int i=0;int whichkey=8;PINSEL0=PINSEL0&(0x03<<8)|(1<<8) &(0x03<<12)|(1<<12);/*设置P0.4和P0.6为SPI*/PINSEL0=PINSEL0&(0x03<<10)|(0x01<<10); /*设置P0.5为MISO */ PINSEL1&=(0X03<<6);IO1DI

8、R|=1<<20;SPI_SPCCR=8;/*设置SPI分频*/SPI_SPCR=SPI_SPCR&(0<<2) /*每次传送数据位数由811位设置*/ |(1<<3)/*SCK在第二个时钟沿采样*/ |(1<<4) /*SCK为低有效*/ |(1<<5)/*主模式*/ |(0<<6)/*数据传送高位在先*/ |(0<<7);/*SPI中断禁止*/ while(1)if(IOPIN&(1<<5)=0) delay(10);whichkey=i; IO1CLR|=1<<20

9、; SPI_SPDR=datawhichkey;/*传送A(段码)的内容*/ while(SPI_SPSR&(1<<7)=0);/*等待传送借结束*/ SPI_SPDR= selectablei;/*传送B(位码)的内容*/ while(SPI_SPSR&(1<<7)=0);/*等待传送结束*/ IO1SET|=1<<20; i=(i+1)%8; delay(30); return 0;/* End Of File*/3.2 定时器精确定时数码显示管流水灯 /*Copyright(c)*/* Modified by: 刘迎春* Modifie

10、d date: 2010.11.20* Version: SPI数据传送* Descriptions:*/#include "config.h"uint32 data9=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f;/*定义段码*/uint32 ssh8=1,2,3,4,5,6,7,8;uint32 selectable8=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;int i=0;/定义循环变量void delay(uint32 t) uint32 m; for(;t>0;t-) for

11、(m=0;m>5000;m+);/* 功能:SPI初始化 函数:SPI*/void SPI_Init(void) SPI_SPCCR= 8; SPI_SPCR=SPI_SPCR&(0<<2)/每次传送8位数据 |(1<<3)/CPHA=0,数据在SCK的第一个跳变沿采样 |(1<<4)/时钟为低有效 |(1<<5)/设置为主机 |(0<<6)/数据从高位传送 |(0<<7);/中断使能禁止/* 函数:main*/int main (void) int whichkey=8;PINSEL0=PINSEL0&am

12、p;(0x03<<8)|(0x01<<8); /设置P0.4、P0.6为SPI的SCK、MOSI功能 PINSEL0=PINSEL0&(0x03<<10)|(0x01<<10); /P0.5 PINSEL0=PINSEL0&(0x03<<12)|(0x01<<12); PINSEL1=0X00; IO0DIR=1<<16; SPI_Init(); while(1) IO0CLR=1<<16; SPI_SPDR=datasshi; /*传送A(段码)的内容*/ while(SPI_SP

13、SR&0x80)=0);/*等待传送借结束*/ SPI_SPDR=selectablei; /*传送B(位码)的内容*/ while(SPI_SPSR&0x80)=0);/*等待传送结束*/ IO0SET=1<<16; if(IO0PIN&(1<<5)=0) delay(30); whichkey=i; else if(whichkey=i) switch(whichkey) case 0: ssh0+; if(ssh0=9)ssh0=0; break; case 1: ssh1+; if(ssh1=9)ssh1=0; break; case 2

14、: ssh2+; if(ssh2=9)ssh2=0; break; case 3: ssh3+; if(ssh3=9)ssh3=0; break; case 4: ssh4+; if(ssh4=9)ssh4=0; break; case 5: ssh5+; if(ssh5=9)ssh5=0; break; case 6: ssh6+; if(ssh6=9)ssh6=0; break; case 7: ssh7+; if(ssh7=9)ssh7=0; break; whichkey=8; i=(i+1)%8; /*位码循环*/ delay(500); return 0;第四章 实验现象实验现象4

15、.1 从8个8开始,按下一个键,数码管变化一次,从8个0到8个7之间变化。 4.2 数码显示管左循环显示数字09 一秒钟显示一个数字 循环6次LED灯亮下。 第五章 实验总结ARM相对于单片机有相似之处,不过难度相对高一些,是单片机的一个升级,属于32位处理器,做出的产品功能相对也是比较高端的。在上了大二之后,我在实验室里开始接触从流水灯、数码管、按键、动态扫描、驱动继电器、到活动字幕、液晶、温度传感器等这些东西我以前没接触过,所以觉得很新鲜,也逐喜欢上了这一专业。总算自己的汗水没有白流在这次试验中,我进一步学习了GPIO.定时器中断.PWM以及SPI.通过这几天的设计,让我深刻认识到ARM操

16、作系统的重要性,作为当代的大学生,学会ARM操作真的是很有必要,对自己的未来发展也很有帮助。当然,ARM还可以体现很多其他的价值,例如,一位学习单片机的专业人士转身学习ARM,他还可以将其利用到单片机中,进行开发研究。这时的软件没有操作系统和执行程序的划分,操作系统就是执行程序,执行程序也就是操作系统。在信息时代,这类人的能力是很难完成手持式设备或其他类似产品的开发的。从这可以看出,ARM逐渐拉近了单片机和PC的距离,使得无论是硬件(单片机)出身的人还是软件(PC出身的人)都可以搞出大致相似的产品 ,这或许是一场新的知识革命致 谢在这一次的实验设计中,虽然我尽自己的最大的努力去学,不过由于本身

17、姿势有限,不免遇到很多的困难和挑战,但是当时自己并没有放弃,因为我的同学和温老师一直在我身边,在我遇到难题的时候及时给我帮助,耐心的为我讲解知识,认真细致为我讲解程序,这是我坚持下来的最大动力。同学们不仅在生活上与我和睦相处,在学习上也给予我帮助,我们在一起共同经历了很多欢乐和难忘的时光,一起在试验室里埋头学习,一起挑灯夜战,是你们祛除了我内心的孤独,让我体会到大学的生活是如此的美好,在这里我想说:“有了你们的存在,我的生活更加丰富多彩”,。我知道,在这一次的实验设计中所取得的成果,也离不开温教授的耐心指导与鼓励,温教授有这相当丰富的教学经验,为人也十分和蔼,不但教会了我们ARM知识,也教会了我们如何做人。未来的道路,我会继续努力,不断前进。 附 录段码和位码数值表如下: 表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论