ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

51单片机-PASCAL语言实例 6:使用定时器0

2021-02-16 21:05:56  阅读:178  来源: 互联网

标签:定时器 LED 中断 51 单片机 PASCAL end FM


// Test6.pas 
Program NewProgram;
// 本程序使用 Trubo51( https://turbo51.com/ ) 单片机 PASCAL 编译器
// 
// 
// 本程序演示 如何对定时器 0 编程 ,每次中断后逐一连续点亮LED灯
//  CPU 电路图、LED灯、蜂鸣器电路图请看前面实例
//  8051 单片机有两个定时器/计数器: T0 与 T1
//  
uses
    Delay,MyDefine;
    
    
// 定义定时器0中断程序 ,中断号External1在 system 中定义
procedure OnTimer0; interrupt Timer0 ; using 1;
begin
    TH0:=0;     // 要重新置0,硬件在这种模式是不会自动重填的
    TL0:=0;
    LED:= LED SHL 1;
   
end;


begin

    // 环境初始化
     
    LED:=$FF ; // 全不亮
    FM:=BEEP_OFF ; 
    
    
    // TMOD :  D7   D6  D5  D4 |  D3  D2  D1  D0
    //                T1       |        T0
    //         GATE CT  M1  M0 |  GATE CT M1 M0
    
    TMOD:=$01; // 设置 T0 工作方式为 1 ,16位定时器
    
    // TCON : D7    D6   D5   D4  |    D3   D2  D1  D0
    //       TF1   TR1  TF0  TR0 |     IE1 IT1 IE0 IT0
    
    TH0:=0;   // 计数器清零,每一个机器周期自动加1,超过65535 溢出 产生中断
    TL0:=0;
    
    EA:=True;  // 全局中断开
    ET0:=TRUE; // 定时器0 中断开
    TR0:= TRUE ; // 打开定时器 0
  
    
    // 循环里的命令可以中断同步进行
    while true do begin
        if $00=LED then LED:=$FF;    //灯全亮时要重新关闭
        Delayms(500);
        FM:=NOT FM;
    end;
   
end.

标签:定时器,LED,中断,51,单片机,PASCAL,end,FM
来源: https://blog.csdn.net/weixin_43754719/article/details/113828252

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有