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

C51语言复习题参考答案(3)

来源:网络收集 时间:2019-04-02 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

TR1=1; while(1); }

void timer1_int(void) interrupt 3 {

TH0=(65536-10000)/256; TL0=(65536-10000)%6; i++;

if(i==1) P1_1=0; else if(i==3) { } }

3.用单片机和内部定时器来产生矩形波,要求频率为100Hz,占空比为2:1,设单片机的时钟频率为12MHz,写出有关程序。(10分) 解:

#include unsigned char i; sbit P1_1=P1^1;

void main() {

i=0; TMOD=0x10;

TH0=(65536-10000)/256; TL0=(65536-10000)%6;

i=0; P1_1=1;

}

EA=1; ET1=1; TR1=1; while(1);

void timer1_int(void) interrupt 3 {

TH0=(65536-10000)/256; TL0=(65536-10000)%6; i++;

if(i==2) P1_1=0; else if(i==3)

{ i=0; P1_1=1; } }

4.如图1-1所示,单片机P1口的P1.0和P1.1各接一个开关S1、S2,P1.4、P1.5、P1.6和P1.7各接一只发光二极管。由S1和S2的不同状态来确定哪个发光二极管被点亮,如表1-4所示。(10分)

表1-4 S1、S2与二极管的关系 S2 0 0 1 1 S1 0 1 0 1 被点亮的二极管 VD1 VD2 VD3 VD4 解:(一)程序如下: #include void main() {

char a; a=P1 /*读P1口*/ a=a&0x03; /*屏蔽高6位*/ if(a==0) P1=0x83; else if a==1 P1=0x43; else if a==2 P1=0x23; else P1=0x13; }

(二)程序如下: #include “reg51.h” void main() { char a; a=P1; /*读P1口*/ a=a&0x03; /*屏蔽高6位*/ switch (a) { case0:P1=0x83;break; case1:P1=0x43;break; case2:P1=0x23;break; case3:P1=0x13; } }

(三)程序如下:

#include “reg51.h” void main() { char a; loop: a=P1; a=a&0x03; /*屏蔽高6位*/ switch (a) { case0:P1=0x83;break; case1:P1=0x43;break; case2:P1=0x23;break; case3:P1=0x13; } goto loop; }

(四)程序如下: #include “reg51.h” void main() { char a; while (1) { a=P1; a=a&0x03; /*屏蔽高6位*/ switch (a) { case0:P1=0x83;break; case1:P1=0x43;break; case2:P1=0x23;break; case3:P1=0x13; } } }

(五)程序如下: #include “reg51.h” void main() { char a; do { a=P1; a=a&0x03; /*屏蔽高6位*/ switch (a) { case0:P1=0x83;break; case1:P1=0x43;break; case2:P1=0x23;break; case3:P1=0x13; }

} while (1); }

(六)程序如下:

#include “reg51.h” void main() {

char a; for (; ;) {

a=P1;

a=a&0x03; /*屏蔽高6位*/ switch (a) {

case0:P1=0x83;break; case1:P1=0x43;break; case2:P1=0x23;break; case3:P1=0x13; } } }

5.外部中断0引脚(P3.2)接一个开关,P1.0接一个发光二极管。开关闭合一次,发光二极管改变一次状态,试编程。(10分)

解:程序如下: #include “reg51.h” #include “intrins.h” void delay(void) { int a=5000; while(a--)_nop_(); } void int_srv(void)interrupt 0 using 1

{ delay(); if(INT0==0) {P10=!P10;while(INT0==0);} }

void main() { P10=0; EA=1; EX0=1;while(1); }

6.让接在P1.0引脚上的LED发光,试编程。 解:程序如下: include sbit P1_0=P1^0; void main() { P1_0=0; }

7.让接在P1.0引脚上的LED闪烁发光,试编程。 解:程序如下: #include\

#define uchar unsigned char #define uint unsigned int sbit P1_0=P1^0;

/*延时程序,有Delay参数确定延迟时间*/ void mdelay(uint Delay) { uint i;

for(;Delay>0;Delay--) { for(i=0;i<124;i++) {;} } }

void main() { for(;;) { P1_0=!P1_0; //取反P1.0引脚 mdelay(10000); } }

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C51语言复习题参考答案(3)在线全文阅读。

C51语言复习题参考答案(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/567804.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: