当前位置: 首页 > news >正文

0基础 | Proteus | 中断 | 点阵

中断

中断概念

指的是由于内部或外部的某种原因,CPU暂时中止其正在执行的程序

转去执行请求中断的那个外设或事件的服务子程序

等处理完毕后再返回执行原来中止的程序

中断允许控制

EA:中断允许总控位

EA=0, 屏蔽所有的中断请求;   EA=1,开放中断

1:开放

0:屏蔽

ET2:定时器/计数器T2的溢出中断允许位

ES:串行口中断允许位

ET1:定时器/计数器T1的溢出中断允许位

EX1:外部中断INT1的中断允许位

ET0:定时器/计数器T0的溢出中断允许位

EX0:外部中断INT0的中断允许位

优先权控制

             PT2:定时器/计数器T2的中断优先级控制位,只用于52子系列

1,高优先级

0,低优先级

PS:串行口的中断优先级控制位

PT1:定时器/计数器T1的中断优先级控制位

PX1:外部中断INT1的中断优先级控制位

PTO:定时器/计数器T0的中断优先级控制位

PXO:外部中断INTO的中断优先级控制位

中断源

优先级顺序

外部中断0

最高

最低

定时/计数器T0中断

外部中断1

定时/计数器T1中断

串行口中断

定时/计数器T2中断

各中断服务程序的入口编号

中断源

入口编号

外部中断0(P3.2)

0

定时/计数器0

1

外部中断1(P3.3)

2

定时/计数器1

3

串行口

4

外部中断

外部引脚P3.2和P3.3输入,

有两种触发方式:电平触发 及 跳变(边沿)触发

由特殊功能寄存器TCON来管理.

ITO(IT1):外部中断0(1)触发方式控制位

IT0(IT1)被设置为0:电平触发方式;

IT0(IT1)被设置为1边沿触发方式

IEO(IE1):外部中断0(1)的中断请求标志位。

中断电路仿真(每按键按一次,数码管+1)

点阵的应用

点阵实物图

点阵内部原理图

0-9的点阵数值:

unsigned char code tab[]={

};(高电平有效)

0x00,0x7E,oxFF,0xC3,0xC3,0xFF,0x7E,0x00, //0

0x00,0x00,0x43,0xFF,0xFF,0x03,0x00,0x00, //1

0x00,0x63,0xC7,0xCF,0xDB,0xF3,0x63,0x00, //2

0x00,0x42,0xDB,0xDB,0xDB,0xFF,0x66,0x00, //3

0x00,0x3E,0x46,0xFF,0xFF,0x06,0x06,0x00, //4

0x00,0xF6,0xF7,0xD3,0xD3,0xDF,0xDE,0x00, //5

0x00,0x7E,0xFF,0xDB,0xDB,0xDF,0x4E,0x00, //6

0x00,0xC0,0xC0,0xC7,0xFF,0xF8,0xC0,0x00, //7

0x00,0xFF,0xFF,0xDB,0xDB,0xFF,0xFF,0x00, //8

0x00,0x72,0xFB,0xDB,0xDB,0xFF,0x7E,0x00, //9

8X8LED 点阵显示数字电路仿真

时钟电路:由 12M 晶振(X1)和两个 22pF 电容(C1、C2)构成,为单片机提供工作时钟。

复位电路:10k 电阻(R1)和 10μF 电容(C3)组成上电复位电路,确保单片机初始化。

总线驱动:P0 口通过排阻(RP1)连接到 74LS245(U2),74LS245 用于增强驱动能力,其 \(\overline{CE}\) 接地、\(AB/ \overline{BA}\) 接地,使数据从 A 端流向 B 端。

点阵模块:74LS245 输出连接到 LED 点阵,P3.0 - P3.7(标为 C0 - C7)也连接到点阵,共同实现对点阵的控制。

该电路通过 AT89C51 单片机,借助 74LS245 驱动 LED 点阵,晶振与复位电路保障单片机正常运行。

8X8LED 点阵显示数字1

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

uchar code Table_of_Digits[]={上面};

uchar i=0,t=0,Num_Index;

//主程序

void main()

{

P3=0x80;

Num_Index=0; //从0 开始显示

TMOD=0x00; //T0 方式0

TH0=(8192-2000)/32; //2ms 定时

TL0=(8192-2000)%32;

IE=0x82;

TR0=1; //启动T0

while(1);

}

//T0 中断函数

void LED_Screen_Display() interrupt 1

{

TH0=(8192-2000)/32; //恢复初值

TL0=(8192-2000)%32;

P0=0xff; //输出位码和段码

P0=~Table_of_Digits[Num_Index*8+i];

P3=_crol_(P3,1);

if(++i==8) i=0; //每屏一个数字由8 个字节构成

if(++t==250) //每个数字刷新显示一段时间

{

t=0;

if(++Num_Index==10) Num_Index=0; //显示下一个数字

}

}

8X8LED 点阵显示数字2

说明:每次按下K1 时,会使8X8LED点阵屏循环显示不同图形。

本例同时使用外部中断和定时中断。

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

//待显示图形编码

uchar code M[][8]=

{{0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00}, //图1

{0x00,0x38,0x44,0x54,0x44,0x38,0x00,0x00}, //图2

{0x00,0x20,0x30,0x38,0x3c,0x3e,0x00,0x00} //图3};

uchar i,j;

//主程序

void main()

{P0=0xff;

P1=0xff;

TMOD=0x01; //T0 方式1

TH0=(65536-2000)/256; //2ms 定时

TL0=(65536-2000)%256;

IT0=1; //下降沿触发

IE=0x83; //允许定时器0、外部0 中断

i=0xff; //i的初值设为0xff,加1 后将从0 开始

while(1);}

//T0 中断控制点阵屏显示

void Show_Dot_Matrix() interrupt 1

{TH0=(65536-2000)/256; //恢复初值

TL0=(65536-2000)%256;

P0=0xff; //输出位码和段码

P0=~M[i][j];

P1=_crol_(P1,1);

j=(j+1)%8;}

//INT0 中断(定时器由键盘中断启动)

void Key_Down() interrupt 0

{P0=0xff;

P1=0x80;

j=0;

i=(i+1)%3; //i在0,1,2 中取值,因为只要3 个图形

TR0=1;}

按键控制8X8LED 点阵屏显示图形

http://www.xdnf.cn/news/178417.html

相关文章:

  • keil 中优化等级的bug
  • 泰迪杯实战案例超深度解析:旅游景点游客流量预测与资源优化
  • Zabbix
  • 测试基础笔记第十四天
  • Java基础——排序算法
  • 底层源码和具体测试解析HotSpot JVM的notify唤醒有序性(5000字详解)
  • 优化无头浏览器流量:使用Puppeteer进行高效数据抓取的成本降低策略
  • PHP实现 Apple ID 登录的服务端验证指南
  • 现代Python打包工具链
  • Redis的阻塞
  • AI赋能智能对讲机:技术融合与行业变革的深度实践
  • 【计算机网络性能优化】从基础理论到实战调优
  • 97A6-ASEMI无人机专用功率器件97A6
  • (25)VTK C++开发示例 --- 将点坐标写入.xyz文件
  • Java基础 — 数组
  • Spark-Streaming(四)
  • 天梯——现代战争
  • NTFS和EXFAT哪个好:深入解析这两种文件系统的优劣
  • FAQ运用
  • 在使用docker创建容器运行报错no main manifest attribute, in app.jar
  • springboot logback 默认加载配置文件顺序
  • Leetcode:283. 移动零
  • 【大模型微调与应用开发实战指南】从理论到工业级部署
  • COMSOL多孔介质自然对流与传热现象的仿真研究
  • 《原神/星穹铁道私服怎么建?内网穿透+本地调试完整指南》
  • 【Vue】单元测试(Jest/Vue Test Utils)
  • 高德地图 API 拿到当前定位和目的地址转经纬度,实现路径规划
  • django filter 排除字段
  • C++学习:六个月从基础到就业——模板编程:类模板
  • 淘宝tb.cn短链接生成