占空比可调的脉冲发生器.docx

上传人:b****7 文档编号:8738295 上传时间:2023-02-01 格式:DOCX 页数:15 大小:54.14KB
下载 相关 举报
占空比可调的脉冲发生器.docx_第1页
第1页 / 共15页
占空比可调的脉冲发生器.docx_第2页
第2页 / 共15页
占空比可调的脉冲发生器.docx_第3页
第3页 / 共15页
占空比可调的脉冲发生器.docx_第4页
第4页 / 共15页
占空比可调的脉冲发生器.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

占空比可调的脉冲发生器.docx

《占空比可调的脉冲发生器.docx》由会员分享,可在线阅读,更多相关《占空比可调的脉冲发生器.docx(15页珍藏版)》请在冰豆网上搜索。

占空比可调的脉冲发生器.docx

占空比可调的脉冲发生器

沈阳航空航天大学

 

课程设计报告

 

课程设计名称:

微机系统综合课程设计

课程设计题目:

占空比可调的脉冲发生器

 

院〔系〕:

计算机学院

专业:

计算机科学与技术

班级:

学号:

姓名:

指导教师:

张维君

完成日期:

2021年7月15日

 

第1章总体设计方案

一、课程设计内容:

详细内容如下:

1.用8255和8253产生脉宽可调的脉冲信号;

2.用实验箱上键盘中的两个按键调节脉冲;

3.按脉宽增加键脉宽逐渐增大,按脉宽减小键脉宽逐渐减小;

二、课程设计要求:

1.认真查阅相关资料;

2.独立设计、调试并通过指导教师现场验收;

3.撰写课程设计报告。

1.2课程设计原理

根据课设要求,要实现通过键盘按键调节脉宽的脉冲信号发生器。

本次设计中主要使用了8259可编程中断控制器,8255可编程并行接口芯片,8279键盘/显示芯片,8253定时/计数器以及部分连线来实现以上功能。

利用8253芯片产生一定频率的脉冲信号,并用8255芯片以程序查询方式,检测该信号上高、低电平的持续时间,还要利用8259芯片的中断信号扫描信号,通过改变高电平的持续时间来调节占空比。

最后,应用8279芯片将结果显示到数码管上。

1.3方案设计

根据本次课程设计要求,用8253芯片计数器0产生低频率的方波信号,然后叠加一个矩形波,使之成为一个改变分频就可以改变占空比的矩形波。

再将该矩形波作为计数器1产生的输入信号,使计数器1产生脉宽可调的脉冲信号,并把该脉冲信号接到8255的一个引脚〔PB0〕,运用程序查询方式循环检测这个引脚高、低电平持续时间。

利用芯片8259的中断功能循环扫描芯片8253计数器1的分频数,通过分频数计算占空比的值。

在BX中存放分频数NUM,在CX中存放〔NUM-1〕。

然后,将BX中的数扩大100倍,再除以CX中的值,以此来计算出被扩大100倍后的占空比;接下来就是显示正确的占空比,将前面得到的准占空比除以10,再将AH中的结果存到CH中,将AL中的结果存到CL中,最后,由8279芯片将最终结果显示到数码管上。

方案论证

通过仔细阅读课程设计任务书,对本次课程设计所要完成的题目和要求要充分理解,从以下两方面进展方案论证。

◆对预设使用的芯片进展论证

8253可编程定时/计数器的功能:

一是作为计数器,即在设置好计数初值后,便开始对外部脉冲作减1操作,当减为0时,输出一个信号;二是作为定时器,在设置好定时参数后,便开始对外部信号作减1操作,并按定时常数不断地输出为时钟周期整数倍的定时间隔。

8255A是可编程并行输入输出接口芯片,具有三个8位并行端口,40个引脚,双列直插式封装。

有三种输入输出方式,用于输出给定信号。

8259A是可编程中断控制器芯片,用于管理和控制80x86的外部中断恳求,坑人可实现中断优先级断定,提供中断信号,屏蔽中断输入等功能。

8279是可编程键盘/显示接口芯片。

它的功能主要包括键盘输入和显示控制

部分,其中键盘部分提供扫描功能。

显示部分那么是提供扫描方式的显示接口,可与8位或16位LED数码管连接构成。

◆对预设计的程序进展论证

用小灯测试8253芯片产生的脉冲信号的频率,已到达设计中所要求的低频率信号。

逐步测试数据采集模块,计算占空比模块,显示模块。

经过认真仔细论证,证明所提出的方案实在可行。

1.5设计环境

软件环境:

LCT88EA应有软件、Win2000、PC机

硬件环境:

AEDK实验箱

第2章详细设计方案

2.1模块设计

1.主模块:

在主程序中,主要实现各个芯片的初始化,将8253芯片的计数器0设置为工作方式3,低8位读写,二进制计数方式,使其输出方波在与一个矩形波叠加产生新的矩形波。

,再将该矩形波作为计时器1的输入信号,并将计数器1设置为工作方式2,低8位读写,十进制计数方式,使计数器1产生低频率符合要求的脉冲信号;

2.数据构造部分:

用BX存放器存储当前的分频数,用CX存放器存储当前分频数减一数。

在内存中开拓了一个字节空间DISBUF,用来存放每种形式所要显示的结果在TAB表中的编码,在中断效劳程序中通过按照这个空间中的8个编码查表显示数码管上所要显示的结果。

3.数据采集模块:

采用程序查询方式,循环检测8253芯片计数器1的分频状态。

记录当前分频数NUM,并保存到BX存放器。

4.计算占空比模块:

将BX中的数减一得到的数存入CX中,然后,将BX中的数乘以100,再除以CX中的值,以此来计算出被扩大100倍后的占空比;接下来就是显示正确的占空比,将前面的到的准占空比除以10,再将AH中的结果存到CH中,将AL中的结果存到CL中。

5.显示模块:

根据CH、CL中的值,由8279芯片查表后将对应的数据显示到数码管上,以得到最后的正确结果。

2.2程序流程图

本次设计的主流程图如图

计算占空比模块流程图如图

 

图占空比测量的主流程图

图显示模块流程图

2.3硬件连线图

本次设计用到四个芯片,分别是8259可编程中断控制器,8255可编程并行接口芯片,8279键盘/显示芯片,8253定时/计数器。

其中8255芯片的A、B、C端口及控制端口的地址为分别为200H,201H,202H,203H;键盘/显示芯片8279的数据端口地址为210H,控制端口地址为212H;定时/计数器芯片8253的端口地址为228-22BH。

芯片8259的端口地址为220H详细连接情况如图2.2所示。

 

图2.2硬件连线图

第3章调试及结果分析

调试步骤及方法

在开始的时候,每次都没有结果显示。

于是通过单步调试,通过查看各个存放器中的值,来验证各模块是否正常跳转以及模块的正确性。

结果,在数据中断中没有中断产生。

经过调试,可以正常显示预定的占空比的值,但是无法对占空比进展调节。

经过考虑发现,问题出在数据显示模块,每次显示完第一次预定的值以后没有对数码管进展清空,所以显示出现问题。

之后,修改程序,在每次显示之前对数码管进展清空操作。

问题得到解决。

进一步修改,在计算模块中,将BX存放器中的值乘以100后得到的结果存到AX存放器中,用DX:

AX做被除数,防止因BX中数值过大而使AL存放器产生溢出而得到的不正确的结果。

修改后,再次测试,那么可以得到稳定而且正确的结果,误差很小。

3.2实验结果

本设计已经根本满足任务书的要求。

现将结果简单介绍如下:

1.当将计数器1的初值赋为5,即产生五分频的脉冲信号时,数码管显示结果为0.80;

2.当按下实验箱上的〞+〞时,显示的占空比值增加,向1逼近。

3.当按下实验箱上的〞-〞时,显示的占空比值减小。

向0.5逼近。

3.3结果分析

由实验结果可知,。

方波和矩形波叠加之后应该可以产生占空比小于0.5的值,但是此程序没有实现这个功能,有待进步。

参考文献

[1][M].西安:

西安电子科技大学出版社,2003

[2]王忠民.微型计算机原理[M].西安:

西安电子科技大学出版社,2003

[3]沈美明,温冬婵.IBM-PC汇编语言程序设计[M].北京:

清华大学出版,2001

附录〔源程序〕

TIM_CTLEQU22bH

TIMER0EQU228H

TIMER1EQU229H

TIMER2EQU22AH

PC8255EQU203H

PC8255CEQU202H

PC8255BEQU201H

Z8279EQU212H

D8279EQU210H

LEDMODEQU00H;左边输入,八位显示外部译码八位显示

CODESEGMENT

ASSUMECS:

CODE

START:

JMPS

NUMDB5

S:

cli

MOVDX,Z8279;置空FIFO存放器

MOVAL,0c2H

OUTDX,AL

CALLINIT8253

CALLINIT8259

MOVDX,TIM_CTL

MOVAL,00010110B;计数器0,低8位读写,工作方式3,二进制

OUTDX,AL

MOVAL,00000101B

MOVDX,TIMER0

OUTDX,AL

MOVDX,TIM_CTL

MOVAL,01010101B;计数器1,低8位读写,工作方式2,十进制

OUTDX,AL

MOVAL,NUM

MOVDX,TIMER1

OUTDX,AL

MOVDX,PC8255

MOVAL,10000010B;A方式0,输出B方式0,输入C输出

OUTDX,AL

MOVDX,PC8255B

MOVBX,0

MOVCX,0

CALLDISPLAY

movdx,223h

outdx,al

moval,30h

outdx,al

STI

JMP$

A1:

NOP

JMPA1

INIT8259:

MOVAL,13H

MOVDX,220H

OUTDX,AL

MOVDX,221H

MOVAL,30H

OUTDX,AL

MOVAL,03

OUTDX,AL

MOVAL,0FEH;ocw1

OUTDX,AL

INAL,DX

MOVAX,0

MOVDS,AX

MOVSI,30H*4

MOVAX,OFFSETINTR1

MOV[SI],AX

MOVAX,CS

MOV[SI+2],AX

ret

INIT8253:

pushAX

MOVDX,TIM_CTL

MOVAL,00010110B;计数器0,低8位读写,工作方式2,二进制

OUTDX,AL

MOVAL,00000101B

MOVDX,TIMER0

OUTDX,AL

MOVAL,10110101B

MOVDX,TIM_CTL

OUTDX,AL

MOVAX,6144

MOVDX,TIMER2

OUTDX,AL

MOVAL,AH

OUTDX,AL

POPAX

RET

intr1:

callreadkey

CMPAL,12H;是减小

JEdown

CMPAL,13H

JEup

iret

DOWN:

JMPA

UP:

INCNUM

INCNUM

JMPA

RET

A:

MOVDX,Z8279;置空FIFO存放器

MOVAL,0c2H

OUTDX,AL

CALLDISPLAY

IRET

readkey:

MOVDX,Z8279;置空FIFO存放器

MOVAL,0C2H

OUTDX,AL

WAIIT:

NOP

MOVAX,0

INAL,DX

MOVBL,AL

ANDAL,80H

CMPAL,80H

JEWAIIT;FIFO正在去除期间那么跳转等待

MOVAL,BL

ANDAL,0FH

CMPAL,00H

JEWAIIT;无键按下那么等待

MOVDX,Z8279

MOVAL,82H;置读FIFORAM命令字

OUTDX,AL

MOVDX,D8279;读入FIFORAM内容

INAL,DX

ret

DISPLAY:

MOVCX,00H

MOVBX,00H

MOVDX,0

MOVCL,NUM

DECNUM

MOVBL,NUM

MOVAX,100

MULBX

DIVCX

MOVCL,10

DIVCL

MOVCH,AH;个位

MOVCL,AL;十位

PUSHCS

POPDS

MOVDX,Z8279;置空FIFO存放器

MOVAL,0C2H

OUTDX,AL

MOVDX,Z8279

MOVAL,LEDMOD

OUTDX,AL

MOVAL,90H

OUTDX,AL

MOVAL,CH

LEABX,LED

XLAT

MOVDX,D8279

OUTDX,AL;显示个位

MOVAL,CL

LEABX,LED

XLAT

MOVDX,D8279

OUTDX,AL;显示十位

MOVAL,10111111b

MOVDX,D8279

OUTDX,AL;显示小数点

RET

LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H

DB5EH,79H,71H

CODEENDS

ENDSTART

课程设计总结:

上个学期的微机原理课程完毕以后,对所学的知识朦朦胧胧,缺乏理论的考验。

通过本次课程设计,我对微机原理的理论知识有了更加深化的理解,增强了动手才能。

对所学的各芯片,尤其是8259,8253,8255,8279这四个芯片的构造、功能和使用方法有了更加明晰的认识。

通过编写和调试程序,我也进一步熟悉了所用的编程环境LCT88EA应用软件和AEDK实验箱的功能和使用方法。

为以后进一步学习微机原理、汇编语言和硬件相关知识打下了很好的根底。

通过这次课程设计,我发现了我在以前学习中的缺点和缺乏,比方对芯片的相关命令和使用方法还不够纯熟;在课设中我还学会了8279的显示,不同方法计算占空比的值。

学会了对汇编语言的单步调试,找到问题的所在。

课设中,我教师和同学都给予我很大的帮助,同学们总是在我要放弃时给我指点,给我鼓励。

教师在我迷茫的时候给我指出问的所在。

这些都使我的课设顺利完成,非常快乐有这样的教师和同学。

指导教师评语:

 

指导教师(签字):

      年月日

课程设计成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1