找回密码
 立即注册
楼主: assass123

学习《32位8051单片机原理及应用》课程——32G12K128-实验箱-V9.6

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:161
  • 最近打卡:2025-06-18 21:08:43

8

主题

209

回帖

981

积分

高级会员

积分
981
发表于 2024-12-22 19:31:42 | 显示全部楼层

打卡第十五集:外部中断

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:161
  • 最近打卡:2025-06-18 21:08:43

8

主题

209

回帖

981

积分

高级会员

积分
981
发表于 2024-12-22 19:42:57 | 显示全部楼层

#ifndef __EXIT_H
#define __EXIT_H

#include "COMM/stc.h" //调用头文件
#include "COMM/usb.h"

//------------------------------变量声明------------------------------

//------------------------------函数声明------------------------------
void INT0_Init(void); //外部中断0的初始化

#endif

exit.C

#include "exit.h"

//========================================================================
// 函数名称: INT0_Init
// 函数功能: 外部中断0初始化
// 入口参数: 无
// 函数返回: 去
// 当前版本: VER1.0
// 修改日期: 2023
// 当前作者:
// 其他备注:
//========================================================================

void INT0_Init(void) //外部中断0的初始化
{
IT0 = 1; //1:下降沿中断 0:上升下降沿中断
EX0 = 1; //允许中断
IE0 = 0; //清除中断标志位
}

#ifndef __TIM0_H
#define __TIM0_H

#include "COMM/stc.h" //调用头文件
#include "COMM/usb.h"

//------------------------------函数声明------------------------------
void Timer0_Init(void); //1毫秒@24.000MHz

#endif

tim0.C

#include "tim0.h"

//========================================================================
// 函数名称: Timer0_Init
// 函数功能: 定时器0初始化
// 入口参数: 无
// 函数返回: 无
// 当前版本: VER1.0
// 修改日期: 2023
// 当前作者:
// 其他备注:
//========================================================================
void Timer0_Init(void) //1毫秒@24.000MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x30; //设置定时初始值
TH0 = 0xF8; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1; //使能定时器0中断
}

Demo.C

#include "COMM/stc.h" //调用头文件
#include "COMM/usb.h"
#include "seg_led.h"
#include "key.h"
#include "beep.h"
#include "tim0.h"
#include "exit.h"

#define MAIN_Fosc 24000000UL //定义主时钟

char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

bit TIM_10MS_Flag; //10ms的标志位

void sys_init(); //函数声明
void delay_ms(u16 ms); //unsigned int

void main() //程序开始运行的入口
{
u8 i;
u8 KEY_NUM = 0; //保存矩阵按键的键码
u8 KEY_Str = 0; //表示当前输入了几个密码位

sys_init();				//USB功能+IO口初始化
usb_init();				//usb库初始化

Timer0_Init();			//定时器0初始化
INT0_Init();			//外部中断0初始化

EA = 1;					//CPU开放中断,打开总中断。

SEG0 = 0;
SEG1 = 0;


LED = 0xff;				//初始状态熄灭所有LED

while(1)		//死循环
{
	if( DeviceState != DEVSTATE_CONFIGURED ) 	//
		continue;
	if( bUsbOutReady )							
	{
		usb_OUT_done();
	}


	for(i=0;i<8;i++)		//循环八次
	{
		LED = ~(1<<i);		//当前i是几,就点亮第几个LED
		delay_ms(500);		//验收500ms
	}
	if( P33 ==0 )			//如果P33按下了
		SEG1 += 1;			//数码管1的数值+1

}

}

void INT0_Isr(void) interrupt 0
{
SEG0 += 1; //数码管0的数值+1
}

void Timer0_Isr(void) interrupt 1
{
static timcount = 0;

SEG_LED_Show();			//数码管刷新的

timcount++;				//1ms+1
if( timcount>=10 )		//如果这个变量大于等于10,10ms计数到达
{
	timcount = 0;
	TIM_10MS_Flag = 1;	//10ms时间到了
}

}

void sys_init() //函数定义
{
WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXFR = 1; //扩展寄存器(XFR)访问使能
CKCON = 0; //提高访问XRAM速度

P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口

P3M0 = 0x00;
P3M1 = 0x00;

P3M0 &= ~0x03;
P3M1 |= 0x03;

//设置USB使用的时钟源
IRC48MCR = 0x80;    //使能内部48M高速IRC
while (!(IRC48MCR & 0x01));  //等待时钟稳定

USBCLK = 0x00;	//使用CDC功能需要使用这两行,HID功能禁用这两行。
USBCON = 0x90;

}

void delay_ms(u16 ms) //unsigned int
{
u16 i;
do
{
i = MAIN_Fosc/6000;
while(--i);
}while(--ms);
}

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:161
  • 最近打卡:2025-06-18 21:08:43

8

主题

209

回帖

981

积分

高级会员

积分
981
发表于 2025-2-20 20:48:07 | 显示全部楼层
收到厂家的试验箱,制作精巧,功能多,传输线质量好。可以开始软件编程了
截图202502202047131008.jpg
截图202502202047305119.jpg
截图202502202047398810.jpg
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-18 21:15 , Processed in 0.124739 second(s), 59 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表