80C51单片机可控流水灯的设计_第1页
80C51单片机可控流水灯的设计_第2页
80C51单片机可控流水灯的设计_第3页
80C51单片机可控流水灯的设计_第4页
80C51单片机可控流水灯的设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、西安文理学院机械电子工程系课程设计任务书学生姓名 王鑫专业班级 电信专业08级2班学 号08101080219指导教师朱继萍 职称 教研室电子信息工程课 程 单片机技术及应用题 目 80C51单片机可控流水灯的设计任务与要求设计任务:使用80C51单片机的P2 口和P3 口控制LED1LED16进行花样显示。显示顺序规律为:16个LED依次左移单个点亮;16个LED依次左移逐个点亮;16个LED依次左移逐个熄灭;从开始再次循环。设计要求:1、利用80C51单片机和74LS373芯片设计硬件电路;2、运用汇编语言编写实现该任务的程序;3、使用Proteus ISIS软件和Keil C51软件进行

2、仿真,验证设计开始日期2011.12.19完成日期 2011.12.302011年12月18 日80C51单片机可控流水灯的设计【设计任务】本设计将使用80C51单片机的P2 口和P3 口控制LED1LED16进行花 样显示。预计显示顺序规律为:16个LED依次左移单个点亮;16个 LED依次左移逐个点亮;16个LED依次左移逐个熄灭;从开始再 次循环。【硬件设计】使用74LS373与单片机连接,进行数据锁存驱动,其连接方法为:由P2 口输出数据,控制2片74LS373以驱动16个LED数码管;P3控制74LS373进行选择与锁存数据在桌面双击图标,打开ISIS 7 Professional窗

3、口。单击菜单命令File” “New Design”,新建一个DEFAULT模板,保存文件名为“80C51单片机可控流水灯.DSN”。执行菜单命令“ System” “Set Sheet Size,在弹出的“ Sheet Size Configura”对话框中选择“ A4”选项,单击“ 0K” 选项,完成图纸的设置。执行菜单命令“Library” “Pick Device/Symbol”, 添加如表1所示的原件。表180C51单片机可控流水灯设计所用元件单片机AT80C51瓷片电容CAP 30pF电阻RES晶振 CRYSTA112MHZ按钮BUTTON电解电容CAP-ELEC74LS373发光

4、二极管LED在ISIS原理图编辑窗口中放置原件,再单击工具箱中的“元件终端” 图标,在对象选择器中单击“ POWER”和“GROUND”放置电源和地。放 置好元件后,布好线。右击各元件,在弹出的菜单中选择“Edit Properties”, 将出现“ Edit Component”对话框,在此对话框中设置元件属性,即相应元 件参数,最后保存,完成电路图的设计,如图1所示。MCC:2011 $1220 H<CT»L1PD.WIMxnizFOUB耳P医mFUTMH科曲囱ALEPZJLCilPI.+LQ甲起拥口 KAAliP2JWBMH加艄DM 1F3-FI2FIJ刀押nMSFiji

5、FG.飘FFITnTiWEP WHWK'i:JWL基邱图180C51单片机可控流水灯设计电路图:B0C5I单片机可磁儡【元件介绍】1、AT80C51单片机输入/输出引脚:(1)P0.0 P0.7(2)P1.0 P1.7(3)P2.0 P2.7(4)P3.0 P3.7(39 脚一32 脚)(1脚一8脚)(26 脚一21 脚)(10 脚一17 脚)VCC( 40脚):主电源+5VRST(9脚):单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位(RESET)XTAL2 (18脚):接外部晶体的另一端。在片内它是一个振荡电路反相 放大器的输

6、出端,振荡电路的频率是晶体振荡频率。若需采用外部时钟电 路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机, 此引脚应悬浮。XTAL1( 19脚):接外部晶体的一端。在片内它是振荡电路反相放大器 的输入端。在采用外部时钟时,对于 HMOS单片机,该端引脚必须接地; 对于CHMOS单片机,此引脚作为驱动端。Vss(20脚):接地PSEN(29脚):在访问片外程序存储器时,此端输出负脉冲作为存储 器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟 周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSE N信号不出现。PSEN端同样可驱动8个LSTTL负

7、载。我们根据PSEN、ALE 和XTAL2输出端是否有信号输出,可以判别 80C51是否在工作。ALE/PROG( 30脚):在访问片外程序存储器时,此端输出负脉冲作为 存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个 时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE 和XTAL2输出端是否有信号输出,可以判别 80C51是否在工作。EA/VPP(31脚):当EA端输入高电平时,CPU从片内程序存储器地 址0000H单元开始执行程序。当地址超出4KB时,将自动执行片外程序存 储

8、器的程序。当EA输入低电平时,CPU仅访问片外程序存储器。在对 87C51EPROM编程时,此引脚用于施加编程电压 VPP。2、74LS373 芯片74LS373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出 的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74LS373 -H- UL 心片。(1) 1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输 入3、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端G)如何, 输出 2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部 呈现高阻状态(或者叫

9、浮空状态);当1脚是低电平时,只要11脚(锁存控制端G)上出现一个下降沿, 输出 2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即 呈现输入脚3、4、7、8、13、14、17、18的状态。锁存端LE由高变低时, 输出端8位信息被锁存,直到LE端再次有效。 当三态门使能信号0E为 低电平时,三态门导通,允许 Q0Q7输出,0E为高电平时,输出悬空。当74LS373用作地址锁存器时,应使 0E为低电平,此时锁存使能端 C为 高电平时,输出Q0Q7状态与输入端D1D7状态相同;当C发生负的跳 变时,输入端D0D7数据锁入Q0Q7。51单片机的

10、ALE信号可以直接与 74LS373的C连接。【程序设计】1、 程序流程利用P3 口进行74LS373的选择与数据锁存,P2 口输出数据控制16个LED 的显示,可以首先建立表格,通过查表方式来实现控制功能,更改表中的 代码就可改变显示效果。程序流程图如图 2所示。开始P3 口设定取表 1地址存入DATR5#YP3 口设定DATR指向表下一地址 驱动 P2 口查表 1进A取表 2地址存入DATRN表1代码是否为结束吗?P3 口设定查表 2进AN二二表2代码是否为结束吗?指向表下一地址 驱动 P2 口取表 3地址存入表3代码是否为结束吗?查表 3进AY指向表下一地址驱动 P2 口N图280C51

11、单片机可控流水灯设计程序流程图2、汇编源程序ORG 0000HMOV P2,#0FFHMOV P3,#0FFHCJNE A,#1BH,LP12MAIN10: MOV DPTR,#TABLE1 ;TABLE 表的地址存入 DPTRMOVP3,#42H;OE=0,允许U1输出;LE=1,允许U1输入LP01: MOVA,#00H;清除累加器MOVCA,A+DPTR ;查表CJNEA,#1BH,LP10;取出的代码不是结束码,则进行下一步操作JMPMAIN11;是结束码,则重新进行操作LP10: MOVP2,A;将A中的值送P2 口,显示LCALLDELAY;等待1sINCDPTR;数据指针加1,指

12、向下一个码JMPLP01;返回,取码MAIN11: MOV DPTR,#TABLE1;TABLE 表的地址存入 DPTRMOVP3,#81H;OE=0,允许U1输出;LE=1,允许U1输入LP11: MOVA,#00H;清除累加器MOVCA,A+DPTR ;查表;取出的代码不是结束码,则进行下一步操作JMPMAIN20;是结束码,则重新进行操作LP12: MOVP2,A;将A中的值送P2 口,显示LCALLDELAY;等待1sINCDPTR;数据指针加1,指向下一个码JMPLP11;返回,取码MAIN20: MOV DPTR,#TABLE2MOVP3,#42HLP20: MOVA,#00HMO

13、VCA,A+DPTRCJNE A,#1BH,LP21JMP MAIN21LP21: MOV P2,ALCALL DELAYINC DPTRJMP LP20MAIN21: MOV DPTR,#TABLE2MOV P3,#80HLP22: MOV A,#00HMOVC A,A+DPTRCJNE A,#1BH,LP23JMP MAIN30LP23: MOV P2,ALCALL DELAYINC DPTRJMP LP22MAIN30: MOV DPTR,#TABLE3MOV P3,#02HLP30: MOV A,#00HMOVC A,A+DPTRCJNE A,#1BH,LP31JMP MAIN31LP

14、31: MOV P2,ALCALL DELAYINC DPTRJMP LP30MAIN31: MOV DPTR,#TABLE3MOV P3,#80HLP32: MOV A,#00HMOVC A,A+DPTRCJNE A,#1BH,LP33JMP MAIN10LP33: MOV P2,ALCALL DELAYINC DPTRJMP LP32DELAY: MOV R7,#10DE1:MOV R6,#200DE2:MOV R5,#124DJNZ R5,$DJNZ R6,DE2DJNZ R7,DE1RETTABLE1: DB 01H,02H,04H,08H,10HDB 20H,40H,80H,1BHR

15、ETTABLE2: DB 01H,03H,07H,0fH,1fHDB 3fH,7fH,0ffH,1BHRETTABLE3: DB 0feH,0fcH,0f8H,0f0H,0e0HDB 0c0H,80H,00H,1BHRETEND【调试与仿真】打开Keil程序,执行菜单命令“Project ” “NewProject ”创建“80C51单片机可控流水灯”项目,并选择单片机型号为AT89C51。执行菜单命令“ File”-“ New”创建文件,输入汇编源程序,保存为“80C51单片机可控流水灯.ASM ”。在Project栏的File项目管理窗口中右击文件组,选择“ Add Files to Gr

16、oup 'Source Group' ,将源程序“ 80C51单片 机可控流水灯.ASM ”添加到项目中。执行菜单命令“ Project ”f“ Options for Target 'Target 1'” ,在弹出的对话框中选择“Output”选项卡,选中“Create HEXFile ”。在“Debug' 选项卡中,选中“ Use:Proteus VSM Simuslator ”。执行菜单命令“ Project ”f“ Build Target ” ,编译源程序。如果编 译成功,则在“ Output Window”窗口中显示没有错误,并创建了“ 80

17、C51 单片机可控流水灯.HEX”文件。在已绘制好原理图的Proteus ISIS菜单栏中,执行菜单命令“ Debug” “ Use Remote Debug Monitor ”将该项选中,使 Proteus 与 Keil 真正连 接起来,使它们联合调试。在 Keil 中执行菜单命令“ Debug' “ Star/Stop Debug Session ”,或直接单机图标 題,进入Keil调试环境。同时,在Proteus ISIS窗口中可看出Proteus 也进入 了程序调试状态。在Keil代码编辑窗口中设置相应断点,断电的设置方法:在需要设置断点语句的 空白处双击鼠标左键,可设置断点;再次双击,可取消该断点。设置好断点后,在 Keil中按F5键运行程序。可看到 16个LED显示顺序规律为: 16个LED依次左移单个点亮;16个LED依次左移逐个点亮;16 个LED依次左移逐个熄灭;从开始再次循环。部分仿真结果如下图3所示。nlHi«!r£ "£!*!9#图3 80C51单片机可控流水灯设计仿真图#【心得体会】通过这次单片机的课程设计,不仅检验了我所学习的知识,也培养了 我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设 计过程中,与同学分工设计,和同学们相互探讨,相互学习,

温馨提示

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

评论

0/150

提交评论