《单片机的C语言程序设计与运用(第2版)》期末复习题及答案2

更新时间:2023-05-16 10:05:42 阅读: 评论:0

      第四章
中断类
4-1 P104
假设外部中断0和外部中断1均为下降沿触发,当外部中断0发生时,P0端口的电平反向,当外部中断1发生时,P1pixels端口的电平反向。
#include<reg51.h>
void  IS0(void)  interrupt  0
{    P0=~P0;}      //P0端口反向
void  IS1(void)  interrupt  2
{    P1=~P1;}    //P1端口反向
anythingispossible
void main( )
{    P0=0x00;    P1=0xFF;
      IT0=1;    IT1=1;
      EX0=1;    EX1=1;    EA=1;
公司员工培训课程
      while(1);
}
【例4-9】外部中断示例
在本实例中,首先通过abc australiaP1.7口点亮发光二极管D1,然后外部输入一脉冲串,则发光二极管D1亮、暗交替。
#include<reg51.h>
sbit  P1_7=P1^7;
void interrupt0( ) interrupt 0 using 2  //外部中断0
{    P1_7=!P1_7;}
void  main( )
{    EA=1;        //开中断
      IT0=1;    //外部中断0exhaust脉冲触发
      EX0=1;        //外部中断0
      P1_7=0;                       
      do{ }while(1);
}
如果有3个脉冲,则灯亮、暗交替一次,可如下面编程:
#include<reg51.h>
Sbit  P17=P1^7;
unsigned  char i=3;
void  main( )
{    EA=1;    IT0=1;    EX0=1;
andrea corr        P17=0;
do{ }while(1);      }
void interrupt0( ) interrupt 0
{  i=i-1;
    if(i==0)
    {    P17=!P17;      i=3;
    }
}foreigner怎么读
【例4-10】如图4-18所示,8LED阴极接至单片机P0口,两开关S0S1分别接至单片机引脚P3.2()和P3.3()。编写程序控制LED状态。按下S0后,点亮8LED;按下S1后,变为闪烁状态。
#include<reg51.h>
sbit  P32=P3^2;
void delay(unsigned int d)      //定义延时子函数
{    while(--d>0);
void  main(  )   
{    P0=0xFF;        //熄灭LED
      IT0=1;    IT1=1;        //外中断01脉冲触发方式
      EA=1;    EX0=1;    EX1=1;    //开中断
      for( ; ; )            //延时等待中断发生
      {;}
}       
void  INT0_ISR( ) interrupt 0//外中断0中断服务函数
{    P0=0x00;
}
void  INT1_ISR( ) interrupt 2//外中断1中断服务函数
{    while(P32!=0)        //如果有外部中断0,则退出
    {    delay(5000);           
        P0=0x00;
      delay(5000);
      P0=0xFF;
    }
}
定时类
四级考试时间安排
【例4-16】设单片机的fosc=12MHz,要求在P1.0上产生周期为2ms的方波。
要在P1.0上产生周期为2ms的方波,定时器应产生照片的英文单词1ms的周期性定时,定时到对P1.0取反。
要产生1ms的定时,应选择方式1,定时器方式。
TMOD的确定:选择定时器/计数器T0,定时器方式。方式1GATE不起作用,高4位为0000TMOD=01H
数列求和方法
THTL的确定:单片机的fosc=12MHz,则单片机的机器周期为1ms1ms=1000ms,计数器的计数初值为65 536-1000TH0=65 536-1000/256TL0=65 536-1000%256
采用查询方式
程序如下:
#include<reg51.h>
sbit  P1_0=P1^0;
void  main(void)
{    TMOD=0x01;
            TR0=1;
for(;;)
{    TH0=(65536-1000)/256;

本文发布于:2023-05-16 10:05:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/652703.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:中断   方式   单片机   脉冲
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图