单片机课程设计_第1页
单片机课程设计_第2页
单片机课程设计_第3页
单片机课程设计_第4页
单片机课程设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机课程设计完整版单片机课程设计完整版单片机原理课程设计课题名称:基于红外控制的8X8点阵设计 专业班级:电子信息工程0701班学生学号:* * 学生姓名:* *指导教师:* *设计时间:2010年6月21日至6月26日 基于红外控制的 8X8点阵设计1、设计要求:设计一个基于 STC89C54RD单片机的8X8点阵电路,选用 8X8点阵LED显示器,一个发光二极管控制点阵中的一个 点,延时时间为1ms,并通过红外控制点阵显示不同的花样。2、方案选择2.1单片机的选择方案一,选择STC89C51RD 单片机。但它内部ROM较小。方案二,选择 STC89C54RD单片机。它内部ROM相对较大。

2、由于点阵显示很多字符需要大量的编码,固选用内部ROM比较大的STC89C54RC单片机。2.2 电流驱动元件的选择 方案一,选才i 8550三极管驱动 行扫。8550三极管驱动电流比较大,能驱动 8X8点阵,但三极管是分立元件,稳定性较差,且开关速度可能会影响点阵显 示。方案二,选择74HC245三态输由的八组总线收发器。74HC245为集成芯片,稳定性高,速度快,价格便宜。综上所述,电流驱动元件选由用74HC245 o2.3 红外发射接收装置的选择方案一,集成发射接收芯片。但这类芯片一般都相对较贵,且电路较复杂。方案二,选择红外对管。它的外形跟普通发光二极管相似,价格便宜,电路简单。综上所述

3、,对本设计来说,选用红外对管作为发射接收 装置。3、系统硬件设计 3.1单片机最小系统的设计单片机最小系统采用最用的设计方法,但复位电路本设计取消了手动 复位,只保留了上电复位电路。图3.1.1单片机最小系统图 3.2 8X8点阵显示模块的设 计3.2.1 8x8点阵原理 图3.2.1.1是一种8x8点阵单色行共阳 模块的内部结构图,其单点工作电压为1.8 V,正向电流为8-10 mA。当奥一行线为高电平而莫一列线为低时,其行列交叉的点 就被点亮;而当其莫一列线为高时,其行列交叉的点为暗;当奥一行线为低电平时,无论列线如何,对应这一行的点全部为暗。图3.2,1.1行共阳8x8点阵内部结构图 3

4、.2.2 8x8点阵驱 动模块74HC245为八路收发器,在发送和接收两个方向上都 具有正相三态总线兼容输由,能提供最大15mA的高电平电流。用74HC245来驱动8x8点阵的行,单片机的P0 口经过470 Q的电阻接到点阵的列上。图3.2.2.1 8x8点阵驱动模块 3.3红外发射接收模块的设计3.3.1红外发射模块 采用简易的红外发射装置,用一个 按键控制NPN8050三极管开、关,使红外管发射红外信号。图3.3.1.1红外发射模块原理图3.3.2红外接收模块 采用简易的红外接收装置,红外接收管,接收到红外信号使Q2的基极由高电平变为低电平送到单片机处理。同时PNP三极管8550导通,发光

5、二极管 D3亮。图3.3.2.1红外接收模块原理图3.4系统总原理图 见附录一 4、系统软件设计 4.1软件设计流程图本系统的软件设计流程图如图4.1.1所示Y系统初始化 开 始 调用初始 显示子程序进入while(1)循环是否收到红外控制信号调用下一个显示子程序N图4.1.1软件设计流程图 4.2总程序见附录二5、课程设计心得体会通过这次课程设计,我获得了很深刻的体会,知道了理论和实际的距离,也知道了理论联系实际调的重要性,我们三人一起从设计软件,硬件,最后把实物做由来,从中学到了很多书本上和课堂上无法学 到的知识,比如电路元器件的选购、电路元器件的分辨、电 路的设计制作、电路故障的排除等等

6、。经过这次课程设计,我们自己的动手能力增强了。更让我们认识到学习就应该采取理论与实践结合的方式。这样既有助于完成理论知识的巩固,又有助于带动实践, 解决实际问题,加强我们的动手能力和解决问题的能力。所以这次课设我们获得了很多。6、参考文献1单片机原理及其接口技术(第2版),胡 汉才主编,清华大学生版社,2005 2 Protel 99Se电路设计实 用教程(第1版),余家春主编,中国铁道由版社,2004 3 C语言程序设计教程(第 2版),杨路明主编,北京邮电大学 由版社,2005 4 51单片机C语言教程(第1版),郭天祥 主编,电子工业由版社,2009 5单片机C语言程序设计实 训1(第1

7、版),彭伟主编,电子工业由版社, 2009附录一 系 统总原理图附录二总程序如下:#include #include #define uchar unsigned char #define uint unsigned int sbit symbol=P3 ; uchar num,flag; uint temp; uchar code hang尸0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;ucharcodecodexin尸0x00,0x36,0x49,0x41,0x41,0x22,0x14,0x08;ucharOK尸0x00,0x04,0x65,0x96,0x

8、96,0x65,0x04,0x00;ucharcode z=0x00,0x7E,0x04,0x08,0x10,0x20,0x7E,0x00;ucharcode h尸0x00,0x22,0x22,0x22,0x3E,0x22,0x22,0x22;ucharcode a尸0x00,0x08,0x14,0x22,0x3E,0x22,0x22,0x00;ucharcode n尸0x00,0x24,0x34,0x34,0x2C,0x2C,0x24,0x00;ucharcode g尸0x00,0x3C,0x44,0x40,0x5C,0x44,0x3C,0x00; ucharcode 1=0x00,0x20

9、,0x20,0x20,0x20,0x20,0x3C,0x00;ucharcode o=0x00,0x1C,0x22,0x41,0x41,0x41,0x22,0x1C;ucharcode s=0x00,0x1C,0x22,0x20,0x1C,0x02,0x22,0x1C; ucharcode ii尸0x00,0x08,0x00,0x08,0x08,0x08,0x08,0x08;ucharcode jj尸0x00,0x3C,0x08,0x08,0x08,0x28,0x18,0x00;ucharcode u=0x00,0x22,0x22,0x22,0x22,0x22,0x1C,0x00;ucharc

10、ode y尸0x00,0x22,0x14,0x08,0x08,0x08,0x08,0x08;ucharcodeblank尸0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;ucharcodeling尸0x00,0x3C,0x24,0x24,0x24,0x24,0x24,0x3C;ucharcode yi尸0x00,0x08,0x18,0x08,0x08,0x08,0x08,0x1C; ucharcodeer尸0x00,0x3C,0x04,0x04,0x3C,0x20,0x20,0x3C;ucharcodesan尸0x00,0x3C,0x04,0x04,0x3C,0

11、x04,0x04,0x3C;ucharcodecode si=0x00,0x08,0x18,0x28,0x48,0x7E,0x08,0x08;ucharwu=0x00,0x3C,0x20,0x20,0x3C,0x04,0x04,0x3C;ucharcodeliu=0x00,0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C; uchar code qi尸0x00,0x3C,0x04,0x04,0x04,0x04,0x04,0x04; uchar codeba尸0x00,0x3C,0x24,0x24,0x3C,0x24,0x24,0x3C;ucharcodejiu尸0x00,0

12、x3C,0x24,0x24,0x3C,0x04,0x04,0x3C;voiddelay(uint x) 延时 1ms 程序 uint y ,z; for(y=x;y>0;y-) for(z=114;z>0;z-); void display_Start(uchar table8) 字符 从右向左移开始子程序 uchar i,j,k,temp; for(k=0;k>(7-k);P0=temp; P2=hangi; delay(2); if(symbol=0) 判断是否接 收至 红外信号 delay(5); if(symbol=0) while(!symbol);if(num&g

13、t;=2) num=0; flag=1; else num+; flag=1; if(flag) break; P0=0xff; / 消影 P2=0x00; void display(uchar table18,uchar table28) / 字符连续左移子程序 uchar i,j,k,temp1,temp2; for(k=0;k>(7-k); temp=temp1|temp2; P0=temp; P2=hangi; delay(2); if(symbol=0) 判断是否接 收至 红外信号 delay(5); if(symbol=0) while(!symbol); if(num>

14、;=2) num=0; flag=1; else num+; flag=1; if(flag) break; P0=0xff; P2=0x00; void show_word(uchar table8) / 静态显示一个字符 uchar i; for(i=0;i=2) num=0; if(num=0) flag=0; for(j=0;j<3;j+) for(i=0;i<30;i+)show_word(san); for(i=0;i<30;i+) show_word(blank); if(num=0) 显示杨洋” display_Start(y); flag=0; if(num

15、=0) display(y,a); if(num=0) display(a,n); if(num=0) display(n,g); if(num=0) display(g,y); if(num=0) display(y,a); if(num=0) display(a,n); if(num=0) display(n,g); if(num=0) display(g,blank); if(num=1) flag=0; for(j=0;j<3;j+) for(i=0;i<30;i+) show_word(yi); for(i=0;i<30;i+)show_word(blank); i

16、f(num=1)/ 显示“周海军” display_Start(z); flag=0; if(num=1) display(z,h); if(num=1) display(h,o); if(num=1) display(o,u); if(num=1) display(u,h); if(num=1) display(h,a); if(num=1) display(a,ii); if(num=1) display(ii,jj); if(num=1) display(jj,u); if(num=1) display(u,n); if(num=1) display(n,blank); if(num=2) flag=0; for(j=0;j<3;j+)for(i=0;i<30;i+) show_word(er);for(i=0;i<30;i+) show

温馨提示

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

评论

0/150

提交评论