C3-中断次序; 1.目的
1. 学习如何使用中断次序;
2.预备知识
1. 了解单片机软硬件开发平台; 2. 了解C51语言;
3.内容和步骤
1. 2. 3. 4. 5.
正确连接软硬件平台,并给板卡上电;
声明、定义时钟初始化函数void SYSCLK_Init (void); 声明、定义IO端口初始化函数void PORT_Init (void); 声明、定义中断初始化函数void Interrupts_Init(void);
在主函数中,完成初始化后,控制P6.0-P6.7上的LED1-LED8闪烁;由P0.0的下降沿触发外部中断0,触发中断后LED1-LED8执行一次低位到高位的流水灯;中断0过程中,由P0.1的下降沿触发外部中断1,触发中断后LED1-LED8执行一次高位到低位的流水灯;然后中断0和中断1再交叉执行;编译并下载到单片机中;
6. 运行并查看结果;
4.思考
C4-中断优先级; 1.目的
1. 学习如何使用中断优先级;
2.预备知识
1. 了解单片机软硬件开发平台;
金桥教育 www.jedu.me15 / 29
2. 了解C51语言;
3.内容和步骤
1. 2. 3. 4. 5.
正确连接软硬件平台,并给板卡上电;
声明、定义时钟初始化函数void SYSCLK_Init (void); 声明、定义IO端口初始化函数void PORT_Init (void);
声明、定义中断初始化函数void Interrupts_Init(void);设置外部中断0为高优先级;
在主函数中,完成初始化后,控制P6.0-P6.7上的LED1-LED8闪烁;由P0.0的下降沿触发外部中断0,触发中断后LED1-LED8执行一次低位到高位的流水灯;中断0过程中,由P0.1的下降沿触发外部中断1,触发中断后LED1-LED8执行一次高位到低位的流水灯;然后中断0和中断1再交叉执行;编译并下载到单片机中;
6. 运行并查看结果;
4.思考
D类练习,定时器/计数器;
D1-Timer0_Mode0_13bit; 1.目的
1. 学习如何使用Timer0的Mode0,即13位定时器模式;
2.预备知识
1. 了解单片机软硬件开发平台; 2. 了解C51语言;
3.内容和步骤
1. 2. 3. 4.
正确连接软硬件平台,并给板卡上电;
声明、定义时钟初始化函数void SYSCLK_Init (void); 声明、定义IO端口初始化函数void PORT_Init (void); 声明、定义定时器初始化函数void Timer_Init(void);
金桥教育 www.jedu.me16 / 29
5. 声明、定义延时函数void delay_ms(unsigned int i);利用Timer0产生准确的n*1ms延时;
6. 在主函数中,完成初始化后,利用delay_ms(500)控制P6.0-P6.7上的LED1-LED8实现T=1s的准确闪烁;
编译并下载到单片机中; 7. 运行并查看结果;
4.思考
D2-Timer0_Mode1_16bit 1.目的
1. 学习如何使用Timer0的Mode1,即16位定时器模式;
2.预备知识
1. 了解单片机软硬件开发平台; 2. 了解C51语言;
3.内容和步骤
1. 2. 3. 4. 5. 6.
正确连接软硬件平台,并给板卡上电;
声明、定义时钟初始化函数void SYSCLK_Init (void); 声明、定义IO端口初始化函数void PORT_Init (void); 声明、定义定时器初始化函数void Timer_Init(void);
声明、定义延时函数void delay_ms(unsigned int i);利用Timer0产生准确的n*1ms延时;
在主函数中,完成初始化后,利用delay_ms(500)控制P6.0-P6.7上的LED1-LED8实现T=1s的准确闪烁;编译并下载到单片机中; 7. 运行并查看结果;
4.思考
金桥教育 www.jedu.me17 / 29
D3-Timer0_Mode2_8bit_AutoReload 1.目的
1. 学习如何使用Timer0的Mode2,即8位重载定时器模式;
2.预备知识
1. 了解单片机软硬件开发平台; 2. 了解C51语言;
3.内容和步骤
1. 2. 3. 4. 5. 6.
正确连接软硬件平台,并给板卡上电;
声明、定义时钟初始化函数void SYSCLK_Init (void); 声明、定义IO端口初始化函数void PORT_Init (void); 声明、定义定时器初始化函数void Timer_Init(void);
声明、定义延时函数void delay250us(unsigned int i);利用Timer0产生准确的n*250us延时;
在主函数中,完成初始化后,利用delay250us(2000)控制P6.0-P6.7上的LED1-LED8实现T=1s的准确闪烁;编译并下载到单片机中; 7. 运行并查看结果;
4.思考
D4-Timer0_Mode0_13bit_Interrupt 1.目的
1. 学习如何使用Timer0的Mode0触发中断;
2.预备知识
1. 了解单片机软硬件开发平台; 2. 了解C51语言;
金桥教育 www.jedu.me18 / 29
3.内容和步骤
1. 2. 3. 4. 5. 6.
正确连接软硬件平台,并给板卡上电;
声明、定义时钟初始化函数void SYSCLK_Init (void); 声明、定义IO端口初始化函数void PORT_Init (void); 声明、定义定时器初始化函数void Timer_Init(void); 声明、定义延时函数void Interrupts_Init(void); 在主函数中,完成初始化后,使能中断;使用Timer0的Mode0触发中断,控制P6.0-P6.7上的LED1-LED8实现T=1s的准确闪烁;编译并下载到单片机中; 7. 运行并查看结果;
4.思考
D5-Timer0_Mode1_16bit_Interrupt 1.目的
1. 学习如何使用Timer0的Mode1触发中断;
2.预备知识
1. 了解单片机软硬件开发平台; 2. 了解C51语言;
3.内容和步骤
1. 2. 3. 4. 5. 6.
正确连接软硬件平台,并给板卡上电;
声明、定义时钟初始化函数void SYSCLK_Init (void); 声明、定义IO端口初始化函数void PORT_Init (void); 声明、定义定时器初始化函数void Timer_Init(void); 声明、定义延时函数void Interrupts_Init(void); 在主函数中,完成初始化后,使能中断;使用Timer0的Mode1触发中断,控制P6.0-P6.7上的LED1-LED8实现T=1s的准确闪烁;编译并下载到单片机中; 7. 运行并查看结果;
金桥教育 www.jedu.me19 / 29