YangHY 发表于 2026-1-26 22:12:51

void P4_IO_Init(void)   //P47端口用作中断初始化
{
        P4IM0 = 0X00; //P4口中断模式为低电平中断
        P4IM1 = 0xFF;
        P4INTE= 0X80; //使能 P4.7 口中断,7是最高位对应0X80

        PINIPH |=(1<<4);//设置P47口中断优先级为3级(最高)
        PINIPL|= (1<4);    //写入最高优先级

就有问题:

YangHY 发表于 2026-1-26 22:16:22

这样你会发现出问题了,定时器0的优先级都给搞低
了,所以无法正常显示2

因为我们现在是靠定时器0 的1ms来完成任务循环的

现在1ms 搞乱了,所以我们这里可以把这个定时器0的中断优先级也给他配置为最高

在config.c里:

void Timer0_Init(void)                //1毫秒@24.000MHz
{
        TM0PS = 0x00;                        //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
        AUXR &= 0x7F;                        //定时器时钟12T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0x30;                                //设置定时初始值
        TH0 = 0xF8;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
        ET0 = 1;                                //使能定时器0中断

        IPH |=(1<<1);//把定时器0优先级设置为最高
        IP|=(1<<1);


}

YangHY 发表于 2026-1-26 22:18:27

这样就符合我们的要求了:

YangHY 发表于 2026-1-26 22:19:33

中断优先级一定要分配好:

YangHY 发表于 2026-1-26 22:21:29

看看课后练习:

第十四课到此结束!

YangHY 发表于 2026-1-28 08:35:59

今天我们先搁置第十五课的学习,先学第十七集 串口的简单应用

YangHY 发表于 2026-1-28 08:38:37

单片机基本主要是4个串口才能通信:

YangHY 发表于 2026-1-28 08:41:13

最基本的是一次发送8位2进制数(加上头尾标志就是10位)

YangHY 发表于 2026-1-28 08:42:44

自然就有并行通信和串行通信的差别:

YangHY 发表于 2026-1-28 08:44:53

每次发送一位数据的称为串行通信,多位一起传输的称为并行通信。
今天要讲的串口通信是串行通信的其中的一种!

同步和异步的概念:

页: 76 77 78 79 80 81 82 83 84 85 [86] 87 88 89 90 91 92 93 94 95
查看完整版本: 第一课 序言《AI8051U的特点》