- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
6.对于图4-5所示的电路,试编程实现如下功能:每按动K0按键一次,从左向右依次点亮8个发光二极管中的一个。
参考程序:
#include reg51.h //51系列单片机头文件
#include intrins.h //包含_crol_函数所在的头文件
#define ucharunsignedchar //宏定义
uchar temp; //定义一个变量,用来给P1口赋值
void main() //主函数
{
EA=1; //开总中断
EX0=1; //开外中断0
PX0=1; //外中断0设成高级别中断
IT0=1; //外中断0设成边沿触发
temp=0x7f; //赋初值,预备右边第一个灯亮
while(1);
}
void int0()interrupt0using0//外部中断1的中断服务函数
{
P1=temp;
temp=_cror_(temp,1)
}
7.对于图4-5所示的电路,试编程实现如下功能:当无外部中断请求时,每隔1s,从左向右依次点亮8个发光二极管中的1个;当按键K0被按下时,上下4只发光二极管交替闪烁显示(假设二极管点亮及熄灭的时间都是1s),闪烁8次后,返回中断前状态;当按键K1被按下时,8只发光二极管全部闪烁(假设二极管点亮及熄灭的时间都是1s),闪烁10次后,返回中断前状态。假设系统时钟频率为12MHz,外部中断0为低优先级,外部中断1为高优先级。
参考程序:
#include reg51.h //51系列单片机头文件
#include intrins.h //包含_crol_函数所在的头文件
#define ucharunsignedchar //宏定义
#define uintunsignedint //宏定义
uchar temp; //定义一个变量,用来给P1口赋值
void delaynms(uintn) //延时nms函数
{
uint i,j;
for(i=0;in;i++)
for(j=0;j125;j++);
}
void main() //主函数
{
EA=1; //开总中断
EX1=1;
EX0=1;
PX1=1;
PX0=0;
IT1=1;
IT0=1;
temp=0x7f; //赋初值,预备左边第一个灯亮
while(1)
{
P1=temp; //输出到P1口
temp=_cror_(temp,1);
delaynms(1000); //延时1s
}
void int0()interrupt0
{
ucharm;
for(m=0;m8;m++)
{
P1=0x0f;
delaynms(1000); //延时1s
P1=0xf0;
delaynms(1000);
}
}
void int1()interrupt2
{
ucharn;
for(n=0;n10;n++)
{
P1=0;
delaynms(1000);
P1=0xff;
delaynms(1000);
}
}
8.假设多故障检测电路如图4-8所示,试编程实现如下功能:当系统无故障时,4个故障源输入端X1~X4全为高电平,对应的4个显示灯全灭;当某个设备出现故障时,点亮对应的发光二极管。其中,发光二极管LED1~LED4对应4个输入端X1~X4,X1~X4与P1口的P1.0~P1.3引脚相连,4个发光二极管LED1~LED4分别与P1口的P1.4~P1.7相连。
图4-8多故障检测电路
#include reg51.h //51系列单片机头文件
sbit X1=P1^0; //将X1定义为P1.0引脚
sbit X2=P1^1; //将X2定义为P1.1引脚
sbit X3=P1^2; //将X3定义为P1.2引脚
sbit X4=P1^3; //将X4定义为P1.3引脚
sbit LED1=P1^4; //将LED1定义为P1.4引脚
sbit LED2=P1^5; //将LED2定义为P1.5引脚
sbit LED3=P1^6; //将LED3定义为P1.6引脚
sbit LED4=P1^7; //将LED4定义为P1.7引脚
void main() //主函数
{
EA=1; //开总中断
EX1=1; //开外中断0
IT1=1; //外中断0设成边沿触发
P1=0xff;
您可能关注的文档
- Windows Server 2022活动目录管理实践( 第2版 微课版)-教案 - 项目13.doc
- Windows Server 2022活动目录管理实践( 第2版 微课版)-教案 - 项目14.doc
- Windows Server 2022活动目录管理实践( 第2版 微课版)-教案 - 项目15.doc
- Windows Server 2022活动目录管理实践( 第2版 微课版)-教案 - 项目16.doc
- Windows Server 2022活动目录管理实践( 第2版 微课版)-教案 - 项目17.doc
- Windows Server 2022活动目录管理实践( 第2版 微课版)-教案 - 项目18.doc
- Windows Server 2022活动目录管理实践( 第2版 微课版)-教案 - 项目19.doc
- Windows Server 2022活动目录管理实践( 第2版 微课版)-教案 - 项目20.doc
- Windows Server 2022活动目录管理实践( 第2版 微课版)-教案 - 项目21.doc
- Windows Server 2022活动目录管理实践( 第2版 微课版)-教案 - 项目22.doc
文档评论(0)