51单片机实验——按键外部中断实现四进制计数器

发布者:德州小孙最新更新时间:2022-09-06 来源: csdn关键字:51单片机  按键  外部中断 手机看文章 扫描二维码
随时随地手机看文章

1.实验题目:

设计一个通过触发外部中断INT1实现的在0-3之间计数(四进制)的计数器,并通过P1.6和P1.7端口上的LED,显示计数的值。


2.KEIL代码

#include

sbit P16=P1^6;

sbit P17=P1^7;

void INT1_Init();//声明中断初始化函数

void main()

{

INT1_Init();//调用中断初始化函数

while(1);

}

void INT1_Init() //编写中断初始化函数

{

EA=1;//开启中断总开关

EX1=1;//开启外部中断1

IT1=1;//设定为下降沿触发

IE1=0;//清零中断标志位

}

void INT1_Rupt() interrupt 2//编写外部中断1服务函数

{

static int i=1;

    switch (i)

{

case 1:

P16=1;P17=1;i++;break;

case 2:

P16=1;P17=0;i++;break;

case 3:

P16=0;P17=1;i++;break;

case 4:

P16=0;P17=0;i=1;break;

default:;

}

}


3.Protues仿真

LED灯显示效果为10时截图:

LED灯显示效果为11时截图:

关键字:51单片机  按键  外部中断 引用地址:51单片机实验——按键外部中断实现四进制计数器

上一篇:51单片机实验——模拟三台机器故障检测与指示系统
下一篇:51单片机实验——十六进制计数器

推荐阅读最新更新时间:2024-11-11 22:02

#51单片机# UART串口通信的基本应用、模块介绍和串口程序
UART串口通信的基本应用 通信的三种基本类型: 单工通信:值允许一方向另一方传送星系,另一方不能回传信息。例:电视遥控器、收音机广播 半双工通信:数据可在双方之间相互传播,但同一时刻只能一方传给另一方。例:对讲机 全双工通信:发送数据的同时也可接收数据,两者同步进行。例:电话 UART模块介绍 通常情况下,我们关心的是通信的结果而非过程。51单片机内部存在UART模块,可自动接收数据,接收完毕,会发出通知信号。要使用这个模块,需要配置对应的具有特殊功能的寄存器。 51单片机的UART串口结构由串行口控制寄存器SCON、发送和接收电路三部分构成。 先来了解串口控制寄存器SCON SCON——串行控制寄存
[单片机]
#<font color='red'>51单片机</font># UART串口通信的基本应用、模块介绍和串口程序
使用51单片机和DS1302时钟芯片做一个简易的电子时钟
一、前言 今天给大家推荐一个51单片机小实验,带你使用51单片机做一款简易的电子时钟,其中计时模块采用DS1302硬件模块,显示采用LCD显示屏,具体怎么实现开来一起看看吧! 二、DS1302模块介绍 DS1302 是 DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟和31字节静态 RAM,通过简单的串行接口与单片机进行通信。实时时钟、日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年自动补偿等多种功能。时钟操作可通过 AM/PM 指示,DS1302 与单片机之间能简单地采用同步串行的方式进行通信,简易三线SPI通信模式: RES 复位 I/O 数据线 SCLK 串行时钟 SPI
[单片机]
使用<font color='red'>51单片机</font>和DS1302时钟芯片做一个简易的电子时钟
51单片机I/O端口的读写操作
MCS-51单片机通常有4个8位I/O端口, 向各端口的写数据均写入到对应端口的锁存器中, 但对各端口的读操作却有两个方式:读锁存器和读引脚 1 读-修改-写操作 Pn(指P0,P1,P2,P3)在51汇编语言中是特殊的标识符,既代表Pn端口引脚,又代表Pn锁存器(Pn SFR)。在MCS-51指令系统中有些指令读锁存器的值, 有些指令则读引脚上的值。读锁存器指令是从锁存器中读取一个值并进行处理, 把处理后的值(原值或已修改后的值)重新写入锁存器中。这类指令称为读-修改-写指令, 表1列举了有该功能的指令 当目的操作数是Pn端口或Pn端口的某一位时. 该指令读取锁存器的值. 这些指令的一个共同特点, 就是要先并行读
[单片机]
<font color='red'>51单片机</font>I/O端口的读写操作
51单片机寄存器介绍
1、IE中断允许寄存器 EA:EA=0时,所有中断禁止(即不产生中断);EA=1时,各中断的产生由个别的允许位决定 ET2:定时2溢出中断允许(8052用1允许, 0禁止) ES:串行口中断允许(1允许, 0禁止) ET1):定时1中断允许(1允许, 0禁止) EX1:外中断INT1中断允许(1允许, 0禁止) ET0:定时器0中断允许(1允许, 0禁止) EX0:外部中断INT0的中断允许(1允许, 0禁止) 2、TCON定时器控制寄存器 TF1:定时器T1溢出标志,可由程序查询和清零,TF1也是中断请求源,当CPU响应T1中断时由硬件清零。 TF0:定时器T0溢出标志,可由程序查询和清零,TF0也是中断请求源,当C
[单片机]
51单片机RAM数据存储区学习笔记
1.RAM keil C语言编程 RAM是程序运行中存放随机变量的数据空间。在keil中编写程序,如果当前模式为small模式,如果总的变量大小未超过128B,则未初始化的变量的初值默认为0.如果所有的变量超过单片机small模式下的128B大小,则必须对变量进行初始化,否则超过RAM大小变量的值是不确定的,在small模式下超过128B大小的变量也必须在编译器中重新设定存储器的存储模式。 在keil中,可选择small,compact,large三种方式存储数据变量: 在keil中可以用“Target Options”来配置这一项: 2.片内数据存储区 (1) 工作寄存器区 工作寄存器区位于片内数据存储器中的
[单片机]
<font color='red'>51单片机</font>RAM数据存储区学习笔记
89C51单片机按键控制数码管动态显示0~9
1.preteus仿真图 2.keli代码 #include reg51.h sbit key1=P3^0; int CC_num ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int CC_I=0; void delay_ms(int ms) { int i,j; for(i=0;i ms;i++) for(j=0;j 110;j++); } void key1_exam() { if(key1 == 0) { //按钮延时去抖动 delay_ms(20); if(key1 =
[单片机]
89C<font color='red'>51单片机</font><font color='red'>按键</font>控制数码管动态显示0~9
51单片机的精确延时程序一
51单片机的精确延时程序分析(C语言和汇编语言程序) 一、C51程序 在晶振为11.0592的情况下,如下程序能实现ms级的比较精确的延时: 1 void Delayms(unsigned int n) 2 { 3 unsigned int i,j; 4 for(j=n;j 0;j--) 5 for(i=112;i 0;i--); 6 } 用keil可以看出这个延时的时间,我们先延时1ms,即Delayms(1)。 进入Delayms前,sec=0.00042209s 延时后,sec=0.00142253s 可以知道Delayms(1)实际延时
[单片机]
浅析51单片机学习过程中的四大误区
51单片机的辉煌过去 51单片机指MCS-51系列单片机,CICS指令集。由Intel公司开发,其结构增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源,内有128个RAM单元及4K的ROM。其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前国内的51单片机市场主要为国产宏晶的产品STC系列其号称低功耗,稳定与廉价的特点。 学习51单片机的误区 误区1:51单片机是学习的基础 “51单片机是学习的基础”这句话本身并没有错。在我读本科的时候,当时它无疑是学习的基础——毕竟那时没有更高级的单片机可以供使用,
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved