B08022034周星宇.doc_第1页
B08022034周星宇.doc_第2页
B08022034周星宇.doc_第3页
B08022034周星宇.doc_第4页
B08022034周星宇.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

南京邮电大学 2011 /2012 学年 第 一 学期 课程设计 实验报告模 块 名 称 51单片机 (动态广告屏设计) 专 业 网络工程 学 生 班 级 20班 学 生 学 号 B08022034 学 生 姓 名 周星宇 指 导 教 师 林建中 梅霆 汪胡青 日期: 2011年9月26日 至 2011年10月20日 51单片机课程设计报告一,课程设计目的课程设计II是多门课程学习结果的检验过程,是理论与实践相结合的过程,是学生动手能力培养的重要环节。课程设计II是软件设计的延续,设计教学重在过程,侧重于学生的独立思考能力、软硬件系统的综合应用能力、知识交叉能力的培养,自律意识、团队精神和合作能力的培养。 二,实验设备(1)计算机一台(2)Proteus仿真软件平台(3)Keil 编程软件平台(2)AT89S51V1.4硬件实验板三,课程设计内容总体要求:本课程设计是在理论课程的基础上,重点培养学生的动手能力,通过电路设计、理论计算、实际编程、调试、测试、分析查找故障,解决在实际设计中的问题,使设计好的电路能正常工作,并可能结合实际的实验板进行下载测试。在此基础上根据实验大纲的要求,每组同学提供可以在“51单片机课程设计选题表”中任选一空题(各组间不能重题),实现其功能。有能力的同学可以超出题目要求发挥设计。分类要求:基于单片CPU的动态显示器设计基本:1 用数码管或LCD正常显示数字“12345678”。2 通过按键可改变显示方式。3 设计显示屏的动态效果,用10个按键,每键对应一种滚动技术。 发挥:1 设计所有动作的联合效果。2 设计二个变速按键,可多级改变滚动速度。3 设计一台魔术电子种,采用自动变换,随机组合,数据每10秒变换一次。 动态显示格式:1 静止2 整体闪烁3 单字闪烁4 整体向前、向后滚动5 单字移动6 两边向中间压缩7 中间向两边扩张8 上下压缩9 文字上下滚动10 组合动作(每一字符执行上述一个动作,并同时运动) 相关软件介绍1. ProteusProteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外 围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。2. KeilKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。四,分组和实验注意事项本次实验以proteus软件平台为主,以硬件设计和实现为最终目标,完成MSC51单片机系统的课程设计实验。软件设计平台43组,每组2位同学,分AB二个群,需要完成课程设计选题的基本要求后,经老师同意可以进入第3部分的设计,也可直接申请采用硬件设计。硬件设计的基本条件是MCS51实验板(每组领取自行保管)+电源(每工作台1个,公用)+MedWin+FM(GAL编译器)+编程器(公用)+51仿真器(需要时借用)。课程设计每两名同学为一组,自由组合,每组同学应分工合作,共同完成实验。实验工作要细心认真、防止意外,有问题及时向指导老师反映,分清责任,不影响别组同学的实验。课程设计的学习过程:(1) 听课,实验方法介绍(2) 学习proteus软件的使用(3) 学习汇编语言以及C语言在51编程上的使用(4) 学习系统测试(5) 自主实验 五,课程设计过程1. 数码管电路8段数码管属于LED发光器件的一种,分为8段:A、B、C、D、E、F、G、DP,其中DP是小数点位,还包括一个公共端COM端。从电气上,8段数码管又分为共阴和共阳两种。共阴指数码管的公共端接负极,而各段接正极;共阳则正好相反。如果有多个数码管,它们的各段输入一般都分别接在一起,公共端分开。开发板上采用的是二位一体的共阳数码管。数码管显示方法分为静态显示和动态显示两种。静态显示就是每个数码管的8段输入各自分开,其COM口电平一直有效。它的优点是控制方便,显示稳定,但要占用较多的I/O口。动态显示的原理是,各个数码管的段输入相应位接在一起,共同占用8位数据线,公共端分开,利用扫描和人视觉上的短暂停留性,依次给出各个数码管COM端使能信号,并同时给出各数码管的数据。它的优点是占用I/O口少,但控制较静态显示复杂。一般在数码管较多的情况下都采用动态显示。开发板上设置了6位8段数码管,采用动态扫描方式连接,各位数码管的ADP互联后经拨码开关S1后由P0口控制,数码管的COM分别经拨码开关S2后由P10P15控制。另外,在各位数码管的COM端设计了三极管Q3Q8用于增加驱动电流。当某一数码管COM口控制端为低电平时,三极管导通,该位数码管选中,此时可通过P0口发送待显示数据的编码。2.矩阵键盘电路 按键是一种通过外力控制电路通断的器件。在单片机系统,常用来实现功能的设置,是人机交互的重要手段。按键与单片机的连接方式有独立式和矩阵式,其中矩阵式按键较为常用,它可以减少对I/O的占用,节省单片机资源。对于矩阵式键盘可设计为查询式和中断式。查询式占用较多的处理器时间,但电路组成和编程较简单。当系统检测到有键按下时,对矩阵式按键进行横列式扫描,以辨认出是哪个键被按下,完成按键识别后便可根据所按键的键值调用相应的处理程序,完成该键所设定的功能。开发板上通过采用8255并行口扩展芯片,扩展了3个8位的并行口,并通过该器件扩展了44矩阵按键,行由8255的PA0PA3端口控制,列由8255的PC0PC3端口控制。正常态下,复位行(或列)口,通过读取列(或行)口来判断有无按键按下,当有键按下时,读取的数据中便由一位为低电平,此后再进行键盘扫描,最终确定是哪个键被按下。(1) 键盘定义 K1:静态显示 K2: 整体闪烁 K3: 向左移动显示 K4: 向右移动显示 K5: 单字闪烁(从左往右逐个闪烁显示)K6: 中间向两边扩展显示(2) 流程图 主流程图开始系统初始化键盘扫描数据转换(3) 程序部分以下为主程序#include #includekey.h#includesegment.h#includebeep.h/#includeADC0809.h/#includeDAC0832.h/#includeuart.h/extern unsigned char AdcValue8;/声明为外部变量,在ADC0809.c中定义/*/ main()unsigned char KeyValue=0;/INT0_Init();/外部中断0初始化/Uart_Init();/串口初始化TMOD=0x11;/工作模式设置EA=1;TH0=(65536-50000)/256; TL0=(65536-50000)%256;TR0=1;ET0=1;while(1)if(KeyValue=KeyRead()!=0xff)/判断是否有按键按下,如有读取键值switch (KeyValue)case 0:/进行ADC转换flag=0;nn=0;nnn=0;break;case 1:flag=1;nn=0;nnn=0;break;case 2:flag=2;nn=0;nnn=0;break;case 3: flag=3;nn=0;nnn=0;break; case 4: flag=4;nn=0;nnn=0;break; case 5:VOICE();/控制蜂鸣器蜂鸣一声break; case 6:flag=6;nn=0;nnn=0;break; default:break;while(KeyRead()!=0xff);/等待按键释放 Display();/SoftDelay(5);/软件延时以利用数码管的显示/ return 0; /*-*/*5mS定时中断服务?函数*/void T0_srv(void) interrupt 1 TH0=-(5000/256);TL0=-(5000%256);deda+; if(deda=200) sec+;deda=0;if(sec=60) min+; sec=0; if(min=60) min=0; hour+=1; if(hour=24)hour=0; 以下为键盘程序#include key.h/*按键编码查表,可得到键值*/const unsigned char Key_code=0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77;/*8255端口地址分配定义*/xdata unsigned char PA8255ADDR _at_ (BASE8255+0);xdata unsigned char PB8255ADDR _at_ (BASE8255+1);xdata unsigned char PC8255ADDR _at_ (BASE8255+2);xdata unsigned char CON8255ADDR _at_ (BASE8255+3);/*延时函数*/static void SoftDelay(unsigned int time)unsigned char n;while(time-)for(n=0;n50;n+);/*8255工作方式选择*void Set_8255_Mode(unsigned char mode)CON8255ADDR = mode;/*按键编码和键值转换函数*/unsigned char Key_code_value(unsigned char key_code)unsigned char i;for(i=0;i16;i+)if(Key_codei=key_code)return i;return 0xff;/*按键扫描程序,返回按键键值,采用翻转法*/unsigned char Key_Scan(void)unsigned char temp;temp= PC8255ADDR;temp&=0x0f;Set8255_Mode(0x90);/模式0,PA口输入,下PC口输出(PA为矩阵键盘的行,下PC口为列)PA8255ADDR = 0x0f;/PC8255ADDR = temp;temp |=(PA8255ADDR4);/形成按键编码,PA(低位)值为高4位,PC(低位)值为低4位return (Key_code_value(temp);/*功能:判断是否有键按下,如有返回键值*/unsigned char KeyRead(void)Set8255_Mode(0x81);/模式0,PA口输出,下PC口输入(PA为矩阵键盘的行,下PC口为列)PA8255ADDR = 0x00;/PA口输出低电平PC8255ADDR = 0x0f;/if(PC8255ADDR&0x0f)!=0x0f)/读取8255的下PC口,即读取矩阵按键的列状态SoftDelay(1);/软件延时去抖if(PC8255ADDR&0x0f)!=0x0f)/如果矩阵按键列状态不为0x0f,则说明有键按下return (Key_Scan();/按键键值扫描else return 0xff;elsereturn 0xff;以下为附加BEEP程序#includebeep.hsbit BEEP = P17;/*时函数*/void DelayMs(unsigned int count1)while (count1-)unsigned char count2 = 0;for (; count230; count2+);/*发音*/void VOICE(void)unsigned int count1,count2;for (count1=0; count1800; count1+)BEEP = BEEP;DelayMs(1);for (count2=0; count2400; count2+)BEEP = BEEP;DelayMs(2);六、实验过程及记录USBASP下载器采用PROGISP软件作为下载软件,其界面下图所示。主要包括菜单项和可视化界面。操作步骤 将下载器USB端通过USB电缆与PC机相连。红灯点亮。 将AT89S51/52开发板和下载器利用10针扁平线连接,注意1脚对齐。 在PROGISP界面中的“编程器及接口”下拉菜单中选择USPASP、usb;在“选择芯片”下拉菜单中选择AT89S52。 点击“芯片识别字”中RD按钮,可读取用户单片机芯片的识别字节,如用户选择的芯片类型与所用单片机芯片类型不符,软件报错。 点击“调入Flash”按钮,可选择要下载的程序。其他功能类似。 在“编程”项目框内可设置编程的科目和过程等,选择好后,点击“自动”按钮即可。 如果用户芯片为MEGA系列也可通过左边项目选项配置并编程熔丝位。7、 课程设计总结本次51课程设计相比之前的AVR软件设计多了个硬件实现的过程,其实对于已经做过AVR软件仿真的我们来说难度其实并不是很大。当然这个也是个系统化的工程,一开始总归会有点无从下手我说一自己的设计经过吧:

温馨提示

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

最新文档

评论

0/150

提交评论