课 程 设 计 报 告
课程设计名称:微机系统综合课程设计
课程设计题目:模拟电风扇动作
院(系):计算机学院
专
班
学
姓
业:计算机科学与技术
级:
号:
名:
指导教师:
完成日期:
课程设计报告
目
录
第 1 章 总体设计方案...................................................................................................1
1.1 设计原理...............................................................................................................1
1.2 设计思路...............................................................................................................1
1.3 实验环境...............................................................................................................2
第 2 章 详细设计方案...................................................................................................3
2.1 硬件电路设计.......................................................................................................3
2.2 主程序设计...........................................................................................................4
2.3 功能选择模块的设计与实现...............................................................................5
第 3 章 结果测试及分析...............................................................................................6
3.1 结果测试...............................................................................................................6
3.2 结果分析.................................................................................................................6
参考文献...........................................................................................................................7
附 录.............................................................................................................................8
-I-
课程设计报告
第 1 章 总体设计方案
第 1 章 总体设计方案
1.1 设计原理
利用芯片 8259,8255,8253,8279,分别控制中断,彩色发光二极管,时钟,
和 LED 显示。用受 8253 控制的 8259 给 8255 和 8279 产生每秒钟一次的中断,控
制彩色发光二极管和 LED 的显示
1.2 设计思路
首先需要一个总开关,用来控制电风扇的开关,可以用 8255 的输入端接收这
一信号,信号为1时进入循环,此时彩色发光二极管通过红绿色灯显示风扇的转
动效果,不为1时执行下一步。
其次需要实现的功能是三级风速的变换,可以设计三个变换延时的子程序,
并根据键盘输入的不同来分别调用这三个步骤。
再次是要实现定时功能,用 8253 和 8259 实现这一功能并不困难,当时间减
为零时,向 8255 的 AL 中输入 O6AH,使彩色发光二极管显示初始化。
还有就是彩色发光二极管的显示问题,只需将 8255 中控制彩灯显示的数据起
始值设为 01101010,然后循环左移两位即可。
(1) 提出方案
总开关是用来控制风扇的启动停止的,所以只需有两种状态,即开和关,所
以,我选择用实验箱右下角的开关来实现这以功能。为了能显示风扇的转动,我
选用 8255 和实验箱右上角的彩灯来显示风扇的转动。为了实现定时功能,我选用
8253 定时,8259 产生中断,用中断程序来控制定时。由于定时时要能显示时间及
风扇转动时要有风速等一些功能的选择,所以还需要 8279 键盘显示接口芯片。
(2) 方案论证
1) 用 8255 和彩灯模拟风扇的转动,所以,可以将 8255 的 B 口设为工作在方式
0,输出状态,然后通过输出不同二进制数来控制彩灯的红绿显示,通过循环
-1-
课程设计报告
第 1 章 总体设计方案
移位使彩灯循环显示来实现风扇转动的模拟。
2) 用右下角的开关控制风扇的转动与停止,所以,可将 8255A 口设为方式 0,
输入状态,来读取开关的状态,然后在程序中判断输入的是 1 还是 0,进而控
制风扇的转动与停止。
3) 为了实现定时的功能,可以用 8253 的分频功能,将输入的脉冲信号分频,以
输出 1HZ 的脉冲信号,然后输入到 8259 的 INT0 以产生周期为 1s 的终端,
即每秒钟进一次中断,在中断服务程序中来实现时间的递减,当减到 0 时就
将风扇停止,这样就实现了定时功能了。
4) 为了实现三级风速的选择和定时功能、定时时间的变化显示等功能,需要 8279
的键盘显示功能,在键盘上设置三个键分别控制三级风速,在设置一个按键
来控制定时功能的选择,当按下定时功能键后,还需要键盘的数字键来实现
定时时间的设定。最后就是用数码管显示时间的变化了。
1.3 实验环境
·硬件环境:AEDK 实验箱,PC 机。
·软件环境:LCA88ET 应用软件。
-2-
课程设计报告
第 2 章 详细设计方案
第 2 章 详细设计方案
2.1 硬件电路设计
硬件电路由键盘显示接口芯片 8279 构成,如图 2.1 所示。
cs
Pc0
Pc3
K1
Pa0
8255
Pb0 ……
Pb7
DL8 ……
DL1
200~207
210~217
220~227
228~22f
cs
8279
Clk1
Gate1
Out0
8253
cs
out1
clk0
gate0
脉冲源
Int0
8259
cs
图 2.1 硬件电路连线图
8279 是可编程设置型键盘/显示芯片,其特点是:(1)可同时进行键盘扫描及文字
显示;(2)键盘扫描模式;(3)传感器扫描模式;(4)激发输入模式;(5)8 乘 8 键
盘 FIFO;(6)具有接点消除抖动,2 键锁定及 N 键依次读出模式;(7)双排 8 位数
或双排 16 位数显示器;(8)右边进入或左边进入,16 字符或 8 字符显示。8255
的 A 口工作在方式 0,输入;B 口工作在方式 0,输出;C 口工作在方式 0,输出;
8253 将脉冲源分频,产生周期为 1s 的脉冲信号,驱动 8259 产生周期为 1s 的中
断。8255、8259、8253、8279 的端口地址分别接 210H-217H、220H-227H、200H-207H、
228H-22FH。
-3-
课程设计报告
第 2 章 详细设计方案
2.2 主程序设计
图 2.2 主程序流程图
-4-
课程设计报告
第 2 章 详细设计方案
2.3 功能选择模块的设计与实现
图 2.3.1 功能选择模块流程图
-5-
课程设计报告
第 3 章 结果测试及分析
第 3 章 结果测试及分析
3.1 结果测试
编译并连接程序,然后全速运行,在数码管上就显示计时器的时间,开始时
是全 0。此时双色彩灯是初始状态,即只有一个灯是红的,其余三个灯都是绿色。
然后,将开关 K1 向上扳去,时 8255 的 PA0 口输入高电平,此时发现双色彩灯还
是循环亮红灯,并且只有一个灯是红色的,其余都是绿色,这样,当以一定的速
度循环点亮四个灯,就会模拟出风扇的转动了。在风扇转动时,按下键盘上的 A、
B、C 键,则彩灯会分别以不同的速度循环点亮红色,这样就实现了通过键盘实
现三级风速的选择功能了。当风扇在某一风速下转动时,按下 D 键,则进入定时
状态,接着只需按下键盘上的数字键,设定好定时的时间,然后再按下 D 键,风
扇就将在设定的时间内转动,并且在数码管上显示时间的变化,逐渐减少,当减
到 0 时,风扇就将停止转动。这就是定时功能的实现。
3.2 结果分析
开始运行时,发现双色彩灯并不是按理想顺序逐渐点亮红色,后来,检查程
序发现并没有错,最后,检查硬件连线时发现,8255B 口得导线与双色灯的借口
连接顺序错了,调整了连接顺序后彩灯理想的顺序循环点亮了。
风扇正常运行了,但是在定时时发现数码管上的时间没有变化,过了定时的
时间后,风扇也没有停止,开始以为程序问题,单步运行后发现一切正常,然后
检查数码管显示也没发现问题,这时将接在 INT0 上的导线拔下,接在发光二极
管上发现没有电流,最后,断定是 8253 并没有产生脉冲信号给 8259,导致中断
服务程序无法进入,使得计时功能失效,所以才会出现刚才的问题,于是,我测
试了几根好用的导线从新将 8253 的连线连一遍,再运行时定时功能就好用了。
实验结果基本实现了课设的要求,虽然有些问题和程序还会有些不稳定,但
是所要求的功能都实现了,那些问题我会在以后进行完善 。
-6-