第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/7/9 22:02:20 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

.

第四章 中断类

例4-1 P104

假设外部中断0和外部中断1均为下降沿触发,当外部中断0发生时,P0端口的电平反向,当外部中断1发生时,P1端口的电平反向。

#include

void IS0(void) interrupt 0 { { {

P0=~P0;} //P0端口反向 P1=~P1;} //P1端口反向 P0=0x00; P1=0xFF; void IS1(void) interrupt 2 void main( )

IT0=1; IT1=1; EX0=1; EX1=1; EA=1; while(1); }

【例4-9】外部中断示例

可编辑

.

在本实例中,首先通过P1.7口点亮发光二极管D1,然后外部输入一脉冲串,则发光二极管D1亮、暗交替。

#include sbit P1_7=P1^7;

void interrupt0( ) interrupt 0 using 2 //外部中断0 { {

P1_7=!P1_7;} EA=1;

//开中断

//外部中断0

void main( )

IT0=1; //外部中断0脉冲触发 EX0=1;

P1_7=0; do{ }while(1); }

如果有3个脉冲,则灯亮、暗交替一次,可如下面编程: #include Sbit P17=P1^7; unsigned char i=3; void main( ) {

EA=1; IT0=1; EX0=1; P17=0;

可编辑

.

do{ }while(1); } void interrupt0( ) interrupt 0 { i=i-1; if(i==0) { } }

【例4-10】如图4-18所示,8只LED阴极接至单片机P0口,两开关S0、S1分别接至单片机引脚P3.2()和P3.3()。编写程序控制LED状态。按下S0后,点亮8只LED;按下S1后,变为闪烁状态。

P17=!P17; i=3;

#include sbit P32=P3^2;

void delay(unsigned int d) //定义延时子函数 { }

void main( ) {

P0=0xFF;

//熄灭LED

//外中断0、1脉冲触发方式

IT0=1; IT1=1;

while(--d>0);

可编辑

.

EA=1; EX0=1; EX1=1; //开中断 for( ; ; ) {;} } { }

void INT1_ISR( ) interrupt 2//外中断1中断服务函数 {

while(P32!=0)

//如果有外部中断0,则退出

{

delay(5000);

void INT0_ISR( ) interrupt 0//外中断0中断服务函数

P0=0x00;

//延时等待中断发生

P0=0x00; delay(5000); P0=0xFF; } } 定时类

【例4-16】设单片机的fosc=12MHz,要求在P1.0上产生周期为2ms的方波。

要在P1.0上产生周期为2ms的方波,定时器应产生1ms的周期性定时,定时到对P1.0取反。

要产生1ms的定时,应选择方式1,定时器方式。

TMOD的确定:选择定时器/计数器T0,定时器方式。方式1,GATE不起作用,高4位为0000,TMOD=01H。

TH、TL的确定:单片机的fosc=12MHz,则单片机的机器周期为1ms,1ms=1000ms,计数器的计数初值为65 536-1000,TH0=(65 536-1000)/256,TL0=(65 536-1000)%6。 ① 采用查询方式 程序如下:

#include sbit P1_0=P1^0; void main(void) {

TMOD=0x01;

TR0=1;

for(;;)

可编辑

《单片机的C语言程序设计与运用(第2版)》期末复习题及答案2.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9mq08751z66ksx797jw59jajr88l5800wt4_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top