定时器实验计数器实验.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验五:定时器实验实验是利用片内定时器和计数器进行定时,定时时间为1s。单片机的P1.0脚接一个发光二极管,控制发光二极管闪烁,时间间隔为1s实验程序:ORG 0000HORG 0000HAJMP MAINORG 000BHAJMP TOINTORG 0030HMAIN:MOV TMOD,#01H;T0定时方式1 MOV TH0,#3CH MOV TL0,#0B0H;装50ms初始值 MOV IE,#82H;总中断开关,T0开关 SETB TR0;启动T0 MOV R7,#14H;循环次数,1s SJMP $TOINT:MOV TH0,#3CH MOV TL0,#0B0H;重装50ms初始值 DJNZ R7,NEXT;判断R7是否等于0,等于零灯亮 CPL P1.0 ;P1.0取反 MOV R7,#14H ;重装循环次数NEXT:RETI;中断返回 END把汇编程序编译生成hex机器码文件,加载进AT89C51中,进行仿真。proteus电路图如下:仿真图如下每隔一秒钟绿灯闪一次实验六:计数器实验一.实验要求利用单片机内定时器、计数器T0的计数模式,对T0引脚上的按键开关按下次数进行显示计数。实验程序如下:ORG 0000H;程序起始地址AJMP MAIN;主程序地址入口ORG 000BHAJMP INT;中断入口地址ORG 0100HMAIN:MOV A,#00H ;赋A初始值0 MOV TMOD,#06H ;设置计时方式2,T0计时器 MOV IE,#82H ;设置中断开关 MOV TH0,#0FFH ;保存初始值FFH MOV TL0,#0FFH ;放置初始值 SETB TR0 ;启动计时器T0 LP:SJMP LPINT:INC A ;中断 MOV P1,A RETI END把汇编程序编译生成hex机器码文件,加载进AT89C51中,进行仿真。proteus电路图如下:开始仿真,截图如下:5.60秒倒计时钟程序如下:ORG 0000HAJMP MAINORG 000BHAJMP TOINTORG 0030HMAIN:MOV R6,#59;秒单位初始值59 MOV TMOD,#01H;定时器T0方式1 MOV TH0,#3CH MOV TL0,#0B0H;装入初始值50ms MOV IE,#82H;设置中断 SETB TR0 ;启动T0 MOV R7,#14H ;循环次数20次,时间一秒 SJMP $TOINT:MOV TH0,#3CH MOV TL0,#0B0H;重装初始值50ms DJNZ R7,NEXT ;R7是否等于0 CJNE R6,#00H,EX ;R6不等于00H,跳到EX,等于00H,就从59开始显示 MOV R6,#59 ;设置初始显示值59 MOV R7,#14H ;循环次数20次,时间一秒 MOV A,R6 MOV B,#10 DIV AB MOV P2,A MOV P3,BNEXT:RETIEX:DEC R6 MOV R7,#14H MOV A,R6 MOV B,#10 DIV AB MOV P2,A;取秒单位十位数输出P2 MOV P3,B;取秒单位个位数输出P3 RETIEND把汇编程序编译生成hex机器码文件,加载进AT89C51中,进行仿真。proteus电路图如下:仿真截图:5.10单片机控制82c55产生500hz方波AT89C51单片机外部拓展扩1片可编程并行I/o接口芯片,并控制82c55的pc5引脚输出500hz方波。程序如下:MAIN: CON EQU 0xFF7F PC1 EQU 0XFF7E A5 EQU 0E5H MOV R0,#5 ;1ms的循环次数 MOV TMOD ,#02H MOV TH0,#38H MOV TL0, #38H ;装初值 MOV DPTR,#CON;8255控制口地址送到DPTR MOV A,#80H;控制字送到A MOVX @DPTR ,A ;控制字写入控制寄存器 MOV A,#0FFH SETB EA;开总中断 SETB ET0 ;开T0中断 SETB TR0 ;启动T0LP: SJMP LP ;等待中断INT:DJNZ R0,DDT MOV DPTR ,#PC1 ;读入8255a的PC口MOVX A,@DPTR CPL A5 ;PC5取反MOV DPTR,#PC1MOVX @DPTR,A;8255aPC5取反后送PC口输出,产生方波MOV R0,#5RETI DDT:RETIENDproteus电路图如下:仿真截图:

文档评论(0)

beifanglei + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档