第一篇:单片机课程设计led流水灯设计报告(精)
目 录
一、前 言 „„„„„„„„„„„„„„„„„„„„„„„(1 1.1课题简介 „„„„„„„„„„„„„„„„„„„„„„(1 1.2设计目的 „„„„„„„„„„„„„„„„„„„„„„„(1
二、总体设计 „„„„„„„„„„„„„„„„„„„„„„„(2 2.1设计思路 „„„„„„„„„„„„„„„„„„„„„„„(2 2.2原件清单 „„„„„„„„„„„„„„„„„„„„„„„(2
三、硬件设计 „„„„„„„„„„„„„„„„„„„„„„„(3 3.1AT89C51„„„„„„„„„„„„„„„„„„„„„„„(3 3.2系统框图 „„„„„„„„„„„„„„„„„„„„„„„(5 3.3程序框图 „„„„„„„„„„„„„„„„„„„„„„„(5
四、软件设计 „„„„„„„„„„„„„„„„„„„„„„„(5 4.1硬件设计 „„„„„„„„„„„„„„„„„„„„„„„(6 4.2单片机时钟电 „„„„„„„„„„„„„„„„„„„„„(6 4.3复位电路 „„„„„„„„„„„„„„„„„„„„„„„(6 4.4控制电路 „„„„„„„„„„„„„„„„„„„„„„„(7 4.5工作电路 „„„„„„„„„„„„„„„„„„„„„„„(7
五、软件调试 „„„„„„„„„„„„„„„„„„„„„„„(8 5.1设计要求 „„„„„„„„„„„„„„„„„„„„„„„(8 5.2软件的流程图 „„„„„„„„„„„„„„„„„„„„„(9 5.3程序设计 „„„„„„„„„„„„„„„„„„„„„„„(9
六、软件调试 „„„„„„„„„„„„„„„„„„„„„„„(11
七、心得体会 „„„„„„„„„„„„„„„„„„„„„„„(12
八、参考文献 „„„„„„„„„„„„„„„„„„„„„„„(13 第一章 前言 1.1 课题简介
单片机全称叫单片微型计算机(Single Chip Microcomputer , 是一种集成在电路芯 片, 是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU 随机存储器 RAM、只读存储器 ROM、多种 I/O口和中断系统、定时器 /计时器等功能(可能还包括 显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路集成到一块硅 片上构成的一个小而完善的计算机系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置, 飞机上各种仪表的控制, 计算机的网络通讯与数据传输, 工业自动 化过程的实时控制和数据处理,广泛使用的各种智能 IC 卡,民用豪华轿车的
安全保 障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这 些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种 智能机械了。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设 备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上 的应用 :, 例如精密的测量设备 2.在工业控制中的应用 :用单片机可以构成形式 多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3.在家用电器中的应用可从手 机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工 作中随处可见的移动电话,集群移动通信,无线电对讲机等。5.单片机在医用设备 领域中的应用 :例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫 系统等等。6.在各种大型电器中的模块化应用 :如音乐集成单片机, 看似简单的功 能,微缩在纯电子芯片中(有别于磁带机的原理 ,就需要复杂的类似于计算机的原 理。
本设计着重在于分析计算器软件和开发过程中的环节和步骤, 并从实践经验出发对计 算器设计做了详细的分析和研究。本系统就是充分利用了 8051芯片的 I/O引脚。系 统以采用 MCS-51系列单片机 Intel8051为中心器件来设计 LED 流水灯系统,实现 8个 LED 霓虹灯的左、右循环显示,并实现循环的速度可调。
1.2 设计目的
1.学习基本理论在实践中综合运用的初步经验, 掌握电路设计的基本方法、设计步骤, 培养综合设计与调试能力。
2.掌握汇编语言程序设计方法。
3.培养实践技能,提高分析和解决实际问题的能力。1.3 设计任务及要求
1.彩灯用 8个发光二极管代替。
2.电路具有控制彩灯点亮右移、左移、全亮及全灭等功能(用按键切换彩灯状态
3、彩灯两点移动时间间隔为 0.5秒。二、总体设计思路 2.1设计思路
本课题使用 AT89C51单片机时无须外扩存储器。因此, 本流水灯实际上就是一个 带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源 等电路和必要的软件组成的单个单片机。
如果要让接在 P1.0口的 LED1亮起来,那么只要把 P1.0口的电平变为低电平就 可以了;相反, 如果要接在 P1.0口的 LED1熄灭, 就要把 P1.0口的电平变为高电平;同理,接在 P1.1~P1.7口的其他 7个 LED 的点亮和熄灭的方法同 LED1。因此,要实 现流水灯功能,我们只要将发光二极管 LED1~LED8依次点亮、熄灭, 8只 LED 灯便 会一亮一暗的做流水灯了。同样的道理,可以让 8个灯左移点亮,全亮、全灭。在此我们还应注意一点, 由于人眼的视觉暂留效应以及单片机执行每条指令的时 间很短, 我们在控制二极管亮灭的时候应该延时一段时间, 否则我们就看不到 “流水” 效果了。
在此基础上, 增加外扩设备, 利用 74LS373和 8255扩展成 24个 LED 灯循环显示。2.2.原件清单
三、硬件设计 3.1AT89C51 1.芯片由 UNTITLED — ISISPROFESSIONAL 实验系统提供(AT89C51 1主要特性: 与 MCS-51兼容
4K字节可编程闪烁存储器 寿命:1000写 /擦循环 数据保留时间:10年 全静态工作:0Hz — 24Hz
三级程序存储器锁定 128*8位内部 RAM 32可编程 I/O线 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内震荡器和时钟电路 2管脚说明: ① 电 源 引 脚
Vcc(40脚 :典 型 值 +5V。Vss(20脚 :接 低 电平。② 外 部 晶 振
XTAL1、XTAL2分 别 与 晶 振 两 端 相 连 接。③ 输 入 输 出 口 引 脚 : P0口 :I/O双 向 口。作 输 入 口 时 , 应 先 软 件 置 “ 1”。P1口 :I/O双 向 口。作 输 入 口 时 , 应 先 软 件 置 “ 1”。P2口 :I/O双 向 口。作 输 入 口 时 , 应 先 软 件 置 “ 1”。P3口 :I/O双 向 口。作 输 入 口 时 , 应 先 软 件 置 “ 1”。④ 控 制 引 脚 : RST、ALE/-PROG、-PSEN、-EA/Vpp组 成 了 MSC-51的 控 制 总 线。
RST(9脚 :复 位 信 号 输 入 端(高 电平有 效。ALE/-PROG(30脚 :地 址 锁 存 信 号 输 出 端。
第 二 功 能 :编 程 脉 冲 输 入。
-PSEN(29脚 :外 部 程 序 存 储 器 读 选 通 信 号。-EA/Vpp(31脚 :外 部 程 序 存 储 器 使 能 端。第 二 功 能 :编 程 电 压 输 入 端(+21V。3 AT89C51单 片 机 的 P 口 特 点 : P0口 :是 一 个 8位 漏 极 开 路 输 出 型 双 向 I/O端 口。作 为 输 出 端 口 时 ,每 位 能 以 吸 收 电 流 的 方 式 驱 动 8 个 TTL 输 入 ,对 端 口 写 1时 , 又 可 作 高 阻 抗 输 入 端 用。在 访 问 外 部 程 序 或 数 据 存 储 器 时 , 它 是 时 分 多 路 转 换 的 地 址(低 8位 /数 据 总 线 , 在 访 问 期 间 将 激 活 内 部 的 上 拉 电 阻。
P1口 :P1口 是 一 个 带 有 内 部 上 拉 电 阻 的 8位 双 向 I/O端 口。P1口 的 输 出 缓 冲 器 可 驱 动(吸 收 或 输 出 电 流 方 式 4个 TTL 输 入。对 端 口 写 1时 , 通 过 内 部 的 上 拉 电 阻 把 端 口 拉 到 高 电 位 , 这 时 可 作 输 入 口。P2口 作 输 入 口 使 用 时 , 因 为 内 部 有 上 拉 电 阻 , 那 些 被 外 部 信 号 拉 低 的 引 脚 会 输 出 一 个 电 流(Iil。
P2口 :P2口 是 一 个 带 有 内 部 上 拉 电 阻 的 8位 双 向 I/O端 口。P2口 的 输 出 缓 冲 器 可 驱 动(吸 收 或 输 出 电 流 方 式 4个 TTL 输 入。对 端 口 写 1时 , 通 过 内 部 的 上 拉 电 阻 把 端 口 拉 到 高 电 位 , 这 时 可 作 输 入 口。P2口 作 输 入 口 使 用 时 , 因 为 内 部 有 上 拉 电 阻 , 那 些 被 外 部 信 号 拉 低 的 引 脚 会 输 出 一 个 电 流(Iil。在 访 问 外 部 程 序 存 储 器 时 和 16位 外 部 地 址 的 外 部 数 据 存 储 器(如 执 行 MOVX @DPTR 时 , P2口 送 出 高 8位 地 址。在 访 问 8位 地 址 的 外 部 数 据 存 储 器(如 执 行 MOVX @RI 时 , P2口 引 脚 上 的 内 容
(就 是 专 用 寄 存 器(SFR区 中 的 P2寄 存 器 的 内 容 , 在 整 个 访 问 期 间 不 会 改 变。
P3口 :P3口 是 一 个 带 有 内 部 上 拉 电 阻 的 8位 双 向 I/O端 口。P3口 的 输 出 缓 冲 器 可 驱 动(吸 收 或 输 出 电 流 方 式 4个 TTL 输 入。对 端 口 写 1时 , 通 过 内 部 的 上 拉 电 阻 把 端 口 拉 到 高 电 位 , 这 时 可 作 输 入 口。P3口 作 输 入 口 使 用 时 , 因 为 内 部 有 上 拉 电 阻 , 那 些 被 外 部 信 号 拉 低 的 引 脚 会 输 出 一 个 电 流(Iil。
(2 排 阻 的 作 用
所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起, 作为公共引脚。其余引脚正常引出。所以如果一个排阻是由 n 个电阻构成的, 那么它就有 n+1只引脚,一般来说,最左边的那个是公共引脚。它在排阻上一 般用一个色点标出来。排阻一般应用在数字电路上,比如:作为某个并行口的 上拉或者下拉电阻用。使用排阻比用若干只固定电阻更方便。
3.2、系统框图
图 1 3.3、程序框图
四、设计步骤 4.1硬件设计
硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输
入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件 的芯片, 在实际应用中, 通常很难直接和被控对象进行电气连接, 必须外加各种扩展 接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用
系统。本设 计选用以 AT89S51单片机为主控单元。显示部分:8个 LED 灯循环亮灭。
4.2单片机时钟电路
时钟电路用于产生单片机工作所需要的时钟信号, 单片机本身就是一个复杂的同步 时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严 格地按时序进行工作。
在 MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚 X1,输出端为 引脚 X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了 一个稳定的自激振荡器。此电路采用 12MHz 的石英晶体。时钟电路如下图:
图 2 4.3复位电路
电阻的作用是用于上电复位的, VCC 以上电,由于电容两端电压不能突变,所 以 RST 上为高电平,然后电容放电, RST 就为低电平了,还可以用手动复位,此 电路应用自动复位。
图 3 4.4控制电路
控制电路用于控制工作电路的工作情况,根据要求来控制电路,本电路的控制电路 用来控制流水灯的工作情况,当按下1、2、3、4各个开关时,电路具有左移、右 移、全亮、全没的功能,具体的控制电路如下:
图 4 4.5工作电路 工作电路就是根据总的电路的指令, 来反应工作情况。本电路的流水灯电路具体 的如下:
图 5 2根据各个模块的功能及他们的信号传输,连接电路如下: 图 6
五、软件设计 5.1设计要求
本系统的功能就时实现流水灯的循环点亮,主要有四个功能,第一,按下第一个 按钮, 彩灯向上点亮循环, 按下第二个, 彩灯向下循环点亮, 按下第三个, 彩灯全亮, 按下第四个, 彩灯全灭。彩灯用 8个发光二极管代替。电路具有的控制彩灯点亮右移、左移、全亮及全灭的功能用按键切换彩灯状态,彩灯两点移动时间间隔为 0.5秒。
5.2、软件的流程图 : 图 7 5.3、程序设计
ORG 0000H;单片机上电后从 00000H 地址执行 AJMP START;跳转到主程序存放地指出
ORG 0030H;设置主程序开始地址
START: MOV SP,#60H;设置堆栈起始地址为 60H MOV DPTR,#TAB;把 TAB 表首地址送入 DPTR START1: JNB P0.0,LOOP1;判断 P0.0处开关是否闭合
JNB P0.1,LOOP2;判断 P0.1处开关是否闭合
JNB P0.2,LOOP3;判断 P0.2处开关是否闭合 JNB P0.3,LOOP4;判断 P0.3处开关是否闭合
AJMP START1;如果没有开关闭合重新检测 LOOP1: CLR A;累加器清零
河北建筑工程学院 单片机原理及应用课程设计 MOVC CJNE: A,@A+DPTR;取数值表中的数 A,#11111111B,SHOW1;检查左移结束标志 AJMP START;左移结束重新检测开关状态;将数据送到 P1 口;调用延时子程序;取数据表指针指向下一数据;继续查表取数据;设定累加器的初始值 SHOW1: MOV P1,A ACALL DELAY INC DPTR AJMP LOOP1 LOOP2: MOV A,#09H MOVC A,@A+DPTR;取数值表中的数 CJNE A,#00000000B,SHOW2;检查右移结束标志 AJMP START SHOW2: MOV P1,A ACALL DELAY INC DPTR AJMP LOOP2 LOOP3: MOV A,#08H;右移结束重新检查开关状态;将数据送到 P1 口;调用延时子程序;取数据表指针指向下一数据;继续查表取数据;设定累加器初始值 MOVC A,@A+DPTR;取数值表中的数 MOV P1,A AJMP START LOOP4: MOV A,#11H;将数据送到 P1 口;全灭结束重新检测开
关状态;设定累加器初始值 MOVC A,@A+DPTR;取数值表中的数 MOV P1,A AJMP START DELAY: MOV R0,#10 D0: D1: MOV R1,#200 MOV R2,#123 NOP D2: DJNZ R2,D2 DJNZ R1,D1 DJNZ R0,D0 10;将数据送到 P1 口;全灭结束重新检测开关状态;延时一段时间
河北建筑工程学院 单片机原理及应用课程设计 RET TAB: DB 11111110B DB 11111101B DB 11111011B DB 11110111B DB 11101111B DB 11011111B DB 10111111B DB 01111111B DB 11111111B DB 01111111B DB 10111111B DB 11011111B DB 11101111B DB 11110111B DB 11111011B DB 11111101B DB 11111110B DB 00000000B END;子程序返回;程序结束
六、软件调试 软件调试一般分为以下四个阶段:
1、编写程序并查错;
2、在汇编语言的编译系 统中编译源程序
3、对程序进行编译连接,并及时发现程序中存在的错误;
4、改正 错误。在软件调试过程中,对出现的错误进行了认真的分析和修改,多次调试成功后,能够很好的达到既定的设计效果。此系统可以改进为可以通过对开关的调节来控制流水灯电路具有控制彩灯点亮右 11 河北建筑工程学院 单片机原理及应用课程设计 移、左移、全亮及全灭等功。
七、心得体会 经过一段时间的努力,我们顺利的完成了这次单片机课设。这是一个磨练意志的 过程。从课题的选择开始,计算器的设计、硬件和软件系统的设计、到最后的 Proteus 软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大 的锻炼。一方面通过 C51 单片机等一些器件的设计让我学习和掌握了单片机技术的基 础知识和技术要点,也使以前学的很多知识都得到了运用;另一方面在用 Proteus 软 件画电路图时,然后再转换成一维的 WORD 中进行编辑,这个过程中让我掌握了计算机 辅助的设计技术。当然,这是一个需要不断的尝试,不断的校核,不断的修改,最后 完成一个合理的设计的过程。需要的是细心和耐心。在很大程度上培养了我拼搏的工 作精神。使我受益匪浅,更加明确了自己专业的方向。通过本次课设,我不仅学到了关于单片机技术方面的许多专业知识,同时也让我 感觉到团队合作的重要性。其实如何有效和快速的找到资料也是课设给我的启发,利 用好图书馆和网络,是资源的到最好的利用。与他
人交流思想是取得成功的关键,在 交流中,不仅强化了自己原有的知识体系,也扩展了自己的思维。课设是一个通过思 考、发问、自己解惑并动手、提高的过程。我会在以后的学习中不断学习,积累经验,完善自己。对于这次单片机课程设计不仅巩固了以前所学过的知识,而且学到了很多在书本 上没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过 这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够 的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的 实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,例如 对以前所学过的知识理解得不够深刻,掌握得不够牢固,学习了单片机 C 语言。这里我要感谢实验室的指导老师,没有老师的细致讲解和耐心的检查,也就没有 我的计算器出来,非常感谢!12 河北建筑工程学院 单片机原理及应用课程设计
八、参考文献 [1]徐爱钧.智能化测量控制仪表原理与设计(第二版).北京航天航空大学出版 社,2004.9 [2]杨恢先 黄辉先著.单片机原理与应用.人民邮电出版,2009.7 [3]朱定华著.单片机原理与接口技术.电子工业出版社,2001.4 [4]王威著.HCS12 微控制器原理及应用.北京航空航天大学出版社,2007.10 [5]龚运新著.单片机 C 语言开发技术.北京清华大学出版社,2006.10 [6]胡洪波著.单片机原理与应用实验教程.湘潭大学出版社,2009.7 [7]《单片机原理及其接口技术》 胡汉才 编著 北京:清华大学出版社 [8]《MCS-51 单片机原理及应用》张毅刚 编著 哈尔滨:哈尔滨工业大学出版社 [9] 《51 单片机 C 语言应用程序设计 实例精讲》(第二版)戴佳 刘博文 编著 电 子工业出版社 13
第二篇:单片机流水灯课程设计
单片机原理及系统课程设计报告
基于AT89C51单片机的流水灯 引言
1.1 课题简介
单片机全称叫单片微型计算机(Single Chip Microcomputer),是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:在智能仪器仪表上的应用,例如精密的测量设备;在工业控制中的应用,用单片机可以构成形式多样的控制系统、数据采集系统,例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等;在家用电器中的应用可从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。单片机在医用设备领域中的应用,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等;在各种大型电器中的模块化应用,如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。
本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。本系统就是充分利用了8051芯片的I/O引脚。系统以采用MCS-51系列单片机Intel8051为中心器件来设计LED流水灯系统,实现8个LED霓虹灯的左、右循环显示,并实现循环的速度可调。
1.2 设计目的
(1)学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。
单片机原理及系统课程设计报告
(2)掌握汇编语言程序设计方法。
(3)培养实践技能,提高分析和解决实际问题的能力。
1.3 设计任务及要求
(1)彩灯用8个发光二极管代替。
(2)电路具有控制彩灯点亮右移、左移、全亮及全灭等功能。(3)彩灯两点移动时间间隔为0.5秒。总体设计思路
2.1设计思路
本课题使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。同样的道理,可以让8个灯左移点亮,全亮、全灭。
在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
2.2 系统结构框图
系统机构框图如图1所示。
开关输入AT89C51单片机图1 系统结构框图
流水灯样式 2.3 系统程序流程图
系统程序总流程图如图2所示。
单片机原理及系统课程设计报告
开始读入四个开关的状态否判断开关状态灯左移点亮灯右移点亮灯全亮灯全灭灯流动运行或全亮全灭结束
图2 系统框图 设计步骤
3.1硬件设计
硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电
单片机原理及系统课程设计报告
路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。本设计选用以AT89S51单片机为主控单元。显示部分:8个LED灯循环亮灭。
3.2单片机时钟电路
时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。
在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。此电路采用12MHz的石英晶体。时钟电路如图3所示。
图3 时钟电路图
3.3复位电路
电阻的作用是用于上电复位的,VCC以上电,由于电容两端电压不能突变,所以RST上为高电平,然后电容放电,RST就为低电平了,还可以用手动复位,此电路应用自动复位。复位电路如图4所示。
图4 复位电路图
3.4控制电路
控制电路用于控制工作电路的工作情况,根据要求来控制电路,本电路的控制电路用来控制流水灯的工作情况,当按下1、2、3、4各个开关时,电路具有左移、右移、全亮、全没的功能,具体的控制电路如图5所示。
单片机原理及系统课程设计报告
图5 开关电路图
3.5工作电路
(1)工作电路就是根据总的电路的指令,来反应工作情况。本电路的流水灯电路具体的如图6所示。
图6 流水灯电路图
单片机原理及系统课程设计报告
(2)根据各个模块的功能及他们的信号传输,连接电路如图7所示。
图7 整体电路图 软件设计
4.1设计要求
本系统的功能就时实现流水灯的循环点亮,主要有四个功能,第一,按下第一个按钮,彩灯向上点亮循环,按下第二个,彩灯向下循环点亮,按下第三个,彩灯全灭,按下第四个,彩灯全亮。彩灯用8个发光二极管代替。电路具有的控制彩灯点亮右移、左移、全亮及全灭的功能用按键切换彩灯状态,彩灯两点移动时间间隔为0.5秒。
4.2源程序见附录Ⅰ
单片机原理及系统课程设计报告 软件调试
软件调试一般分为以下四个阶段:
1、编写程序并查错;
2、在汇编语言的编译系统中编译源程序
3、对程序进行编译连接,并及时发现程序中存在的错误;
4、改正错误。
在软件调试过程中,对出现的错误进行了认真的分析和修改,多次调试成功后,能够很好的达到既定的设计效果。
此系统可以改进为可以通过对开关的调节来控制流水灯电路具有控制彩灯点亮右移、左移、全亮及全灭等功。心得体会
经过一段时间的努力,我们顺利的完成了这次单片机课设。这是一个磨练意志的过程。从课题的选择开始,计算器的设计、硬件和软件系统的设计、到最后的Proteus软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。一方面通过C51单片机等一些器件的设计让我学习和掌握了单片机技术的基础知识和技术要点,也使以前学的很多知识都得到了运用;另一方面在用Proteus软件画电路图时,然后再转换成一维的WORD中进行编辑,这个过程中让我掌握了计算机辅助的设计技术。当然,这是一个需要不断的尝试,不断的校核,不断的修改,最后完成一个合理的设计的过程。需要的是细心和耐心。在很大程度上培养了我拼搏的工作精神。使我受益匪浅,更加明确了自己专业的方向。
通过本次课设,我不仅学到了关于单片机技术方面的许多专业知识,同时也让我感觉到团队合作的重要性。其实如何有效和快速的找到资料也是课设给我的启发,利用好图书馆和网络,是资源的到最好的利用。与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系,也扩展了自己的思维。课设是一个通过思考、发问、自己解惑并动手、提高的过程。我会在以后的学习中不断学习,积累经验,完善自己。
对于这次单片机课程设计不仅巩固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,例如对以前所学过的知识理解得不够深刻,掌握得不够牢固,学习了单片机汇编语言。
单片机原理及系统课程设计报告
参考文献
[1] 王思明,张金敏,苟军年等著.单片机原理及应用系统设计.北京:科学出版社,2012 [2] 谭浩强著.C程序设计(第四版).北京:清华大学出版社,2010 [3] 冯博琴,吴宁著.微型计算机原理与接口技术(第3版).北京:清华大学出版社,2011
单片机原理及系统课程设计报告
附 录Ⅰ
源程序:
START:
START1:
LOOP1:
CJNE:
SHOW1:
LOOP2:
SHOW2:
LOOP3:
LOOP4:
DELAY: D0: D1:
D2:
ORG 0000H
AJMP START
ORG 0030H
MOV SP,#60H
MOV DPTR,#TAB
JNB P0.0,LOOP1 JNB P0.1,LOOP2 JNB P0.2,LOOP3 JNB P0.3,LOOP4 AJMP START1
CLR A
MOVC A,@A+DPTR A,#11111111B,SHOW1 AJMP START
MOV P1,A
ACALL DELAY
INC DPTR
AJMP LOOP1
MOV A,#09H
MOVC A,@A+DPTR
CJNE A,#00000000B,SHOW2 AJMP START
MOV P1,A
ACALL DELAY
INC DPTR
AJMP LOOP2
MOV A,#08H
MOVC A,@A+DPTR MOV P1,A
AJMP START
MOV A,#11H
MOVC A,@A+DPTR MOV P1,A
AJMP START
MOV R0,#10
MOV R1,#200 MOV R2,#123 NOP DJNZ R2,D2 DJNZ R1,D1 DJNZ R0,D0
单片机原理及系统课程设计报告
RET TAB:
DB 11111110B DB 11111101B DB 11111011B DB 11110111B DB 11101111B DB 11011111B DB 10111111B DB 01111111B DB 11111111B DB 01111111B DB 10111111B DB 11011111B DB 11101111B DB 11110111B DB 11111011B DB 11111101B DB 11111110B DB 00000000B
END
第三篇:EDA课程设计流水灯设计
EDA课程实践报告
基于verilog的流水灯设计
学院:物理与电气工程学院 专业:11级电子信息工程
姓名:蒋美菊
学号:111102088
基于verilog的流水灯设计
一、摘要
随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。随着技术市场与人才市场对EDA的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。因此学好EDA技术对我们有很大的益处。EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。
流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。
课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。在此过程中培养从事设计工作的整体观念。
课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面: ·独立工作能力和创造力。
·综合运用专业及基础知识,解决实际工程技术问题的能力。·查阅图书资料、产品手册和各种工具书的能力。·写技术报告和编制技术资料的能力。·实际动手能力。
利用学到的电子技术知识,通过布置具有一定难度的设计题目,帮助学生熟悉课程设计任务和设计方法。
二、设计目的
1,学习使用EDA集成设计软件Quartus II,电路描述,综合,模拟过程。2,了解基于EDA应用系统的设计方法。
3,掌握使用EDA工具设计流水灯的设计思路和设计方法
4,熟练使用Quartus II对实验程序进行改错,调试以及演示现象。5,帮助学生养成良好的实验习惯。
三、设计流程
(1)此次实验要求我们通过学习的EDA课程,来编制Verilog程序,以及使用这些程序代码来显示我们所要求的结果。流水灯设计是由八只LED显示灯来实现的,通过程序代码来控制这八只灯的亮灭,在实验初期,我们首先得编程序,通过我们上课所学的基础知识,再结合近段时间去图书馆查阅的有关参考书籍,以及网上所搜索的相关知识,我们小组共同完成了程序的编制,程序代码在下面有详细介绍。
(2)其次,我们需要掌握Quartus II的用法,因为要求的现象是通过这个软件实现的,在EDA实验课程中老师有详细介绍Quartus II的使用方法,所以在这一阶段对我们来说也比较得心应手,安装,调试,然后将编好的程序输入,在此过程中我们遇到了点小困难,显示程序有错误,但是通过我们集体的努力,终于发现,是因为在操作时,我们应该先创建自己的文件夹,然后统一存放在一起,而我们存放的地方有误,所以显示不出我们所输入的代码。
(3)当所有的程序输入无误后,我们要为每个器件设置管脚,因为这些在实验课上老师有说过,而且管脚号也已告诉我们,只需查询便可,所以这一阶段应该说也挺简单的。
(4)当所有的这一切准备工作做完后就是该演示现象了,这是最关键的一步,因为实验教材有限,所以不能保证我们每位同学都来演示,我们一组人中只需一个代表将我们的程序整理一下,然后演示一遍,8只LED显示灯能被控制其亮灭,会显示像流水一样的灯光。那么我们便可以通过这次的课程设计了,在此过程中,我们每个人的任务不同,我虽然没有亲手去调试,但是我也了解它的运作。(5)设计报告也是我们课程设计的最后一步了,说白了就是将我们这一周所干的事情总结一下,从开始使用Verilog编程序,在Quartus II输入程序,及改正错误,调试,运行,显示现象。这所有的东西详细的说明。那么这次的课程设
计就圆满结束。
四、流水灯设计程序
module Verilog1(LED,CLK,reset);output[7:0] LED;input CLK,reset;reg [7:0] LED;reg [24:0] counter;initial LED=8'b11111111;always@(posedge CLK)begin counter<=counter+1;if(counter==25'b1_0111_1101_0111_1000_0100_0000)//25M // 1_0111_1101_0111_1000_0100_0000 begin LED<=LED<<1;counter<=0;if(LED==8'b0000000)LED<=8'b11111111;end end endmodule
五、流水灯设计管脚分配
六、设计注意事项
在编写程序时,注意格式以及拼写是否正确,因为Quartus II要求的程序代码也是很严格的,所以没有扎实的Verilog编程基础,也很难得到所要求的程序。其次在保存程序时,我们要建立自己的文件夹来存放所编的程序,以防止运行时和其他程序的混乱导致错误。
在管脚分配这块,我们要注意查找每个器件的标号,然后准确输入进去,可以使用文本编辑工具打开QuickSOPC管脚分配.txt文件,将# Pin & Location Assignments段拷贝并替代用户QuartusII工程文件夹下的*.qsf文件中的相同段。当然,用户也可以直接在该文件中修改管脚的配置,这比在Quartus II中逐一分配管脚效率要高。当只使用部分管脚时,可以只拷贝用到的管脚分配,当然,也可以全部拷贝,没有使用的管脚不会影响设计。
七、课程设计总结
两个月的电子设计技术(EDA)课程已经结束,在这验收学习成果的一星期内,通过对流水灯的制作,清楚地看到了自己在EDA方面知识的薄弱,各个知识点没有联会贯穿,EDA基础知识的掌握也不够牢固。
在做此课件的过程中,充分体会到了实际操作的重要性。如果没有同学的指点,可能自己会在一些地方打转弯,浪费掉很多时间。通过这次课程设计,可以很好的把各个章节的模块融合到一起,对以后的学习,设计很有帮助。经过这次的课程设计,让我感觉自己在动手操作方面有质上的飞跃。再加上前几次的课程设计所积淀下来的经验,以及老师悉心的指导,有力地指导了这次课程设计的进行,提高了这次课程设计任务的质量和速度,进一步地增强了自己完成任务的能力,巩固了所学的理论知识。完成课程设计的质量明显提高。几个人集体完成任务,必然存在弊端的,尤其体现在合作的分工不明确和对任务的消极怠工。这次课程设计要求五人一组,一个中心,但需要融入自己的思想在里面,这也在一定程度上摆脱了依赖和消极怠工的现象。使我们独立完成任务能力增强。
所有的专业课实验,以及这次的课程设计,无不有力地证明了基础知识的重要性,无不在提醒自己,要重视对基础知识的学习。通过这次的实验,理解了电子技术设计的设计方法和流程,夯实了QuartusII的操作流程。很显然,任何的实践活动,都不可能闭门造车,是必须去吸取前人的实践经验,这就要求在课程
设计的过程中,从网络上,从图书馆,借寻相关资料书籍等,有力地指导课程设计。进一步认清了毕业走向。增强了搜索资料的能力。通过这次的课程设计,就直接指明了一条出路,那就是学习如何通过EDA只是设计一些器件。这就要求在最后的大学时间里,要继续夯实相关的理论知识,继续多动手操作,提高具体的实践操作能力,为即将毕业的工作出路,做好充分的准备。对这次课程设计的建议。
整个的课程设计的过程中,老师的悉心指导对我们是大有裨益的,对老师表示感谢。还有同学之间的互相帮助,也进一步增进了我们的友谊,所以说这次的课程设计真的让我获益匪浅。
八、参考文献
《EDA技术实用教程》,潘松、黄继业,科学出版社,2001.7 《CPLD系统设计技术入门与应用》,黄正瑾等著,电子工业出版社 《电子设计自动化(EDA)手册》,王丹、童如松,电子工业出版社 《可编程逻辑器件与EDA技术》李景华,杜玉远.东北大学出版社,2000 《FPGA系统设计与实践》陈琼,潘礼. 电子工业出版社,2005
第四篇:微课教学设计--利用单片机控制流水灯
微课教学设计--利用单片机控制流水灯
【教学背景】
单片机原理及应用是电子信息工程以及其他电类专业必修的一门重要专业课程。该课程以MCS-51系列单片机为例,讲述单片机的内部结构、工作原理及应用。
通过本课程的学习,使学生掌握单片机的基本理论和分析问题的方法,培养其应用单片机解决实际问题的能力。I/O口是单片机内部重要的硬件资源之一,也是单片机最为基础的部分。本次微课通过“流水灯”这样一个生动的制作实例,使学生掌握51单片机I/O口的使用控制方法,其包括硬件设计和软件设计两部分。此实例可以大大激发学生学习单片机的兴趣,为后续学习打下良好的基础。【教学目标】
使学生掌握LED发光二极管的单向导电原理和使用方法,巩固之前在模拟电子线路这门课中所学知识;使学生掌握利用51单片机的I/O口控制LED发光二极管的原理和方法;使学生回顾之前所学的指令系统,初步掌握利用汇编语言编写实际工程例程的能力;初步培养学生利用单片机技术解决生活中实际问题的能力。【教学重点】
(1)利用I/O口控制LED发光二极管的硬件设计;(2)“流水灯”的软件设计。【教学难点】
(1)LED发光二极管必须采用低电平驱动的原因;(2)“流水灯”流水功能的软件实现。【教学方法】(1)项目教学法
利用一个实际生活中的例子(流水灯),讲解51单片机I/O口的使用控制方法。由于此实例趣味性较高,可以大大激发学生学习单片机的兴趣,提高他们的学习积极性,并使学生初步了解单片机在实际应用中的作用。
(2)启发教学法在课堂教学中,对于学习难点,教师设计问题,通过提问方式,引导学生思考问题,吸引其注意力,使其自己找到问题的答案,激发其学习兴趣。【教学进程】
1、发光二极管的介绍(30秒)
2、LED装饰品的介绍并演示学生作品视频(1分钟)
3、“流水灯”流水要求介绍(40秒)
4、流水灯硬件电路设计(5分30秒)
5、流水灯软件设计思想(4分钟)
6、流水灯软件设计流程图(50秒)
7、流水灯软件程序讲解(3分钟)
8、实物演示(25秒)
9、课后思考题(35秒)【教学内容】
1、发光二极管的介绍
指出发光二极管是本次课程主要用到的元器件,简单介绍其技术指标(如图1)。
图1 发光二极管主要技术指标介绍
2、LED装饰品介绍
指出现在有很多装饰品是由多个LED组成,通过控制LED的亮灭形成一幅幅图案(如图2),以达到美观的效果。同时播放由我校学生自主设计的作品视频,让学生直观感受到炫目的效果,并引出这次课的主题──利用单片机控制流水灯。
图2 LED装饰品
3、明确“流水灯”设计要求
指出具体的流水要求(如图3)。
图3 流水要求
4、流水灯硬件电路设计
明确发光二极管在51单片机中采用的驱动方式(低电平驱动(如图4)),并提问能否采用高电平驱动,给出相应的硬件电路图(如图5)并说明不能驱动的原因,最后给出限流电阻的计算方法(如图6)。
图4 发光二极管的驱动方式
图5 发光二极管高电平驱动电路图
图6 限流电阻计算方法
5、软件设计思想
把软件程序中几个比较关键的地方提出来设置成问题,引发学生思考,并给出关键指令(如图7)。
图7 几个关键问题
6、软件流程图
在具体程序之前给出软件流程图,明确整个软件设计的流程(如图8)。
图8 软件流程图
7、软件设计程序软件设计程序(如图9)在用PPT播放时不是同时给出,而是按照软件流程图的顺序(P1口赋初值点亮第一个灯→调用延时子程序→P1口左环移→循环)分步给出,让学生进一步理清程序设计的脉络。
图9 软件设计程序
8、实物演示将上述程序下载到单片机中,实物演示效果,让学生有最直观的感受。
9、思考题
围绕本次课程,给出两道思考题,启发学生思考,使学生能够更透彻地理解软件设计的内容(如图10)。
图10 思考题
【教学总结】
单片机原理及应用是电子类学生一门非常重要的专业课程,单片机同时也是该专业学生参加电子类竞赛和今后工作中用到的主要器件。要想学好单片机必须想办法激发学生的学习兴趣。本次微课通过流水灯这样一个生动有趣的实例,采用PPT讲解、视频演示、实物演示等多种教学手段,向学生展示了整个流水灯的设计过程(包括硬件设计、软件设计),使学生掌握51单片机的I/O口使用控制方法,并回顾之前所学的指令系统,激发学生的学习兴趣,培养其应用单片机解决实际问题的能力。
在今后单片机的教学过程中,能不能开发出更多更好的项目,既结合理论教学需要,又兼顾学生的兴趣爱好,这是单片机教学中可以参考的方向。
第五篇:流水灯实验报告
单片机流水灯实验
一、任务
让8个LED灯轮流亮起来,实现流水灯的功能。
二、思路
让接在P0.0口的LED灯亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED灯熄灭,就要把P0.0口的电平变为高电平就可以了。要实现流水灯功能,只要将8个LED灯依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。
我们应该注意一点,由于单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
三、步骤
1、用proteus画电路图。如下图:
2、用keil建工程。
1)运行keil C51软件,点击Project菜单新建项目,选择为AT89C52的单片机型号。然后单击File选择New新建程序文件,保存成.c 文件,右击Source Group1添加入程序文件。2)用C语言编写程序代码如下:
#include
void main(void){ unsigned char i;while(1){ for(i=0;i<8;i++){
P0=tmpled[i];
delay(50);} } }
void delay(unsigned char tmp){ unsigned char i,j;i=tmp;while(i){ i--;j=255;{
j--;} } } 3)右击Target 1打开设置,Output菜单下勾选上create hex file。
4)调试运行程序后,在proteus中双击单片机,添加hex文件,运行看到流水的的效果。
四、实验中遇到的问题。
1、用proteus仿真时候,发现错误:
error variable not found parsing property resistance of RN1-Rnvalue expected for RN1-R(n=1~8)而且led灯亮度十分微弱。可能是接入的电阻太大了。
检查电路图发现排阻的值为RX8,修改为220(自己选择)后。错误便没有了,同时,led灯的亮度也增强了。
2、关于延时函数。
延时的时间计算不太明白。
3、P0=0xfe;是对单片机P0口的8个I/O口同时进行操作,0x后的数使用十六进制表示,fe转换为二进制是1111 1110,则P0.0为低电平,对应的led灯亮,其他7个led灯灭。