网站大量收购独家精品文档,联系QQ:2885784924

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

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

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《单片机的C语言程序设计与运用(第2版)》期末复习题及答案.doc

第四章 中断类 例4-1 P104 假设外部中?断0和外部?中断1均为?下降沿触发?,当外部中断?0发生时,P0端口的?电平反向,当外部中断?1发生时,P1端口的?电平反向。 #inclu?dereg51?.h void IS0(void) inter?rupt 0 { P0=~P0;} //P0端口反? void IS1(void) inter?rupt 2 { P1=~P1;} //P1端口反? void main( ) { P0=0x00; P1=0xFF; IT0=1; IT1=1; EX0=1; EX1=1; EA=1; while?(1); } 【例4-9】外部中断示?例 在本实例中?,首先通过P?1.7口点亮发?光二极管D?1,然后外部输?入一脉冲串?,则发光二极?管D1亮、暗交替。 #inclu?dereg51?.h sbit P1_7=P1^7; void inter?rupt0?( ) inter?rupt 0 using? 2 //外部中断0? { P1_7=!P1_7;} void main( ) { EA=1; //开中断 IT0=1; //外部中断0?脉冲触发 EX0=1; //外部中断0? P1_7=0; do{ }while?(1); } 如果有3个?脉冲,则灯亮、暗交替一次?,可如下面编?程: #inclu?dereg51?.h Sbit P17=P1^7; unsig?ned char i=3; void main( ) { EA=1; IT0=1; EX0=1; P17=0; do{ }while?(1); } void inter?rupt0?( ) inter?rupt 0 { i=i-1; if(i==0) { P17=!P17; i=3; } } 【例4-10】如图4-18所示,8只LED?阴极接至单?片机P0口?,两开关S0?、S1分别接?至单片机引?脚P3.2()和P3.3()。编写程序控?制LED状?态。按下S0后?,点亮8只L?ED;按下S1后?,变为闪烁状?态。 #inclu?dereg51?.h sbit P32=P3^2; void delay?(unsig?ned int d) //定义延时子?函数 { while?(--d0); } void main( ) { P0=0xFF; //熄灭LED? IT0=1; IT1=1; //外中断0、1脉冲触发? EA=1; EX0=1; EX1=1; //开中断 for( ; ; ) //延时等待中?断发生 {;} } void INT0_?ISR( ) inter?rupt 0//外中断0中?断服务函数? { P0=0x00; } void INT1_?ISR( ) inter?rupt 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的?周期性定时?,定时到对P?1.0取反。 要产生1m?s的定时,应选择方式?1,定时器方式?。 TMOD的?确定:选择定时器?/计数器T0?,定时器方式?。方式1,GATE不?起作用,高4位为0?000,TMOD=01H。 TH、TL的确定?:单片机的f?osc=12MHz?,则单片机的?机器周期为?1ms,1ms=1000m?s,计数器的计?数初值为6?5 536-1000,TH0=(65 536-1000)/256,TL0=(65 536-1000)%256。 ① 采用查询方?式 程序如下: #inclu?dereg51?.h sbit P1_0=P1^0; void main(void) { TMOD=0x01; TR0=1; for(;;) { TH0=(65536?-1000)/256; TL0=(65536?-1000)%256; do{ }while?(!TF0); P1_0=!P1_0; TF0

您可能关注的文档

文档评论(0)

czy2014 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档