ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:53.62KB ,
资源ID:23551825      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23551825.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(占空比可调的脉冲发生器.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、占空比可调的脉冲发生器沈阳航空航天大学课 程 设 计 报 告课程设计名称:微机系统综合课程设计课程设计题目:占空比可调的脉冲发生器院(系):计算机学院专 业:计算机科学与技术班 级:学 号:姓 名:指导教师:张维君完成日期:2012年7月15日第1章 总体设计方案1.1课程设计的内容和要求一、课程设计内容:具体内容如下:1. 用8255和8253产生脉宽可调的脉冲信号;2. 用实验箱上键盘中的两个按键调节脉冲;3. 按脉宽增加键脉宽逐渐增大,按脉宽减小键脉宽逐渐减小;二、课程设计要求:1. 认真查阅相关资料;2. 独立设计、调试并通过指导教师现场验收;3. 撰写课程设计报告。1.2 课程设计原

2、理根据课设要求,要实现通过键盘按键调节脉宽的脉冲信号发生器。本次设计中主要使用了8259可编程中断控制器,8255可编程并行接口芯片,8279键盘/显示芯片,8253定时/计数器以及部分连线来实现以上功能。利用8253芯片产生一定频率的脉冲信号,并用8255芯片以程序查询方式,检测该信号上高、低电平的持续时间,还要利用8259芯片的中断信号扫描信号,通过改变高电平的持续时间来调节占空比。最后,应用8279芯片将结果显示到数码管上。1.3 方案设计根据本次课程设计要求,用8253芯片计数器0产生低频率的方波信号,然后叠加一个矩形波,使之成为一个改变分频就可以改变占空比的矩形波。再将该矩形波作为计

3、数器1产生的输入信号,使计数器1产生脉宽可调的脉冲信号,并把该脉冲信号接到8255的一个引脚(PB0),运用程序查询方式循环检测这个引脚高、低电平持续时间。利用芯片8259的中断功能循环扫描芯片8253计数器1的分频数,通过分频数计算占空比的值。在BX中存放分频数 NUM,在CX中存放(NUM-1)。然后,将BX中的数扩大100倍,再除以CX中的值,以此来计算出被扩大100倍后的占空比;接下来就是显示正确的占空比,将前面得到的准占空比除以10,再将AH中的结果存到CH中,将AL中的结果存到CL中,最后,由8279芯片将最终结果显示到数码管上。1.4 方案论证通过仔细阅读课程设计任务书,对本次课

4、程设计所要完成的题目和要求要充分理解,从以下两方面进行方案论证。 对预设使用的芯片进行论证8253可编程定时/计数器的功能:一是作为计数器,即在设置好计数初值后,便开始对外部脉冲作减1操作,当减为0时,输出一个信号;二是作为定时器,在设置好定时参数后,便开始对外部信号作减1操作,并按定时常数不断地输出为时钟周期整数倍的定时间隔。8255A是可编程并行输入输出接口芯片,具有三个8位并行端口,40个引脚,双列直插式封装。有三种输入输出方式,用于输出给定信号。8259A是可编程中断控制器芯片,用于管理和控制80x86的外部中断请求,坑人可实现中断优先级判定,提供中断信号,屏蔽中断输入等功能。8279

5、是可编程键盘/显示接口芯片。它的功能主要包括键盘输入和显示控制部分,其中键盘部分提供扫描功能。显示部分则是提供扫描方式的显示接口,可与8位或16位LED数码管连接构成。 对预设计的程序进行论证用小灯测试8253芯片产生的脉冲信号的频率,已达到设计中所要求的低频率信号。逐步测试数据采集模块,计算占空比模块,显示模块。经过认真仔细论证,证明所提出的方案切实可行。1.5设计环境软件环境:LCT88EA应有软件、Win2000、PC机硬件环境:AEDK实验箱第2章 详细设计方案2.1 模块设计1. 主模块:在主程序中,主要实现各个芯片的初始化,将8253芯片的计数器0设置为工作方式3,低8位读写,二进

6、制计数方式,使其输出方波在与一个矩形波叠加产生新的矩形波。,再将该矩形波作为计时器1的输入信号,并将计数器1设置为工作方式2,低8位读写,十进制计数方式,使计数器1产生低频率符合要求的脉冲信号;2. 数据结构部分:用BX寄存器存储当前的分频数,用CX寄存器存储当前分频数减一数。在内存中开辟了一个字节空间DISBUF,用来存放每种模式所要显示的结果在TAB表中的编码,在中断服务程序中通过按照这个空间中的8个编码查表显示数码管上所要显示的结果。3. 数据采集模块:采用程序查询方式,循环检测8253芯片计数器1的分频状态。记录当前分频数NUM,并保存到BX寄存器。4. 计算占空比模块:将BX中的数减

7、一得到的数存入CX中,然后,将BX中的数乘以100,再除以CX中的值,以此来计算出被扩大100倍后的占空比;接下来就是显示正确的占空比,将前面的到的准占空比除以10,再将AH中的结果存到CH中,将AL中的结果存到CL中。5. 显示模块:根据CH、CL中的值,由8279芯片查表后将对应的数据显示到数码管上,以得到最后的正确结果。2.2 程序流程图本次设计的主流程图如图2.2.1所示;采集数据模块流程图如图2.2.2所示;计算占空比模块流程图如图2.2.3所示;显示占空比模块流程图如图2.2.4所示。 图2.2.1 占空比测量的主流程图 图2.2.2 数据采集模块流程图 图2.2.3 计算占空比模

8、块流程图图2.2.4 显示模块流程图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章 调试及结果分析3.1 调试步骤及方法在开始的时候,每次都没有结果显示。于是通过单步调试,通过查看各个寄存器中

9、的值,来验证各模块是否正常跳转以及模块的正确性。结果,在数据中断中没有中断产生。经过调试,可以正常显示预定的占空比的值,但是无法对占空比进行调节。经过思考发现,问题出在数据显示模块,每次显示完第一次预定的值以后没有对数码管进行清空,所以显示出现问题。之后,修改程序,在每次显示之前对数码管进行清空操作。问题得到解决。进一步修改,在计算模块中,将BX寄存器中的值乘以100后得到的结果存到AX寄存器中,用DX:AX做被除数,防止因BX中数值过大而使AL寄存器产生溢出而得到的不正确的结果。修改后,再次测试,则可以得到稳定而且正确的结果,误差很小。3.2 实验结果本设计已经基本满足任务书的要求。现将结果

10、简单介绍如下:1. 当将计数器1的初值赋为5,即产生五分频的脉冲信号时,数码管显示结果为0.80;2. 当按下实验箱上的”+”时,显示的占空比值增加,向1逼近。3. 当按下实验箱上的”-”时,显示的占空比值减小。向0.5逼近。3.3 结果分析由实验结果可知,由8253产生的方波最小的占空比的值为0.5。方波和矩形波叠加之后应该可以产生占空比小于0.5的值,但是此程序没有实现这个功能,有待提高。参考文献1 龚尚福.微机原理与接口技术M.西安:西安电子科技大学出版社,20032 王忠民.微型计算机原理M. 西安:西安电子科技大学出版社,20033 沈美明,温冬婵. IBM-PC汇编语言程序设计M.

11、北京:清华大学出版,2001附 录(源程序)TIM_CTL EQU 22bHTIMER0 EQU 228HTIMER1 EQU 229HTIMER2 EQU 22AHPC8255 EQU 203HPC8255C EQU 202HPC8255B EQU 201HZ8279 EQU 212HD8279 EQU 210HLEDMOD EQU 00H ;左边输入,八位显示外部译码八位显示CODE SEGMENTASSUME CS:CODESTART: JMP S NUM DB 5S: cli MOV DX,Z8279 ;置空FIFO寄存器 MOV AL,0c2H OUT DX,AL CALL INIT

12、8253 CALL INIT8259 MOV DX,TIM_CTL MOV AL,00010110B ;计数器0,低8位读写,工作方式3,二进制 OUT DX,AL MOV AL,00000101B MOV DX,TIMER0 OUT DX,AL MOV DX,TIM_CTL MOV AL,01010101B ;计数器1,低8位读写,工作方式2,十进制 OUT DX,AL MOV AL,NUM MOV DX,TIMER1 OUT DX,AL MOV DX,PC8255 MOV AL,10000010B ;A方式0,输出 B方式0,输入 C输出 OUT DX,AL MOV DX,PC8255B

13、MOV BX,0 MOV CX,0 CALL DISPLAY mov dx,223h out dx,al mov al,30h out dx,al STI JMP $A1: NOP JMP A1INIT8259: MOV AL,13H MOV DX,220H OUT DX,AL MOV DX,221H MOV AL,30H OUT DX,AL MOV AL,03 OUT DX,AL MOV AL,0FEH ;ocw1 OUT DX,AL IN AL,DX MOV AX,0 MOV DS,AX MOV SI,30H*4 MOV AX,OFFSET INTR1 MOV SI,AX MOV AX,C

14、S MOV SI+2,AX retINIT8253: push AX MOV DX,TIM_CTL MOV AL,00010110B ;计数器0,低8位读写,工作方式2,二进制 OUT DX,AL MOV AL,00000101B MOV DX,TIMER0 OUT DX,AL MOV AL,10110101B MOV DX,TIM_CTL OUT DX,AL MOV AX,6144 MOV DX,TIMER2 OUT DX,AL MOV AL,AH OUT DX,AL POP AX RET intr1: call readkey CMP AL,12H ;是减小 JE down CMP AL,

15、13H JE up iretDOWN: JMP AUP: INC NUM INC NUM JMP A RETA: MOV DX,Z8279 ;置空FIFO寄存器 MOV AL,0c2H OUT DX,AL CALL DISPLAY IRETreadkey: MOV DX,Z8279 ;置空FIFO寄存器 MOV AL,0C2H OUT DX,AL WAIIT: NOP MOV AX,0 IN AL,DX MOV BL,AL AND AL,80H CMP AL,80H JE WAIIT ;FIFO正在清除期间则跳转等待 MOV AL,BL AND AL,0FH CMP AL,00H JE WAI

16、IT ;无键按下则等待 MOV DX,Z8279 MOV AL,82H ;置 读FIFO RAM命令字 OUT DX,AL MOV DX,D8279 ;读入FIFO RAM内容 IN AL,DX ret DISPLAY: MOV CX,00H MOV BX,00H MOV DX,0 MOV CL,NUM DEC NUM MOV BL,NUM MOV AX,100 MUL BX DIV CX MOV CL,10 DIV CL MOV CH,AH ;个位 MOV CL,AL ;十位 PUSH CS POP DS MOV DX,Z8279 ;置空FIFO寄存器 MOV AL,0C2H OUT DX,

17、AL MOV DX,Z8279 MOV AL,LEDMOD OUT DX,AL MOV AL,90H OUT DX,AL MOV AL,CH LEA BX,LED XLAT MOV DX,D8279 OUT DX,AL ;显示个位 MOV AL,CL LEA BX,LED XLAT MOV DX,D8279 OUT DX,AL ;显示十位 MOV AL,10111111b MOV DX,D8279 OUT DX,AL ;显示小数点RETLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39HDB 5EH,79H,71H CODE EN

18、DSEND START课程设计总结:上个学期的微机原理课程结束以后,对所学的知识朦朦胧胧,缺乏实践的考验。通过本次课程设计,我对微机原理的理论知识有了更加深刻的理解,增强了动手能力。对所学的各芯片,尤其是8259,8253,8255, 8279这四个芯片的结构、功能和使用方法有了更加清晰的认识。通过编写和调试程序,我也进一步熟悉了所用的编程环境LCT88EA应用软件和AEDK实验箱的功能和使用方法。为以后进一步学习微机原理、汇编语言和硬件相关知识打下了很好的基础。通过这次课程设计,我发现了我在以前学习中的缺点和不足,比如对芯片的相关命令和使用方法还不够熟练;在课设中我还学会了8279的显示,不同方法计算占空比的值。学会了对汇编语言的单步调试,找到问题的所在。课设中,我老师和同学都给予我很大的帮助,同学们总是在我要放弃时给我指点,给我鼓励。老师在我迷茫的时候给我指出问的所在。这些都使我的课设顺利完成,非常高兴有这样的老师和同学。指导教师评语:指导教师(签字): 年 月 日课程设计成绩(学习的目的是增长知识,提高能力,相信一分耕耘一分收获,努力就一定可以获得应有的回报)

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

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