




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上专心-专注-专业(2013/2014 学年 第 2 学期)题目:基于单片 CPU 的 8LED 显示存储示波器设计专业通信工程学生姓名倪鑫班级学号B指导教师林建中日期2014.06.01.精选优质文档-倾情为你奉上专心-专注-专业目录目录第一章第一章 任务要求任务要求.2 21.1 实验目的.21.2 实验环境.21.3 课题要求.4第二章第二章 整体方案设计整体方案设计.6 62.1 整体方案.6第三章第三章 功能模块原理功能模块原理.7 73.1 AT89C51 单片机.73.2 动态显示模块.93.3 键盘模块.10第四章第四章 程序代码设计程序代码设计.111
2、1第五章第五章 仿真测试仿真测试.1515第六章第六章 设计小结设计小结.1818精选优质文档-倾情为你奉上专心-专注-专业第一章第一章 任务要求任务要求1.11.1 实验目的实验目的在理论课程的基础上,重点培养动手能力,通过电路设计,理论计算,实际编程,调试,测试, 分析查找故障, 解决在实际设计中的问题, 使设计好的电路能正常工作。 通过 proteus软件的使用,能够较全面的了解单片机的原理和结构组成,单片机系统的扩展应用,较好的掌握单片机的汇编语言程序设计和硬件结构设计,通过实验了解单片机系统研制中的软件,硬件设计和系统程序调试等的全过程,掌握应用单片机系统设计解决实际问题的方式和方法
3、。巩固单片机的课堂所学。1.21.2 实验环境实验环境1.586 微型计算机系统2.Proteus7.4sp3 软件3.Keil C51 软件1 1.3 .3 实验实验步骤步骤1.点击“Project-New Project ”菜单,出现一个对话框,要求给将要建立的工程命名, 我们选择 Atmel 公司的 89C51 芯片如图 1.1。 点击 ATMEL 前面的 “+”号,展开该层,点击其中的 89C51。精选优质文档-倾情为你奉上专心-专注-专业图图 1.12.点击“File-New File ”菜单,建立一个新文件,编写程序并保存,文件名后缀为“.c” 。此时,在工程窗口的文件页中,出现了
4、“Target1” ,点击“+”号展开,可以看到下一层的“ Source Group1” ,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“Source Group1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,选中其中的“Add filetoGroup Source Group1” 如图 1.2 所示,出现一个对话框,要求寻找源文件,注意,该对话框下面的“文件类型”默认为 C source file(*.c),也就是以 C 为扩展名的文件。点击“Flash-Configure Flash Tools” 菜单,设置对话框中的OutPut 页面,如
5、图 1.3 所示,这里面也有多个选择项,其中 Creat Hex file 用于生成可执行代码文件(可以用编程器写入单片机芯片的 hex 格式文件,文件的扩展名为.hex) ,默认情况下该项未被选中,根据实验要求,选中该项,并保存。精选优质文档-倾情为你奉上专心-专注-专业图图 1.2图图 1.33.在设置好工程后,即可进行编译、连接如图 1.4。选择菜单 “Project-Buildtarget” ,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码;如果选择 Rebuild All target files 将会对当前工程中的所有文件重新进行编译然后
6、再连接,确保最终生产的目标代码是最新的,而 Translate .项则仅对该文件进行编译,不进行连接。若编译连接通过则显示如图 1.5。图图 1.4图图 课题要求课题要求基本要求:1用数码管或LCD正常显示数字“”。2通过按键可改变显示方式。3设计显示屏的动态效果,用10个按键,每键对应一种滚动技术。发挥部分:1设计所有动作的联合效果。2设计二个变速按键,可多级改变滚动速度。3设计一台魔术电子种,采用自动变换,随机组合,数据每10秒变换一次。动态显示格式:1静止2整体闪烁3单字闪烁精选优质文档-倾情为你奉上专心-专注-专业4整体向前、向后滚动5单字移动6两边向中间压缩7中间
7、向两边扩张8上下压缩9上下滚动10组合动作(每一字符执行上述一个动作,并同时运动)精选优质文档-倾情为你奉上专心-专注-专业第二章第二章 整体方案设计整体方案设计2.12.1 整体方案整体方案根据课题要求,使用 7SEG-MPX8-CA,通过按键切换,来达到不同的动态显示效果。课题中的要求是用十种动态效果,对应的分别为“1” :禁止显示, “2” :整体闪烁显示,“3:单字闪烁显示, “4” :整体向前、向后滚动显示, “5” :单字移动显示, “6” :两边向中间压缩显示, “7” :中间向两边扩张显示, “8” :上下压缩显示, “9” :文字上下滚动显示,“10” : 组合动作显示。图图
8、 2.1精选优质文档-倾情为你奉上专心-专注-专业第三章第三章 功能模块原理功能模块原理3.13.1 AT89C51AT89C51 单片机(图单片机(图 3.13.1)P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P0 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口: P1口是一个内部提供上拉电阻的 8 位双向 I/O口, P1 口缓冲器能接收输出 4TTL
9、门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数
10、据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平, P3 口将输出电流 (ILL) 这是由于上拉的缘故。 P3 口也可作为 AT89C51的一些特殊功能口,如下表所示。P3 口同时为闪烁编程和编程校验接收一些控制信号。精选优质文档-倾情为你奉上专心-专注-专业VCC:供电电压。GND:接地。RST:复位输入。ALE/PROG: 当
11、访问外部存储器时, 地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。/PSEN:外部程序存储器的选通信号。/EA/VPP:当/EA 保持低电平时,此间外部程序存储器,不管是否有内部程序存储器。当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。图图 3.1精选优质文档-倾情为你奉上专心-专注-专业3.23.2
12、动态显示模块动态显示模块图图 3.2引脚功能1数码管 1 片选信号2数码管 2 片选信号3数码管 3 片选信号4数码管 4 片选信号5数码管 5 片选信号6数码管 6 片选信号7数码管 7 片选信号8数码管 8 片选信号A数码管段选信号 AB数码管段选信号 BC数码管段选信号 CD数码管段选信号 DE数码管段选信号 EF数码管段选信号 FG数码管段选信号 GDP数码管段选信号小数点表表 1 7SEG-MPX8-CA 管脚功能管脚功能精选优质文档-倾情为你奉上专心-专注-专业3.33.3 键盘模块键盘模块4 位二进制输入方式,从左向右四个按键,位权分别为 0124,接入 89C51 I/O 口
13、P1。当输入二进制数为 N 时,显示 N 状态。图图 3.3精选优质文档-倾情为你奉上专心-专注-专业第四章第四章 程序代码设计程序代码设计#include #include #include #define uchar unsigned char#define ulong unsigned long#define uint unsigned int/ Delay period#define Timer 50char* number;uchar chooseNumber = 0 xc0, 0 xf9, 0 xa4, 0 xb0, 0 x99, 0 x92, 0 x82, 0 xf8, 0 x8
14、0, 0 x90;uchar flickOne = 0 x02, 0 x61, 0 x43, 0 x03, 0 x43, 0 x63, 0 x02, 0 x63;uchar flickTwo = 0 x04, 0 x4c, 0 x4c, 0 x1c, 0 x58, 0 x58, 0 x44, 0 x5c;uchar flickThree = 0 x00, 0 x40, 0 x40, 0 x40, 0 x40, 0 x40, 0 x40, 0 x40;uchar chooseDigits = 0 x00, 0 x01, 0 x02, 0 x04, 0 x08, 0 x10, 0 x20, 0 x
15、40, 0 x80;void delay(int i) i *= Timer;while(i-);uchar getInput() if(P1 != 0 xff) delay(2);if(P1 != 0 xff) return P1;return 0;/* Constant number display function.*/void showDigits(char* number) uchar i;for(i = 1; i = 8; i+) P3 = chooseDigitsi;精选优质文档-倾情为你奉上专心-专注-专业if(numberi - 1 = 0) P2 = chooseNumbe
16、rnumberi - 1 - 0;else if(numberi - 1 = ) P2 = 0 xff;delay(2);/* Flicking number display function.*/void showFlick(char* number) uchar i;for(i = 1; i = 8; i+) P3 = chooseDigitsi;P2 = numberi - 1;delay(2);void main() int count = 0;uchar key = 0, temp;while(1) temp = getInput();if(temp != 0) key = temp
17、;switch(key) case 1:showDigits();break;case 2:(count / Timer) % 2 = 0 ? showDigits() : showDigits();break;case 3:switch(count / Timer % 8) case 0: showDigits( ); break;case 1: showDigits(1 ); break;case 2: showDigits(12 45678); break;case 3: showDigits(123 5678); break;case 4: showDigits(1234 678);
18、break;case 5: showDigits(12345 78); break;case 6: showDigits( 8); break;case 7: showDigits( ); break;精选优质文档-倾情为你奉上专心-专注-专业break;case 4:switch(count / Timer % 8) case 0: showDigits(); break;case 1: showDigits(); break;case 2: showDigits(); break;case 3: showDigits(); break;case 4: showDigits(); break
19、;case 5: showDigits(); break;case 6: showDigits(); break;case 7: showDigits(); break;break;case 5:switch(count / Timer % 8) case 0: showDigits(2); break;case 1: showDigits( 2); break;case 2: showDigits(2); break;case 3: showDigits(2); break;case 4: showDigits(2); break;case 5: showDigits(2); break;c
20、ase 6: showDigits(2 ); break;case 7: showDigits(2); break;break;case 6:switch(count / Timer % 5) case 0: showDigits(); break;case 1: showDigits(); break;case 2: showDigits(1278); break;case 3: showDigits(18); break;case 4: showDigits(); break;break;case 7:switch(count / Timer % 5) case 0: showDigits
21、(); break;case 1: showDigits(234567); break;case 2: showDigits(3456); break;case 3: showDigits(45); break;case 4: showDigits(); break;break;精选优质文档-倾情为你奉上专心-专注-专业case 8:switch(count / Timer % 5) case 0: showDigits(); break;case 1: showDigits(); break;case 2: showFlick(flickThree); break;case 3: showD
22、igits(); break;break;case 9:switch(count / Timer % 6) case 0: showDigits(); break;case 1: showDigits(); break;case 2: showFlick(flickOne); break;case 3: showDigits(); break;case 4: showFlick(flickTwo); break;case 5: showDigits(); break;break;case 10:switch(count / Timer % 8) case 0: showDigits(); break;case 1: showDigits(); break;case 2: showDigits(1 43 58 ); break;case 3: showDigits(); break;case 4: show
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石油批发行业竞争分析考核试卷
- 篷布产业节能减排考核试卷
- 电气设备客户满意度提升考核试卷
- 畜牧业供应链管理与优化考核试卷
- 渔业产品营销渠道开发考试考核试卷
- 护生培训护理安全教育
- 城轨类说课课件
- 2025塑料制品买卖合同模板
- 2025《瑞达地产劳动合同》
- 2025室内墙面涂料施工合同范本2
- 2025年元宇宙+游戏行业新兴热点、发展方向、市场空间调研报告
- 森林管护员面试题及答案
- 2025年高级考评员职业技能等级认定考试题(附答案)
- 培训课件:混凝土结构的施工技术(浇筑、养护)
- “中华传统文化经典研习”任务群下先秦诸子散文教学策略研究
- 2025年高考语文模拟作文导写及点评:社会时钟
- 《护理信息系统》课件
- 单片机技术与应用知到智慧树章节测试课后答案2024年秋甘肃省农垦中等专业学校
- 施工现场平面布置与临时设施、临时道路布置方案
- 建筑施工大型机械设备安全使用与管理培训
- T-CNPPA 3027-2024 药品泡罩包装应用指南
评论
0/150
提交评论