【51单片机】INT0及INT1中断计数
来源:互联网 发布:苹果远程桌面连接软件 编辑:程序博客网 时间:2024/05/29 10:10
前言
刚刚本着负责任的心,把上次的博客补全(真的有点长,不过都是干货),再回来的时候本次编辑就消失了……,下次记得保存线上草稿。友情链接:1.【51单片机实验】INT0中断计数2.【51单片机实验】INT0中断控制LED
实验
程序分析
- 同时允许INT0和INT1中断:连接P3.2和P3.3按键触发中断,对应中断例程(中断函数)分别计数,分别显示在左右各三只数码管上【只要999】,
- 另外两个按键:分别用于两组计数的清零工作,查询法;
- 允许INT0和INT1中断:IE=0x85(1000 0101)
- 两个均为下降沿触发:IT0,IT1=1;
- 外部中断0和外部中断1中断号:0,2
主程序whlie内循环&调用显示&计数**函数,中断例程只需累加计数,无需管理显示。
#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit k3 = P3 ^ 4;sbit k4 = P3 ^ 5;uchar code DSY_CODE[] = { 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,};uchar data Buffer_Counts[] = {0,0,0,0,0,0};uint Count_A = 0, Count_B = 0;void DelayMS(uint x){ uchar t; while (x--) for (t = 0;t < 120;t++);}void Show_Counts(){ uchar i; Buffer_Counts[2] = Count_A / 100; Buffer_Counts[1] = Count_A % 100 / 10; Buffer_Counts[0] = Count_A % 10; if (Buffer_Counts[2] == 0x00) { Buffer_COunts[2] == 0x00; if (Buffer_Counts[1] == 0x00) Buffer_Counts[1] == 0x0a; } Buffer_Counts[5] = Count_B / 100; Buffer_Counts[4] = Count_B % 100 / 10; Buffer_Counts[3] = Count_B % 10; if (Buffer_Counts[5] == 0x00) { Buffer_Counts[5] == 0x0a; if (Buffer_Counts[4] == 0x00) Buffer_Counts[4] == 0x0a; } for (i = 0;i < 6;i++) { P2 = Scan_BITs(i); P1 = DSY_CODE[Buffer_Counts[i]]; DelayMS(i ); }}
后语
比起上次【51单片机实验】INT0中断控制LED实验,这次实验使用了两种中断方式(中断和查询,怎么那么拗口?),显示也不特别难,就是C语言课后习题级别,注意两种中断的序号,1和3,有趣,奔赴下一个实验~
阅读全文
0 0
- 【51单片机】INT0及INT1中断计数
- 【51单片机实验】INT0中断计数
- 按键INT0 INT1中断
- INT0和INT1中断 数码管显示
- 【51单片机实验】INT0中断控制LED
- 51单片机之——外部中断0(INT0)
- 使用中断INT0和INT1来实现数码管显示以及清零
- 单片机 计数/定时 中断实验
- atmega8 例程:INT1外部中断
- avr单片机INT0模拟代码
- PIC 外部中断INT0
- 51单片机中断学习及寄存器简介
- 51单片机的中断优先级及中断嵌套
- 51单片机的中断优先级及中断嵌套
- 51单片机的中断优先级及中断嵌套
- 【单片机笔记】51内核的中断及中断向量
- Int0中断的c语言编程
- 51单片机中断问题
- regex--python
- Java中继承与组合
- Javaagent学习
- mysql 五大常见高可用方案
- ngx_process_events_and_timers
- 【51单片机】INT0及INT1中断计数
- Container With Most Water--LeetCode
- Opencv 2.4.9在Ubuntu下的配置安装
- 四大组件之broadcastReceiver
- clang忽略警告
- MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例
- spring boot启动报错:No active profile set, falling back to default profiles: default
- c 取整方法
- 一种手感很好的18650电池