基于单片CPU的8LED显示存储示波器设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

(2013/2014学年第2学期)题目:基于单片CPU的8LED显示存储示波器设计专业通信工程学生姓名倪鑫班级学号B11010425指导教师林建中日期2014.06.01.课程设计II报告1目录第一章任务要求.....................................21.1实验目的.....................................................................................................................................21.2实验环境.....................................................................................................................................21.3课题要求.....................................................................................................................................4第二章整体方案设计.................................62.1整体方案.....................................................................................................................................6第三章功能模块原理.................................73.1AT89C51单片机......................................................................................................................73.2动态显示模块.............................................................................................................................93.3键盘模块...................................................................................................................................10第四章程序代码设计................................11第五章仿真测试....................................15第六章设计小结....................................18课程设计II报告2第一章任务要求1.1实验目的在理论课程的基础上,重点培养动手能力,通过电路设计,理论计算,实际编程,调试,测试,分析查找故障,解决在实际设计中的问题,使设计好的电路能正常工作。通过proteus软件的使用,能够较全面的了解单片机的原理和结构组成,单片机系统的扩展应用,较好的掌握单片机的汇编语言程序设计和硬件结构设计,通过实验了解单片机系统研制中的软件,硬件设计和系统程序调试等的全过程,掌握应用单片机系统设计解决实际问题的方式和方法。巩固单片机的课堂所学。1.2实验环境1.586微型计算机系统2.Proteus7.4sp3软件3.KeilC51软件1.3实验步骤1.点击“Project-NewProject…”菜单,出现一个对话框,要求给将要建立的工程命名,我们选择Atmel公司的89C51芯片如图1.1。点击ATMEL前面的“+”号,展开该层,点击其中的89C51。课程设计II报告3图1.12.点击“File-NewFile”菜单,建立一个新文件,编写程序并保存,文件名后缀为“.c”。此时,在工程窗口的文件页中,出现了“Target1”,点击“+”号展开,可以看到下一层的“SourceGroup1”,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“SourceGroup1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,选中其中的“AddfiletoGroupSourceGroup1”如图1.2所示,出现一个对话框,要求寻找源文件,注意,该对话框下面的“文件类型”默认为Csourcefile(*.c),也就是以C为扩展名的文件。点击“Flash-ConfigureFlashTools…”菜单,设置对话框中的OutPut页面,如图1.3所示,这里面也有多个选择项,其中CreatHexfile用于生成可执行代码文件(可以用编程器写入单片机芯片的hex格式文件,文件的扩展名为.hex),默认情况下该项未被选中,根据实验要求,选中该项,并保存。课程设计II报告4图1.2图1.33.在设置好工程后,即可进行编译、连接如图1.4。选择菜单“Project-Buildtarget”,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码;如果选择RebuildAlltargetfiles将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而Translate….项则仅对该文件进行编译,不进行连接。若编译连接通过则显示如图1.5。图1.4图1.51.4课题要求基本要求:1用数码管或LCD正常显示数字“12345678”。2通过按键可改变显示方式。3设计显示屏的动态效果,用10个按键,每键对应一种滚动技术。发挥部分:1设计所有动作的联合效果。2设计二个变速按键,可多级改变滚动速度。3设计一台魔术电子种,采用自动变换,随机组合,数据每10秒变换一次。动态显示格式:1静止2整体闪烁3单字闪烁课程设计II报告54整体向前、向后滚动5单字移动6两边向中间压缩7中间向两边扩张8上下压缩9上下滚动10组合动作(每一字符执行上述一个动作,并同时运动)课程设计II报告6第二章整体方案设计2.1整体方案根据课题要求,使用7SEG-MPX8-CA,通过按键切换,来达到不同的动态显示效果。课题中的要求是用十种动态效果,对应的分别为“1”:禁止显示,“2”:整体闪烁显示,“3:单字闪烁显示,“4”:整体向前、向后滚动显示,“5”:单字移动显示,“6”:两边向中间压缩显示,“7”:中间向两边扩张显示,“8”:上下压缩显示,“9”:文字上下滚动显示,“10”:组合动作显示。图2.1课程设计II报告7第三章功能模块原理3.1AT89C51单片机(图3.1)P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示。P3口同时为闪烁编程和编程校验接收一些控制信号。课程设计II报告8VCC:供电电压。GND:接地。RST:复位输入。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。/PSEN:外部程序存储器的选通信号。/EA/VPP:当/EA保持低电平时,此间外部程序存储器,不管是否有内部程序存储器。当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。图3.1课程设计II报告93.2动态显示模块图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数码管段选信号小数点表17SEG-MPX8-CA管脚功能课程设计II报告103.3键盘模块4位二进制输入方式,从左向右四个按键,位权分别为0124,接入89C51I/O口P1。当输入二进制数为N时,显示N状态。图3.3课程设计II报告11第四章程序代码设计#includereg51.h#includeintrins.h#includestring.h#defineucharunsignedchar#defineulongunsignedlong#defineuintunsignedint//Delayperiod#defineTimer50char*number;ucharchooseNumber[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};ucharflickOne[]={0x02,0x61,0x43,0x03,0x43,0x63,0x02,0x63};ucharflickTwo[]={0x04,0x4c,0x4c,0x1c,0x58,0x58,0x44,0x5c};ucharflickThree[]={0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40};ucharchooseDigits[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};voiddelay(inti){i*=Timer;while(i--);}uchargetInput(){if(P1!=0xff){delay(2);if(P1!=0xff){return~P1;}}return0;}/***Constantnumberdisplayfunction.*/voidshowDigits(char*number){uchari;for(i=1;i=8;i++){P3=chooseDigits[i];课程设计II报告12if(number[i-1]='9'&&number[i-1]='0'){P2=chooseNumber[number[i-1]-'0'];}

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功