奥运五环温度检测微机原理课程设计.docx
- 文档编号:30653943
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:32
- 大小:609.81KB
奥运五环温度检测微机原理课程设计.docx
《奥运五环温度检测微机原理课程设计.docx》由会员分享,可在线阅读,更多相关《奥运五环温度检测微机原理课程设计.docx(32页珍藏版)》请在冰豆网上搜索。
奥运五环温度检测微机原理课程设计
南通大学计算机科学与技术学院
微机原理课程设计
报告书
课题名制作奥运五环效果(软)
温度检测及显示控制(硬)
班级电087
姓名陈华成
学号0812002193
指导教师华琇
日期2011.6.27~2011.7.1
目录
1设计目的1
2设计内容1
3设计要求1
3.1软件:
制作奥运五环效果1
3.2硬件:
温度采集及显示控制1
4软件设计(奥运五环效果)2
4.1功能描述2
4.2实现算法2
4.2.1圆弧绘制核心算法2
4.2.2三彩多层圆环绘制算法2
4.2.3三彩多层圆环动态闪烁实现3
4.3程序流程图3
4.3.1圆环绘制流程3
4.3.2软件系统总体流程5
4.4系统代码实现6
4.5程序运行结果13
5硬件设计(温度采集及显示控制)13
5.1功能描述13
5.2系统方案实现13
5.2.1总体方案13
5.2.2AD转换量与对应温度的转换算法14
5.3硬件设计15
5.4硬件系统代码实现15
5.5硬件系统测试18
6设计总结与体会20
7参考文献20
摘要:
本课程设计包括软件设计和硬件设计两部分,软件设计采用数控中常用的圆弧插补算法、BIOSINT10H功能来绘制三层彩色圆环,既保证了绘制的精度,又避免了单层圆环的单调性,奥运五环可动态闪烁显示,有一定的创新性和艺术性。
硬件设计采用AD0808、8086、8255A、数码管等设计温度检测及显示控制系统,该系统可实现温度的自动检测、显示和简单的控制,课程设计中给出了详细的软硬件设计和测试结果。
关键词:
圆弧插补奥运五环温度检测
1设计目的
通过本课程设计,初步掌握《微机原理及接口技术》这门课程课堂所学的理论知识具体运用到实践中去的基本方法。
掌握利用BIOS实现微型计算机显示器和键盘接口程序设计的方法;掌握利用CPU汇编语言设计较大程序的一般方法;进一步加深对学习过程中的基本知识、基本理论、基本方法的理解;从而为今后从事微型计算机软硬件的设计、维护、调试和应用等打下良好的基础
2设计内容
软件部分设计、编写奥运五环效果的程序,实现动态图形变色闪烁效果;硬件部分设计一个温度采集及显示控制系统。
3设计要求
3.1软件:
制作奥运五环效果
1图形效果(★);
2动态图形效果(★☆);
3定时中断实现变色或者闪烁(★★)。
3.2硬件:
温度采集及显示控制
⑴利用A/D转换器,实现温度采集并在数码管上显示(保留1位小数)(☆☆);
⑵用红绿灯指示温度范围。
温度在给定范围内,绿灯亮;若超过指定温度,红灯显示警告。
(2功能实现★☆)。
4软件设计(奥运五环效果)
4.1功能描述
⑴圆环采用三色三层结构,可实现变色闪烁
⑵五环具有有动态图形效果
4.2实现算法
4.2.1圆弧绘制核心算法
查找相关资料,借鉴、采用数控机床线切割中常用的圆弧插补技术来绘制1/8圆弧,再利用圆弧的对称性质绘制其它部分,其中核心算法(圆弧插补过程)如图1,起点为E(x0,y0),终点为A(xe,ye),圆弧半径为R,当前绘图点为P(x1,y1),绘图偏差为:
F=x21+y21-R2。
当F=<0时,应沿+X方向进一步,即x=x+1;当F>0时,对于第一象限的逆圆,应向-Y方向进一步即y=y-1。
图1圆弧插补
4.2.2三彩多层圆环绘制算法
利用BIOS中断中的INT10H的0号功能(AH=00H)选择设置320×200彩色图形显示模式(AL=0DH);采用INT10H的0C号功能(AH=0CH)来显示象素点,其中DX=行(0-199),CX=列(0-320),AL=象素值(颜色)。
选择不同的颜色像素值,结合4.2.1的算法绘制半径分别为R,R+1,R+2的圆环,此三环分别是彩色圆环O1的内环、中环和外环,根据图2中的5环位置关系采用相同的算法绘制其它四环。
图2五环位置关系
4.2.3三彩多层圆环动态闪烁实现
圆环的三层采用不同的颜色,通过循环反复绘制圆环的三个不同的层(或改变颜色)即可控制其动态彩色显示。
利用人眼的暂觉效果,适当控制绘制圆环的延时,轮流反复绘制5个圆环,即可实现彩色环动态闪烁显示的特效。
4.3程序流程图
4.3.1圆环绘制流程
结合图3所示,圆环绘制子程序为:
circleprocnear;画圆环
callpy;坐标平移变换
bj:
moval,x
cmpal,y;比较x、y的大小
jgjieshu;
callpfh;x、y平方求和
movax,r1
cmpax,r
jnlyj
callxfpy;x方向加1,反平移
callhua;画对称的8个点
jmpbj
yj:
callyfpy;y方向减一,反平移
callhua;画对称的8个点
jmpbj
jieshu:
nop
ret
circleendp
图3圆环的绘制流程
结合图3,圆环绘制子程序(circle)调用的子程序如下:
pyprocnear;平移子程序
movax,x1
subax,x0
movx,al;x=x1-x0
movax,y1
subax,y0
movy,al;y=y1-y0
ret
pyendp
pfprocnear;求平方子程序
movbl,al
mulbl
movm,ax;ax=(al)²
ret
pfendp
pfhprocnear;求平方和
moval,x
callpf;求x²
movcx,m;cx=x²
moval,y
callpf;求y²
movax,m
addax,cx;ax=x²+y²
movr1,ax;r1=x²+y²
moval,r0
callpf;求(r0)²
movax,m
movr,ax;r=(r0)²
ret
pfhendp
xfpyprocnear;x方向进1,反平移
moval,x
addal,1
movx,al;x=x+1
movah,0
addax,x0
movx1,ax;反平移:
x1=x+x0
ret
xfpyendp
yfpyprocnear;y方向减1,反平移
moval,y
subal,1
movy,al;y=y-1
movah,0
addax,y0
movy1,ax;反平移:
y1=y+y0
ret
yfpyendp
4.3.2软件系统总体流程
图4软件系统总体流程
结合图3,设置显示方式和循环次数调用:
chshprocnear
movcx,100;循环次数
movah,0;BIOSINT10第0号功能
moval,0dh;显示方式为:
320×200彩色图形
int10h;BIOS中断
ret
chshendp
主程序和其它子程序见系统代码实现。
4.4系统代码实现
datasegment
x0dw80;第一个圆心坐标
y0dw80
r0db30;圆环半径
rdw?
;圆心半径的平方
r1dw?
;存放x、y的平方和
x1dw80;当前绘图像素点坐标
y1dw110
mdw?
;中间量
xdb?
;坐标平移到以圆心为原点时绘图点的坐标
ydb?
m1db?
;绘图颜色像素值
dataends
codesegment
assumecs:
code,ds:
data
mainprocfar
start:
movax,data
movds,ax
callchsh
;//-----------------绘制第1个三彩圆环
c1:
movr0,30
movx0,80
movy0,80
movx1,80
movy1,110
movm1,09h;中层颜色像素值设为蓝色
callcircle;绘制第1个三彩环中层
movr0,31
movx1,80
movy1,110
movm1,0ah;外层颜色像素值设为绿色
callcircle;绘制第1个三彩环外层
movr0,29
movx1,80
movy1,110
movm1,08h;内层颜色像素值设灰色
callcircle;绘制第1个三彩环外层
;//-----------------绘制第2个三彩圆环,解释同圆环1
movr0,30
movx0,80
movy0,155
movx1,80
movy1,185
movm1,04h;中层红色
callcircle
movr0,29
movx1,80
movy1,185
movm1,0ah;内层绿色
callcircle
movr0,31
movx1,80
movy1,185
movm1,0eh;外层黄色
callcircle
;//-----------------绘制第3个三彩圆环,解释同圆环1
movr0,30
movx0,80
movy0,230
movx1,80
movy1,260
movm1,08h;中层灰色
callcircle
movr0,29
movx1,80
movy1,260
movm1,0eh;内层黄色
callcircle
movr0,31
movx1,80
movy1,260
movm1,0ah;外层绿色
callcircle
;//-----------------绘制第4个三彩圆环,解释同圆环1
movr0,30
movx0,118
movy0,118
movx1,118
movy1,148
movm1,04h;中层红色
callcircle
movr0,29
movx1,118
movy1,148
movm1,0eh;内层黄色
callcircle
movr0,31
movx1,118
movy1,148
movm1,0ah;外层绿色
callcircle
;//-----------------绘制第5个三彩圆环,解释同圆环1
movr0,30
movx0,118
movy0,193
movx1,118
movy1,223
movm1,09h;中层黄色
callcircle
movr0,29
movx1,118
movy1,223
movm1,0ah;内层绿色
callcircle
movr0,31
movx1,118
movy1,223
movm1,0eh;外层黄色
callcircle
calldelay;延时
loopc1
movax,4c00h
int21h
mainendp
circleprocnear;画圆环
callpy;坐标平移变换
bj:
moval,x
cmpal,y;比较x、y的大小
jgjieshu;
callpfh;x、y平方求和
movax,r1
cmpax,r
jnlyj
callxfpy;x方向加1,反平移
callhua;画对称的8个点
jmpbj
yj:
callyfpy;y方向减一,反平移
callhua;画对称的8个点
jmpbj
jieshu:
nop
ret
circleendp
chshprocnear;初始化子程序
movcx,100;循环次数
movah,0;BIOSINT10第0号功能
moval,0dh;显示方式为:
320×200彩色图形
int10h;BIOS中断
ret
chshendp
pyprocnear;平移子程序
movax,x1
subax,x0
movx,al;x=x1-x0
movax,y1
subax,y0
movy,al;y=y1-y0
ret
pyendp
pfprocnear;求平方
movbl,al
mulbl
movm,ax;ax=(al)²
ret
pfendp
pfhprocnear;求平方和
moval,x
callpf;求x²
movcx,m;cx=x²
moval,y
callpf;求y²
movax,m
addax,cx;ax=x²+y²
movr1,ax;r1=x²+y²
moval,r0
callpf;求(r0)²
movax,m
movr,ax;r=(r0)²
ret
pfhendp
xfpyprocnear;x方向进1,反平移
moval,x
addal,1
movx,al;x=x+1
movah,0
addax,x0
movx1,ax;反平移:
x1=x+x0
ret
xfpyendp
yfpyprocnear;y方向减1,反平移
moval,y
subal,1
movy,al;y=y-1
movah,0
addax,y0
movy1,ax;反平移:
y1=y+y0
ret
yfpyendp
huaprocnear;画对称的8点
movdx,x1
movcx,y1
callhuadian;画第一点(x,y)
subdx,x0
subcx,y0
xchgdx,cx
adddx,x0
addcx,y0
callhuadian;画对称点(y,x)
movdx,x1
movcx,y1
subcx,y0
subdx,x0
xchgdx,cx
movm,dx
addm,dx
subdx,m
adddx,x0
addcx,y0
callhuadian;画点(-y,x)
subcx,y0
movm,cx
addm,cx
subcx,m
addcx,y0
callhuadian;画点(-y,-x)
movdx,x1
movcx,y1
subdx,x0
subcx,y0
movm,cx
addm,cx
subcx,m
addcx,y0
adddx,x0
callhuadian;画点(x,-y)
subdx,x0
movm,dx
addm,dx
subdx,m
adddx,x0
callhuadian;画点(-x,-y)
movdx,x1
movcx,y1
subdx,x0
subcx,y0
movm,dx
addm,dx
subdx,m
adddx,x0
addcx,y0
callhuadian;画点(-x,y)
movdx,x1
movcx,y1
subdx,x0
subcx,y0
xchgdx,cx
movm,cx
addm,cx
subcx,m
adddx,x0
addcx,y0
callhuadian;画点(y,-x)
calldelay
ret
huaendp
huadianprocnear;写像素点,al=颜色值,bh=页号
movah,0CH
moval,m1
movbh,0
int10h
ret
huadianendp
delayprocnear;延时子程序
pushdx
pushcx
movdx,40
d1:
movcx,65530
d2:
loopd2
decdx
jnzd1
popdx
popcx
ret
delayendp
codeends
endstart
4.5程序运行结果
图5软件系统程序运行结果
5硬件设计(温度采集及显示控制)
5.1功能描述
⑴利用A/D转换器,实现温度采集并在数码管上显示(保留1位小数)(☆☆)。
⑵用红绿灯指示温度范围。
温度在给定范围内,绿灯亮;若超过指定温度,红灯警告。
(2功能实现★☆)
⑶温度超限后发出声控警报
5.2系统方案实现
5.2.1总体方案
系统采用AD0808作为AD转换芯片,8086作为控制器,数码管作为显示单元,采用红绿灯和声控双重超限警报。
其实现方案流程如图6:
图6温度采集及显示控制方案图×
5.2.2AD转换量与对应温度的转换算法
结合图7所示,假设信号0v代表0℃,5v代表100℃,则AD转换量0代表0℃,255代表100℃。
其转换算法和程序如下:
andax,00fbh
moval,n
movbl,100
mulbl
movbl,255
divbl
movn,al
moval,ah
andah,00h
movbl,10
mulbl
movbl,255
divbl
movm,al;取小数位
moval,n
movah,0
movbl,10
divbl
movn1,al;取十位
图7转换算法movn2,ah;取个位
5.3硬件设计
图8硬件系统原理图
5.4硬件系统代码实现
datasegment
ndb0;存AD转换量
mdb0;存温度小数位
n1db0;存温度十位
n2db0;存温度个位
tabdb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
dataends
codesegment
assumecs:
code,ds:
data
;//----------------初始化
start:
movax,data
movds,ax
moval,90h
movdx,0206h
outdx,al
moval,00h
movdx,0202h
outdx,al
moval,0ffh
movdx,0204h
outdx,al
moval,88h
movdx,0406h
outdx,al
moval,00h
movdx,0404h
outdx,al
moval,0ffh
movdx,0400h
outdx,al
;//--------------温度采集
lop1:
movdx,0200h
andal,00h
inal,dx
andal,10h
jzlop1
nop
moval,02h
movdx,0404h
outdx,al
nop
movdx,0200h
inal,dx
movn,al
nop
moval,00h
movdx,0404h
outdx,al
;//---------------与给定值(此处为204表100℃)比较
moval,n
cmpal,204
jaa3
movdx,0400h
moval,0fbh
outdx,al
jmpa4
a3:
movdx,0400h
moval,04h
outdx,al
;//----------------AD量与对应温度的转换
a4:
andax,00fbh
moval,n
movbl,100
mulbl
movbl,255
divbl
movn,al
moval,ah
andah,00h
movbl,10
mulbl
movbl,255
divbl
movm,al;取小数位
moval,n
movah,0
movbl,10
divbl
movn1,al;取十位
movn2,ah;取个位
calldisplay
jmplop1
displayproc
moval,00h;消干扰
movdx,0202h
outdx,al
moval,0fdh
movdx,0204h
outdx,al
moval,n1
leabx,tab
xlat
movdx,0202h
outdx,al;显示十位
moval,00h;消干扰
movdx,0202h
outdx,al
moval,0fbh
movdx,0204h
outdx,al
moval,n2
leabx,tab
xlat
oral,80h
movdx,0202h
outdx,al;显示个位
moval,00h;消干扰
movdx,0202h
outdx,al
moval,0f7h
movdx,0204h
outdx,al
moval,m
leabx,tab
xlat
movdx,0202h
outdx,al;显示小数位
ret
displayendp
codeends
endstart
5.5硬件系统测试
AD0809模拟输入口接0~5v直流电压V1时,温度显示T=(V1/5)×100℃,并保留一位小数,与设计要求完全吻合;输入口接峰值为5v的正弦波,可通过示波器观察差,温度检测和显示的结果,也可观察到,当温度超过给定值(设为80℃)时,红灯亮示意警报,当温度在正常范围时,绿灯亮。
通以下测试照片可充分证明本硬件系统的正确性,满足设计要求。
图9测试照片1
图10测试照片2
图11测试照片3
图12测试照片4
6设计总结与体会
软件设计:
本软件设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 奥运 温度 检测 微机 原理 课程设计