计算机硬件技术基础课程设计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河北工业大学计算机硬件技术基础(MCS-51)2011年课程设计报告一、题目:

广告灯的数字显示(1)

二、问题的提出

简述提出你确定的题目的目的。

(1) 培养学生综合运用所学单片机知识来解决常见的问题的能力。

(2) 熟悉和掌握单片机的内部结构及工作原理。

(3) 掌握单片机的接口技术及相关外围芯片的外特性和控制方法。

(4) 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

(5) 通过编写程序,培养学生严密的逻辑思维能力和修改创新的能力。

三、总体设计

1、分析问题的功能

运用单片机原理知识解决生活中常见的用LED广告灯显示循序,可以有一次点亮,循环闪亮以及共同闪亮等功能。

2、系统总体结构设计

1)硬件设计:

选用8031单片机和TKSMonitor仿真器,通过P1口输出连接八个LED发光二极管由T/CO定时器控制定时。

2)软件设计:程序分为三个部分,分别控制八个LED灯的依次点亮、轮流点亮和全部点亮闪烁五次。

四、详细设计:

1、硬件详细设计:

1)画出电路图;

2)进行硬件资源分配(包括I/O口地址、所用各存储单元的用途)。

P1.0到P1.7依次连接八个LED发光二极管

2、软件详细设计:

功能一,依次点亮,实现方法就是通过逻辑“与”操作改变累加器A的值然后从P1口输出控制灯的点亮。功能二,轮流点亮,通过给再次给累加器A 赋值使其输出只亮一个灯,然后让累加器A的值自身错位循环输出,来控制灯的轮流点亮。

功能三,共同闪亮,依旧是改变累加器A中的值,通过取反操作实现灯的共同亮灭。

3、设计中的主要困难及解决方案

1)困难1:对每个功能进行计时。

解决方案:采用定时器0,方式1,定时50MS中断,软件计数器采用R2,计数10 次。

2)困难2:实现功能模块之间的连接和循环。

解决方案:采用R3计数,功能一需要八次计数,功能二需要八次计数,功能三五次亮灭需要十次计数,之后将R3赋0,将这些程序放入T/C0中断程序中实现循环调用,通过对人R3值的范围划分实现模块的跳转。

三、程序清单

列出.ASM或.LST文件清单。

ORG 8000H

AJMP MAIN

ORG 800BH

AJMP T0S

MAIN: MOV A,#0FEH

MOV SP,#60H

MOV R4,0FFH

MOV TMOD,#01H;采用定时器0,方式1

MOV TH0,#4CH

MOV TL0,#00H;赋定时初值

MOV R2,#00H

MOV R3,#00H

MOV IE,#10000010B;开中断

SETB TR0;开始计时

SJMP $

T0S: MOV TH0,#4CH

MOV TL0,#00H;重新赋初值

INC R2

CJNE R2,#10,NEXT1;计数不足十次跳转NEXT1,实现0.5秒延时

INC R3

CLR C

CJNE R3,#09H,LOOP1;R3不等于9跳转LOOP1

AJMP LOOP2

LOOP1: JNC LOOP2;R3小于9继续进行实现依次点亮

XCH A,R4;保护A中初值

ANL A,R4;由低位向高位依次变0

MOV P1,A

XCH A,R4;换回初值

RL A

AJMP NEXT2

LOOP2: CLR C

CJNE R3,#11H,LOOP3;R3不等于17跳转

MOV A,#00H

AJMP LOOP4

LOOP3: JNC LOOP4;R3小于17继续向下进行轮流点亮

MOV P1,A

RL A;由低位向高位循环

AJMP NEXT2

LOOP4: CLR C

CJNE R3,#1BH,LOOP5

AJMP LOOP6

LOOP5: JNC LOOP6;R3小于27继续向下进行共同点亮

MOV P1,A

CPL A

AJMP NEXT2

LOOP6: MOV R3,#00H;重新赋初值循环

MOV R4,#0FFH

MOV A,#0FEH

NEXT2: MOV R2,#00H

NEXT1: RETI

END

四、调试程序的方法

1)硬件调试方法(确定硬件工作是否正常)

首先从从书中寻找例题连接硬件运行,看硬件工作是否正常。在运行本次实验程序(汇编无错误),看结果是否正确。

2)软件调试方法(如何调试程序的方法)

将所编写的实验程序在Keil 软件中进行编译,看是否有错误出现,根据编译结果,如果出现错误,则根据错误提示修改。修改后再进行编译,如果还不能达到要求的结果,继续进行修改,直到所编写的程序无误。

五、你所设计的程序最终完成的功能

1)说明你编制的程序能完成的功能;

程序运行后,每隔0.5s接在P1 口的8个发光二极管依次点亮0,1,2,3,4,5,6,7,接着8个二极管轮流点亮0,1,2,3,4,5,6,7,然后8个发光二极管全部点亮,闪烁5 次,之后全灭;如此反复循环。

六、对该设计题目有何更完善的方案

1、对自己完成程序进行自我评价。

所有程序语言都是我自己运用课本所学知识编制的,可能存在程序语句繁琐的地方,当然涉及到定时时也没有进行校正,语句标号用的过于一致,功能划分不明显。

2、对课题提出更完善的方案。

(1)实现的功能过于单一,也就是说可以增加LED灯闪亮的不同方式.

(2)对时间控制也可以变化。

(3)可以通过对LED灯的控制实现图案的拼接。

五、收获及心得体会

1、,首先是分析问题、解决问题能力的提高,其次逻辑思维能力的提高,再次还有动手能力、学习能力的提高。

2、通过本次课程设计,我最大收获和心得体会就是自信心的增加,不怕问题有多

相关文档
最新文档