找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1449|回复: 0
收起左侧

单片机P1.0产生周期2ms方波程序

[复制链接]
ID:1044389 发表于 2022-10-4 20:14 | 显示全部楼层 |阅读模式
假设系统时钟为12MHz,设计电路并编写程序实现从P1.0引脚上输出一个周期为2ms的方波。

要在P1.0上产生周期为2ms的方波,定时器应产生1ms的定时中断,定时时间到则在中断服务程序中对P1.0求反。使用定时器T0,方式1定时中断,GATE不起作用。

其中在P1.0引脚接有虚拟示波器,用来观察产生的周期2ms的方波。

下面来计算T0初值X :
设T0的初值为X,有
      (216−X )×1×10−6=1×10−3
即    65 536−X=1 000
   得X=64 536,化为16进制数就是0xfc18。将高8位0xfc装入TH0,低8位0x18装入TL0。

仿真

仿真

代码

代码

参考单片机程序如下:
  1. #include <reg51.h>                  //头文件reg51.h
  2. sbit P1_0=P1^0;                        //定义特殊功能寄存器P1的位变量P1_0

  3. void main(void)                        //主程序
  4. {
  5.         TMOD=0x01;                //设置T0为方式1
  6.         TR0=1;                        //接通T0
  7.         while(1)                //无限循环
  8.         {
  9.         TH0=0xfc;                //置T0高8位初值
  10.         TL0=0x18;                //置T0低8位初值
  11.         do{}while(!TF0);        //TF0为0原地循环,为1则T0溢出,往下执行
  12.         P1_0=!P1_0;                // P1.0状态求反
  13.         TF0=0;                        //TF0标志清零
  14.         }
  15. }
复制代码

Keil代码与Proteus8.13仿真下载(注意只能用Proteus8.13打开): P1.0产生周期2ms方波.zip (49.17 KB, 下载次数: 14)

评分

参与人数 1黑币 +40 收起 理由
admin + 40 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表