h775533
发表于 2024-11-5 08:56:37
第十四集 矩阵键盘
“两岸猿声啼不住,轻舟已过万重山”,闯过十三集这一关,掌握模块化编程的思路,给人一种“柳暗花明又一村”的感觉,为后期的学习开发铺平了道路,大有半只脚已踏入单片机开发大门的感觉。感谢冲哥老师的付出!
键盘读取
编程思路
1、连接按键行的端口位输出高电平,列输出低电平,延时后读取端口值,如果有按键按下相应的行就是低电平,获得值与发送值进行异或;
2、连接按键行的端口位输出低电平,列输出高电平,延时后读取端口值,如果有按键按下相应的列就是低电平,获得值与发送值进行异或;
3、两次结果相与得到按键码。
h775533
发表于 2024-11-5 09:47:02
第十五集、外部中断
中断程序编写
//中断初始化函数-一外部中断INT0为例
void INT0_Init(void) // 外部中断 0 的初给化
{
IT0=1; //1:下降沿中断 0:上升下降沿中断
EX0=1; // 允许中断
IE0=0; // 清除中断标志位
}
//主程序中
EA=1; //开总中断
//中断响应程序
void INT0_Isr(void) interrupt 0
{
..........
}
什么时候需要使用外部中断?
在单片机控制系统中,以下情况下通常需要使用外部中断:
1. 外部事件触发:当外部事件(例如按键按下、传感器检测到信号变化等)需要立即引起单片机的响应时,可以通过配置外部中断来实现。外部中断可以快速中断当前的程序执行,并跳转到特定的中断服务函数进行处理。
2. 实时处理要求高:某些应用场景对实时性要求较高,需要立即响应外部事件。使用外部中断可以及时捕捉到外部事件的触发,不会因为单片机正在执行其他任务而导致延迟。
3. 节省能耗:在一些低功耗应用中,为了降低系统的功耗,可以将单片机设置为休眠模式或者低功耗模式。此时,可以利用外部中断唤醒单片机,使其从休眠状态恢复正常工作,从而实现节能的目的。
4. 与外设通信和协作:当单片机需要与外设(如定时器、串口等)进行通信和协作时,可以使用外部中断来触发相应的操作。比如,当定时器计时到达指定值时,可以通过外部中断来通知单片机执行相应的操作。
总之,外部中断可以在需要即时响应外部事件、实现实时性要求和节省能耗等情况下使用,以提高系统的性能和可靠性。
h775533
发表于 2024-11-5 10:01:03
void initInt(void)
{
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x01;//串口1选择定时器2作为波特率发生器
AUXR |= 0x04;//定时器时钟1T模式
//T2L =0xAE; //设置定时器2的低字节初始值
//T2H =0xFB; //设置定时器2的高字节初始值
T2L = 0xE0; //设置定时初始值
T2H = 0xFE; //设置定时初始值
AUXR |=0x10; //定时器2开始计时
ES = 1; //使能串口1中断
EA = 1; //打开总中断
}总结:慢慢摸索stc系列芯片,在论坛上看别人优秀的帖子。结合自己的项目从中学习
h775533
发表于 2024-11-8 08:38:52
申请的实验箱昨天到了,今天来回帖,感谢stc送的实验箱,接下来几天我再看看剩下的视频学习