我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 693|回复: 0

通过定时器0产生1mS方波

[复制链接]

该用户从未签到

135

主题

2418

回帖

6591

积分

二级逆天

积分
6591

社区居民社区劳模原创达人最爱沙发忠实会员终身成就奖优秀斑竹奖

QQ
发表于 2015-3-21 13:03:05 | 显示全部楼层 |阅读模式
/*-----------------------------------------------
  名称:定时器0
  修改:无
  内容:通过定时产生1mS方波
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

sbit OUT=P1^2;    //定义OUT输出端口

/*------------------------------------------------
                    定时器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
TMOD |= 0x01;      //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响            
//TH0=0x00;          //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
//TL0=0x00;
EA=1;            //总中断打开
ET0=1;           //定时器中断打开
TR0=1;           //定时器开关打开
}
/*------------------------------------------------
                    主程序
------------------------------------------------*/
main()
{
Init_Timer0();
while(1);
}

/*------------------------------------------------
                 定时器中断子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 using 1
{
TH0=(65536-500)/256;          //重新赋值 12M晶振计算,指令周期1uS,
TL0=(65536-500)%256;         //1mS方波半个周期500uS,即定时500次
                              //溢出然后输出端取反

OUT=~OUT;        //用示波器可看到方波输出

}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表