ImageVerifierCode 换一换
你正在下载:

汇编.docx

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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

汇编.docx

1、汇编课程设计报告书 学院:土木工程班级:交通C设计人:李晓健(026878)一、设计题目:电压报警器的单片机模拟二、总体设计1) 所实现的功能描述电压波动会导致电器工作异常并烧毁,因而时刻检测电压并发出警告非常必要,本课题用ADC模拟电压波动的过程,程序检测到电压过低或者过高以后使用闪动的灯光报警。2) 设计方案的描述鉴于实际条件的限制,本试验采用实验板自带的ADC转换来模拟电压检测,电压在1-4V范围内属于正常,否则报警,报警灯光可以使用闪动的LED发光二极管来模拟,用户通过操作电压旋转按钮来改变电压模拟波动的过程。三、件系统设计,包括所需设备,接线方式,以及资源分配。应用PC机、DICE-

2、598H实验仪及8155+芯片,用实验板自带的ADC转换来模拟电压检测四、软件系统的设计,包括划分功能模块,写出各个功能模块实现的功能。画出程序流程图)ADC0809的内部逻辑结构)程序设计流程图四、列出程序清单,并加以必要的注释ORG 0000HMOV p1,#0ffhSE11: MOV SP , #70h MOV 7EH, #00H MOV 7DH , #08HMOV 7CH , #00H MOV 7BH , #09H MOV 7AH, #10H MOV 79H , #10H MOV DPTR , #0FF20H MOV A, #03h MOVX DPTR , AL991: LCALL s

3、e MOV A , #00H MOV DPTR , #8000H MOVX DPTR , A ;启动AD转换 MOV R7 ,#0FFHL017: DJNZ R7 , L017 MOVX A ,DPTR ;读取转换结果 MOV R0 , #79H lcall comlo: LCALL PTDS SJMP L991PTDS: MOV R1 , A ACALL PTDS1 MOV A , R1 SWAP APTDS1: ANL A , #0FH MOV R0 , A INC R0 RETse: SETB RS1 MOV R5 , #05HSsE2: MOV 30H , #20H MOV 31H ,

4、 #7EH MOV R7 , #06HSSHH: MOV R1 , #21H MOV A , 30H MOVX R1 , A MOV R0 , 31H MOV A , R0 MOV DPTR , #DDFF MOVC A , A+DPTR MOV R1 , #22H MOVX R1 , A LCALL DLY MOV A , 30H RR A MOV 30H , A DEC 31H MOV A , #0FFH MOVX R1 , A DJNZ R7 , SSHH DJNZ R5 , SSE2 CLR RS1 RETcom: push aCC cjne a, #50d,ne1 retne1:jc

5、 dan1 cjne a ,#200d,ne2 retne2:jc lodan1:mov p1,#11101111b pop aCC retDDFF: DB 0C0H , 0F9H , 0A4H ,0B0H DB 99H , 92H , 82H , 0F8H , 80H , 90H DB 88H , 83H , 0C6H , 0A1H DB 86H , 8EH , 0FFH , 0CH , 89H , 0DEHDLY: MOV 40H , #02HD1: MOV 3FH , #0FAH DJNZ 3FH , $ DJNZ 40H , D1 RETEND六、写出调试程序的方法首先连接硬件设备,旋

6、动电压旋扭模拟电压波动,当电压超出允许范围是红灯亮,并且切断电压输出,当旋动电压旋扭到允许范围内时,电压中断停止,红灯灭。七、指出所设计问题的不足和改进方案由于条件限制实验模拟并不能解决实际中遇到的情况。八、自评分和收获体会通过学习单片机的原理和一周的程序设计实习,使我们充分了解了的它的实用性和在工业中的优势地位。所以我们一定要认真学好单片机课程,以便在今后的工作中可以充分的利用它优势。此次程序设计我们的题目是电压报警的模拟,虽然题目并不是很难,但其非常具有代表性,是一个典型的上下限报警模型。可以让我们充分了解实验版ADC转换。总的来说,这次电压报警器的单片机模拟设计使我们收获颇大!计算机在启

7、动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。AT89S52单片机有一个复位引脚RST,它是史密特触发输入(对于CHMOS单片机,RST引脚的内部有一个拉低电阻),当振荡器起振后该引脚上出现2个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,MCS-51保持复位状态。此时ALE、PSEN、P0、P1、P2、P3口都 输出高电平。RST变为低电平后,退出复位,单片机从初始状态开始工作。单片机采用的复位方式是按键复位方式。当复位信号输入段RSSET出现一定时间的高电平时,只要高电平时间足够长,就可以使AT89S5

8、2有效的复位。RST端在加电时应保持的高电平时间包括VCC的上升时间和振荡器起振的时间,Vss上升时间若为10ms,振荡器起振的时间和频率有关。10MHZ时约为1ms,1MHZ时约为10ms,所以一般为了可靠的复位,RST在上电应保持20ms以上的高电平。RC时间常数越大,上电RST端保持高电平的时间越长。若复位电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常运转。因此对于中央处理器CPU,在启动状态时复位电路必要。 时钟电路用于产生单片机工作所需的时钟信号。一般时钟信号有两种方式,内部时钟信号和外部时钟信号。 内部时钟方式为片内震荡器,通过单片机的引脚XTAL1和XTAL2为片

9、内震荡器的输入端和输出端,在XTAL1和XTAL2两端跨接晶体或陶瓷谐振器,这样就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟发生器。在连接外部时钟方式时,一般采用采用外部震荡器,外部震荡脉冲信号通过XTAL1端接入后直接送至内部时钟发生器,因此输出端XTAL2应悬浮。不过因为XTAL1的逻辑电平不是TTL的,因此需外接一个上拉电阻。对于本设计的电压越限报警器,由于电路只需一块单片机芯片进行工作,并且由于在AT89S52单片机芯片的内部有一个高增益反向放大器,因此进行内部时钟方式因此本设计采用内部时钟方式。#define uchar unsigned char#define uint

10、unsigned intsbit GATE=P20;sbit BP=P21;uint t_count,int 0_count;+定时器0中断服务子程序*void timer0()interrupt1 USing 1(TR0=0;停止计数TH0=一5000256;重设5ms计数TL0=一5000256:t_count+;if(it_count600)第一次外部中断0产生后3S( if(int0_count=1)还没有出现第二次外部中断0,则认为充电完毕(GATE=0;关闭充电电源BP=0;打开蜂鸣器报警)e1se否则即是充电出错(GATE =1;BP =1;)ET0=0;关闭TO中断EX0=0;

11、关闭外部中断0int0_count=0;t_count=0;)elseTR0=1;TO开始计数) *外部中断0服务子程序+void int0()interrupt 0 USing 1( if(int0_count=0)(TH0=一5000f256;/ /5ms定时TL0=一5000256;TRO=1:启动定时计数器O计数t_count=0;产生定时器0中断的计数器清零)intOcount+;)*初始化*void init()(EA=1;打开cpu中断PTO =1T0中断设为高优先级TMOD=0X01;模式1,TO为16位定时计数器ETO=1;打开TO中断ITO=1;外部中断O设为边沿触发EXO=l;打开外部中断OGATE=1;光耦正常输出电压Bp=1;关闭蜂鸣器Int0_count=O产生外部中断O的计数器清零)void main()(*调用初始化函数*init();*无限循环*while(1);)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2