单片机实验——单相方波波形发生器.doc_第1页
单片机实验——单相方波波形发生器.doc_第2页
单片机实验——单相方波波形发生器.doc_第3页
单片机实验——单相方波波形发生器.doc_第4页
单片机实验——单相方波波形发生器.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机实验单相方波波形发生器1.实验目的(1)掌握单片机定时器基本原理和使用方法。(2)掌握单片机中断程序的编制方法。2.预习要点(1)单片机定时器基本原理(2)中断程序编制方法3.实验设备计算机、单片机实验箱,示波器。4.实验内容基本要求:(1)利用定时器在p1.1输出方波,方波的周期为50ms,占空比为50%。 (2)改上例中方波的占空比为25%。扩展要求:接实验四的基本内容,利用定时器T0,每10秒改变一次跑马灯的方向。实验5(1) ORG 0000H SJMP MAIN;*8* ;中断入口地址 ORG 000BH LJMP T0INT;* ;主程序 ORG 0030H MAIN:MOV SP,#70H MOV TMOD,#01H ;T0选择方式1,16位定时器 MOV TH0,#0F6H ;#9EH ;因为用示波器观察20HZ的方波不易观察,频率太低了,所以我换成了 MOV TL0,#3CH ;#58H ;200HZ的,原理都是一样的,这样只是为了让波形更容易观察,后者是20HZ的初值 SETB EA ;开总中断 SETB ET0 ;开定时器0中断 SETB TR0 ;启动定时器0 SJMP$ ;死循环;* ;定时器0中断子程序 (25ms 2.5ms来一次中断) T0INT:MOV TH0,#0F6H ;#9EH ;重新赋初值 MOV TL0,#3CH ;#58H CPL P1.1 ;改变电平 RETI;*实验5(2) ORG 0000H SJMP MAIN;* ;中断入口地址 ORG 000BH LJMP T0INT ;一般用长跳转;* ;主程序 ORG 0030H MAIN:MOV SP,#70H MOV TMOD,#01H ;T0选择方式1,16位定时器 MOV TH0,#0FBH ;#0CFH ;因为用示波器观察20HZ的方波不易观察,频率太低了,所以我换成了 MOV TL0,#1EH ;#2CH ;200HZ的,原理都是一样的,这样只是为了让波形更容易观察,后者是20HZ的初值 SETB EA ;开总中断 SETB ET0 ;开定时器0中断 CLR P1.1 ;让刚开始的时候输出低电平 MOV R3,#0 ;R3为P1.0的状态 MOV R4,#3 SETB TR0 ;启动定时器 SJMP$;* ;中断子程序(12.5ms 1.25ms来一次中断) T0INT:MOV TH0,#0FBH ;#0CFH ;重新赋初值 MOV TL0,#1EH ;#2CH CJNE R3,#1,NEXT ;R3为P1.0的状态,如果不为1,则跳转NEXT,为1则立即变为低电平 CPL P1.1 MOV R3,#0 ;变为低电平后同时改变电平标志 MOV R4,#3 ;低电平持续的时间 3*12.5ms 3*1.25ms RETI NEXT:DJNZ R4,NEXT1 ;如果R4-1=0说明低电平时间已经够了,接着变为高电平,同时改变电平标志 CPL P1.1 MOV R3,#1 NEXT1:RETI;*实验5扩展 SEC EQU 42H ;为时分秒定义,伪指令,不占地址 MIN EQU 41H HOUR EQU 40H ORG 0000H SJMP MAIN;* ;定时器入口地址 ORG 000BH SJMP T0INT;* ;主程序 ORG 0030H MAIN: MOV SP,#70H MOV 40H,#11H ;设置初始时间 11:11:11 MOV 41H,#11H ; () MOV 42H,#11H ;初始化8155 MOV DPTR,#0100H MOV A,#03H MOVX DPTR,A ;初始化定时器T0 MOV TMOD,#02H MOV TH0,#38H MOV TL0,#38H SETB ET0 SETB EA SETB TR0 LOOP: LCALL SEPARATE ;分离子程序 LCALL DISPLAY ;显示 SJMP LOOP;* ;定时器中断服务程序 T0INT: ;PUSH PSW ; 不知道为什么用了保护现场和还原现场之后程序就会死! ;PUSH ACC ; 这个到现在还没明白,准备去请教杏春大神. INC R4 CJNE R4,#50,NEXT1 MOV R4,#0 INC R5 CJNE R5,#100,NEXT1 MOV R5,#0 LCALL SECPRO ;POP ACC ;POP PSW NEXT1: RETI;* ;秒处理子程序SECPRO: INC SEC MOV A,#60 ;判断秒是否满60 CJNE A,SEC,NEXT2 MOV SEC,#0 INC MIN MOV A,#60 ;判断分是否满60 CJNE A,MIN,NEXT2 MOV MIN,#0 INC HOUR MOV A,#24 ;判断时是否满24 CJNE A,HOUR,NEXT2 MOV HOUR,#0 NEXT2: RET;* ;显示子程序 DISPLAY: MOV R0,#30H MOV R3,#0FEH LD0:MOV DPTR,#0102H ;送字位 MOV A,R3 MOVX DPTR,A MOV DPTR,#DTAB ;查表,送字形 MOV A,R0 MOVC A,A+DPTR MOV DPTR,#0101H MOVX DPTR,A LCALL DELAY INC R0 MOV A,R3 JNB ACC.7,LD1 RL A MOV R3,A LJMP LD0 LD1:RET;* ;分离字子程序 SEPARATE: SETB RS0 ;换第二组R0-R7 MOV R0,#40H ;时分秒存放的地址 MOV R1,#30H ;显示缓存区 MOV R2,#03H ;分离次数,时分秒,三次 LP:MOV A,R0 ;十位分离 ADD A,#0 DA A ANL A,#0F0H SWAP A MOV R1,A INC R1 MOV A,R0 ;个位分离 ADD A,#0 DA A ANL A,#0FH MOV R1,A INC R1 MOV R1,#10 ;- 的字符 时分秒之间的间隔 INC R1 INC R0 DJNZ R2,LP CLR RS0 ;恢复第一组R0-R7 RET;* ;延时1msDELAY: MOV 4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论