微机原理课设 模拟风扇Word下载.doc
《微机原理课设 模拟风扇Word下载.doc》由会员分享,可在线阅读,更多相关《微机原理课设 模拟风扇Word下载.doc(18页珍藏版)》请在冰豆网上搜索。
![微机原理课设 模拟风扇Word下载.doc](https://file1.bdocx.com/fileroot1/2022-10/7/340cbaab-f39a-4d03-98fe-fa35efab1547/340cbaab-f39a-4d03-98fe-fa35efab15471.gif)
2.1硬件电路设计 3
2.2主程序设计 4
2.3功能选择模块的设计与实现 5
第3章结果测试及分析 6
3.1结果测试 6
3.2 结果分析 6
参考文献 7
附录 8
-16-
课程设计报告第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,输出状态,然后通过输出不同二进制数来控制彩灯的红绿显示,通过循环移位使彩灯循环显示来实现风扇转动的模拟。
2)用右下角的开关控制风扇的转动与停止,所以,可将8255A口设为方式0,输入状态,来读取开关的状态,然后在程序中判断输入的是1还是0,进而控制风扇的转动与停止。
3)为了实现定时的功能,可以用8253的分频功能,将输入的脉冲信号分频,以输出1HZ的脉冲信号,然后输入到8259的INT0以产生周期为1s的终端,即每秒钟进一次中断,在中断服务程序中来实现时间的递减,当减到0时就将风扇停止,这样就实现了定时功能了。
4)为了实现三级风速的选择和定时功能、定时时间的变化显示等功能,需要8279的键盘显示功能,在键盘上设置三个键分别控制三级风速,在设置一个按键来控制定时功能的选择,当按下定时功能键后,还需要键盘的数字键来实现定时时间的设定。
最后就是用数码管显示时间的变化了。
1.3实验环境
·
硬件环境:
AEDK实验箱,PC机。
软件环境:
LCA88ET应用软件。
课程设计报告第2章详细设计方案
第2章详细设计方案
2.1硬件电路设计
硬件电路由键盘显示接口芯片8279构成,如图2.1所示。
K1
Pa0
8255
Pb0……Pb7
cs
8279
Clk1out1
Gate18253clk0
Out0csgate0
Int0
8259cs
200~207
210~217
220~227
228~22f
DL8……DL1
cs
Pc0
Pc3
脉冲源
图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。
2.2主程序设计
图2.2主程序流程图
2.3功能选择模块的设计与实现
图2.3.1功能选择模块流程图
课程设计报告第3章结果测试及分析
第3章结果测试及分析
3.1结果测试
编译并连接程序,然后全速运行,在数码管上就显示计时器的时间,开始时是全0。
此时双色彩灯是初始状态,即只有一个灯是红的,其余三个灯都是绿色。
然后,将开关K1向上扳去,时8255的PA0口输入高电平,此时发现双色彩灯还是循环亮红灯,并且只有一个灯是红色的,其余都是绿色,这样,当以一定的速度循环点亮四个灯,就会模拟出风扇的转动了。
在风扇转动时,按下键盘上的A、B、C键,则彩灯会分别以不同的速度循环点亮红色,这样就实现了通过键盘实现三级风速的选择功能了。
当风扇在某一风速下转动时,按下D键,则进入定时状态,接着只需按下键盘上的数字键,设定好定时的时间,然后再按下D键,风扇就将在设定的时间内转动,并且在数码管上显示时间的变化,逐渐减少,当减到0时,风扇就将停止转动。
这就是定时功能的实现。
3.2结果分析
开始运行时,发现双色彩灯并不是按理想顺序逐渐点亮红色,后来,检查程序发现并没有错,最后,检查硬件连线时发现,8255B口得导线与双色灯的借口连接顺序错了,调整了连接顺序后彩灯理想的顺序循环点亮了。
风扇正常运行了,但是在定时时发现数码管上的时间没有变化,过了定时的时间后,风扇也没有停止,开始以为程序问题,单步运行后发现一切正常,然后检查数码管显示也没发现问题,这时将接在INT0上的导线拔下,接在发光二极管上发现没有电流,最后,断定是8253并没有产生脉冲信号给8259,导致中断服务程序无法进入,使得计时功能失效,所以才会出现刚才的问题,于是,我测试了几根好用的导线从新将8253的连线连一遍,再运行时定时功能就好用了。
实验结果基本实现了课设的要求,虽然有些问题和程序还会有些不稳定,但是所要求的功能都实现了,那些问题我会在以后进行完善。
课程设计报告参考文献
参考文献
[1]王爱英.计算机组成与设计[M]北京:
教育出版社,2003
[2]杨素行.微型计算机系统原理及应用[M]北京:
清华大学出版社,1996
[3]张雪兰.汇编语言程序设计[M]北京:
清华大学出版社,2006
[4]龚尚福.微机原理与接口技术[M]西安:
西安电子科技大学出版社,2003
[5]王中民.微型计算机原理[M]西安:
[6]沈美明,温冬婵.IBM-PC汇编语言程序设计[M]北京:
清华大学出版社,2001
课程设计报告附录
附录
datasegment
isenddb0
n0db0
n1db0
n2db0
keykinddb0
oldkeydb0
kinddb0
isstopdb0
numbersdb3fh,6,5bh,0,0,0,0,0,0,0
dataends
codesegment
assumecs:
code,ds:
data
main:
cli
movax,cs
movds,ax
movkind,0
movkeykind,0ah
movoldkey,0ah
movkind,06
movisstop,0
movisend,0
movn0,0
movn1,0
movn2,0
callinitnumbers
callinit8255
callinit8259
callinit8253
callmodifyint
movdx,212h
moval,0
outdx,al
callcleardevice
calldisplay
movdx,22ah
moval,30h
moval,6ah
sti
dowhat:
pushax
dowait:
movdx,210h
inal,dx
testal,1
jzdowait
popax
callreadakey
cmpkeykind,0ah
jnza1
movkind,2
callgotonext
jmpaa
a1:
cmpkeykind,0bh
jnza2
movkind,1
a2:
cmpkeykind,0ch
jnza3
movkind,0
a3:
cmpkeykind,0dh
jnza4
movdx,212h;
c口给0
moval,0
outdx,al
movisstop,0
moval,oldkey
movkeykind,al
callreading
movdx,212h
moval,0ffh
sti;
开中断,进入中断程序计时
a4:
cmpkeykind,0eh
jnzaa
push