赛元SC92F7250单片机开发

2023-10-27

芯片简介

赛元SC92F7250单片机,是国产的超低成本选择。对于功能简单,控制不复杂的场景,非常适用。
管脚配置如下:
1
最大时钟可配24M,内部4Kbytes flash ROM + 256 bytes SRAM + 128bytes EEPROM,支持Flash读写、低电压复位、11位看门狗、基本定时器、高级定时器、外部中断、8位PWM可调、12位精度的ADC等功能,支持IDLE/Stop模式切换。
SC92F7250型号的MCU采用8051内核,其指令完全兼容标准8051内核单片机。

开发环境

赛元MCU采用Keil C平台开发,支持汇编语言和C语言编程。

安装Keil C51

如果本机已经安装了Keil其它系列软件,可以安装在同一路径下,不会覆盖已有版本,比如已经Keil ARM,同样可以再安装Keil C51。
安装过程比较简单,填写基本的信息、选择安装路径,一直next下去就可以了。

安装SOC Keil插件

安装完成后,可以在赛元微电子官方网站下载开发需要用到的资料和软件开发包,链接:https://www.socmcu.com/index.php?m=Product&a=tools&bid=49
下载SOC_KEIL.rar并安装,完成后可以在Keil工具内支持SOC的型号和开发包。

配置Keil环境

打开Keil软件,新建空工程,需要配置以下几个地方:
2
3
4
5

基本功能开发

在官方下载变成demo,文件SC92F7252_7251_7250_Demo_Code.rar,参考其功能代码。
将demo中的SC92F725x_C.H文件拷贝到新建的工程中使用。

gpio操作

gpio配置示例:

static void gpio_config(void)
{
    // P12 P13 -> output
    // P27 -> output
    // P20 P21 P26 -> input
    P1CON = 0x0c; // 00xx 1100
    P2CON = 0x80; // 1000 xx00

    // P21 pull up
    P1PH = 0x00; // 00xx 0000
    P2PH = 0x02; // 0000 xx10
}
外部中断

示例:配置外部中断2

void ext2_irq(void) interrupt 10
{
	if (P21 == 0) {
		; // INT25
	}
}

void gpio_ext_config(void)
{
    // int2 pull down
    INT2F = 0x20; // xx10 xxxx
    INT2R = 0x00; // xx00 xxxx

    // enable int2
    IE1 |= 0x08; // xxxx 100x
    IP1 |= 0x08; // xxxx 100x
    EA = 1;
}
定时器

示例(100us定时器,12MHz系统时钟):

void timer0_irq(void) interrupt 1
{
    TH0 = 0x9b;
    TL0 = 0x9b;

    if (timer_timeout != 0) {
        timer_timeout--;
    }
}

static void timer_config(void)
{
    // t0 freq = fsys/12
    TMCON = 0x0; // xxxx x000

    // t0=timer mode=2(8 bit timer)
    TMOD = 0x02; // x000 x010

    // enble timer0 interrupt
    ET0 = 0x1;

    // interrupt priority
    IPT0 = 0x1;

    // 12M / 12 = 1us, 100us
    TH0 = 0x9b;
    TL0 = 0x9b;

    // start timer
    //TCON = 0x10; // 0001 xxxx

    // open interrupt
    TR0 = 0;
    EA = 1;
    TR0 = 1;
}

static void sleep_100us(unsigned short usec)
{
    timer_timeout = usec;
    while(timer_timeout != 0);
}

看门狗

通过修改烧录Option信息中WDT来选择打开/关闭看门狗功能。
配置WDTCON寄存器来清除WDT计数值、选择WDT溢出时间:
6

EEPROM

对EEPROM的读写操作示例如下:

// 0x00:选择ROM区操作  0x02:选择EEPROM区操作
#define IapEPPROM   0x02

static void IAPWrite(unsigned char addr, unsigned char value, unsigned char area)
{	
	EA = 0;
	IAPDAT = value; //写入数据Data
	IAPADH = ((addr >> 8) & 0x7f); //写入地址的高5位
	IAPADL = addr; //写入地址的低8位
	
	IAPADE = area; // IAPArea=0x00:选择ROM区操作  IAPArea=0x02:选择EEPROM区操作
	IAPKEY = 240; // IAP开启保护控制时间
	IAPCTL = 0x06; // CPU hold time为2ms,写入操作命令
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	IAPADE = 0x00; //MOVC指向ROM
	EA = 1;
}

static unsigned char IAPRead(unsigned char addr, unsigned char area)
{
	unsigned char value = 0x00;
	EA = 0;
	IAPADE = area;
	value = *(IapAddr + addr); //读取的数据
	IAPADE = 0x00; //MOVC指向ROM
	EA = 1;
	return value;
}

注意事项

SC92F7250型号的MCU不支持在线仿真调试。
烧录Option信息配置LVR,低电压复位电压根据实际使用来选择,否则导致无法启动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

赛元SC92F7250单片机开发 的相关文章

  • 赛元SC92F7250单片机开发

    文章目录 芯片简介 开发环境 安装Keil C51 安装SOC Keil插件 配置Keil环境 基本功能开发 gpio操作 外部中断 定时器 看门狗 EEPROM 注意事项 芯片简介 赛元SC92F7250单片机 是国产的超低成本选择 对于
  • 浅谈初次做外包项目及背后的思考

    谈起外包经历 我的第一次外包源自前两年某天陪着女友逛商场时 接到一个朋友的电话 朋友兴高采烈地跟我介绍一个大项目 需求不多 钱不少 难度不大 口气不小 我一听心动了 原以为要赚一笔 easy money 后面再看看 这次外包踩了大大小小不少
  • Android 手机影音 开发过程记录(四)

    前一篇已经将视频播放页面的布局弄好了 这一篇主要来处理播放页面的各种逻辑 播放 暂停 上 下一个视频 音量 进度 逻辑比较多 一点一点贴代码 顶部布局的逻辑 显示系统时间 时间是一秒一秒更新的 所以可以通过循环发消息的方法来更新系统时间 相
  • 线程诊断,找到cpu占用高的原因

    使用 top 命令 找到cpu占用率最高的进程pid 2 输入 ps H eo pid tid cpu grep 进程pid 由上图可以发现 占用率最高的pid为32655 找到占用率最高的线程 为32655 要换算成16进制为7f99 3
  • 修改@vue/cli搭建的项目中默认icon图标

    今天使用 vue cli搭建了一个项目 然后想修改一下网页的icon图标 但是在public文件夹下直接替换图标 不会改变网页的icon图标 文件夹目录如下 用项目logo的icon文件替换原始的icon 重启项目还是vue默认的icon
  • 【Redis】高并发下缓存穿透缓存雪崩解决方案

    高并发下缓存穿透缓存雪崩解决方案 高并发下缓存穿透 缓存雪崩的解决方案 缓存穿透及其解决方案 缓存雪崩及其解决方案 使用双重检查锁需要注意的点 高并发下缓存穿透 缓存雪崩的解决方案 缓存穿透及其解决方案 缓存穿透指的是在缓存系统中请求一个不
  • ios部分机型出现select、input等控件点击后失效不可再次点击dug

    问题描述 在昨天晚上的时候测试突然告诉我一个问题 在iphone 6s中select选择器在第一次点击后 其他的选择无法点击 整个手机都属于暂时性死机状态 问题分析 当时首先对代码进行了排查 排除是逻辑方面的问题 经过多方面验证发现只有6s
  • Springboot中创建拦截器

    目录 目的 实现过程 1 创建拦截器 2 注册拦截器 完整代码 目的 在Springboot项目中创建拦截器 在进入Controller层之前拦截请求 可对拦截到的请求内容做响应处理 如 校验请求参数 验证证书等操作 实现过程 1 创建拦截
  • 2023年全国普通高校学科竞赛排行榜,中国高等教育学会版,84项(新增27项)

    2023年全国普通高校学科竞赛排行榜 中国高等教育学会版 84项 新增27项 文章目录 2023榜单竞赛 2023年3月22日 中国高等教育学会高校竞赛评估与管理体系研究专家工作组发布 2022全国普通高校大学生竞赛分析报告 以下简称 分析
  • 软件项目的全生命周期

    就职于软件行业的人 无论是销售 售前 技术还是财务一定都会接触到关于项目运作相关的工作 不同职位的员工对于项目的关注点也大不相同 财务人员关注项目的收款节点 销售人员关注项目的商务关系及前期引导 实施人员关注项目的实施过程等等 这就造成各个
  • vue项目运行至ipad白屏问题

    Vue做了一个单页面应用 它在一切设备上都工作正常 在调试另一个dug时 发现了这个问题 项目在其他端都可以正常打开 只有在paid上打开时 显示的是白屏状态 在刚开始解决这个问题时 花费了好几个小时都没解决 都准备从新编译代码了 发现并没
  • 在vue路由跳转时神奇的更改页面title

    一 router中增加title 二 在入口文件中进行判断
  • 保持websocket长时间连接永不断开

    1 定期发送心跳包 ping pong 客户端和服务器端都需要定期发送ping消息 并相应得到pong消息 以确保连接仍然正常 如果超过一定时间没收到pong 需要主动关闭连接 JS客户端代码 定期发送ping setInterval gt
  • 谈前后端分离开发模式

    前后端分离的开发模式 系统分析阶段 系分和前端开发人员约定好页面上所需的逻辑变量 进入功能开发阶段 前端开发人员进行前台页面结构 样式 行为层的代码编写 并根据约定好的变量 逻辑规则 完成不同情况展示不同的表现 而后端开发人员 只需要按照约
  • vue实现农历日期选择器

    在项目中会员进行注册的时候需要进行生日的选择 由于通用的UI库都是公历的并且万年历的形式不符合 也在网上查了好多资料 最后找到一套算法感觉还是不错的 经过加工分析封装成了一个vue组件 实现公农历转换的算法 数组LunarDaysOfMon
  • 新建SpringBoot Maven项目中pom常用依赖配置及常用的依赖的介绍

    完整的pom文件放在后面 一 常用的依赖的介绍 1 springboot项目的总 父 依赖大全
  • 【微信小程序】项目开发-----百度翻译API接口开发微信翻译小程序

    开发环境 微信开发者工具 V1 02 1902010版本以上 开发语言 JavaSript语言 HTML语言 API接口 百度翻译开发平台开放接口 界面预览 开发 基础配置 1 app js App onLaunch function 展示
  • 手把手带你打造自己的UI样式库(第五章)之常用页面切图的设计与开发

    常用页面切图的设计与开发 在一些大的前端团队中 前端工程师这个职位会出现一个分支 叫做重构工程师 重构工程师主要负责 HTML 和 CSS 的制作 也就是把设计稿转换成 HTML 和 CSS 代码 重构工作完成以后 把制作好的 HTML 和
  • 【Unity】Delegate, Event, UnityEvent, Action, UnityAction, Func 傻傻分不清

    Unity Delegate Event UnityEvent Action UnityAction Func 傻傻分不清 Delegate 委托 函数指针 一个简单的例子 一对一依赖 一个简单的例子 一对多依赖 所以话说 委托有啥用呢 事
  • Eclipse android apk打包

    Eclipse android 开发更改apk名字 有以下几步 第一步 修改工程包名 在eclipse里 找到项目包和java包 原则上都一样 就可以按 F2 修改名字 随之 源 java也会得到相应的修改 然而每个 java文件都需要把如

随机推荐

  • Python之环境搭建

    1 安装 python 安装Python的流程图 如下 点击install 正在安装中 2 手动将python配置到系统环境 下面进行环境变量的配置 测试python环境是否搭建成功 1 WIN R 打开cmd 2 输入python 3 显
  • 再见乱码:5分钟读懂MySQL字符集设置

    摘要 在MySQL的使用过程中 了解字符集 字符序的概念 以及不同设置对数据存储 比较的影响非常重要 不少同学在日常工作中遇到的 乱码 问题 很有可能就是因为对字符集与字符序的理解不到位 设置错误造成的 本文由浅入深 分别介绍了如下内容 1
  • python爬虫入门教程!华为手机秒杀抢购助手

    前言 我们学习了网络爬虫的基本概念 通过网络爬虫我们可以批量下载文字 图片 视频等任意数据资源 在今天的课程中 我们将会给大家介绍关于网络爬虫更加深入的内容 一款能够进行华为手机商品秒杀的工具 只要你安装了Python环境就可以进行使用 零
  • JSX 标签自定义属性报错解决方法

    1 问题 不能将类型 class any xxx string yyy string zzz string 分配给类型 ElementAttrs
  • 车载以太网和工业以太网区别

    车载以太网使用单对非屏蔽电缆以及更小型紧凑的连接器 使用非屏蔽双绞线时可支持15m的传输距离 对于屏蔽双绞线可支持40m 这种优化处理使车载以太网可满足车载EMC要求 可减少高达80 的车内连接成本和高达30 的车内布线重量 100M车载以
  • 【满分】【华为OD机试真题2023 JAVA&JS】分奖金

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 分奖金 知识点栈 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 公司老板做了一笔大生意 想要给每位员工分配一些奖金 想通过游戏的方式来决定每个人分多少钱 按照员
  • SpringBoot-Kafka使用(一)

    一 简介 Kafka认识一下 Kafka异军突起 是近来非常火热的一款消息中间件 消息中间件的作用非常多 常用作系统业务的解耦 例如最常听到的秒杀业务 我们也能使用消息中间件对业务进行解耦 用户发起秒杀请求后 系统首先会将该请求转发到中间件
  • networkmanger开机自启动

    可以在系统设置中启用 NetworkManager 服务的开机自启动 如果使用的是 Ubuntu 系统 可以使用下面的命令开启 sudo systemctlenable NetworkManager service 然后重启系统 Netwo
  • 矩阵分析——LU分解

    LU分解初步 矩阵的LU分解主要用来求解线性方程组或者计算行列式 在使用初等行变换法求解线性方程组的过程中 系数矩阵的变化情况如下 由上可知 其中U就是上面矩阵A经过行变换后的上三角矩阵 Eij表示将i行元素与j行元素互换的初等矩阵 Eij
  • 谈民营企业股份制改制面临问题

    改革开放以来 民营企业是拉动中国经济增长的重要力量 是中国经济的重要组成部分 是国民经济发展的一支生力军 为国家经济发展做出了巨大的贡献 股份制改制对促进民营企业健康稳定发展起着至关重要的作用 然而 当前民营企业在股份制改制中存在产权不清晰
  • 【python数据挖掘课程】十.Pandas、Matplotlib、PCA绘图实用代码补充

    这篇文章主要是最近整理 数据挖掘与分析 课程中的作品及课件过程中 收集了几段比较好的代码供大家学习 同时 做数据分析到后面 除非是研究算法创新的 否则越来越觉得数据非常重要 才是有价值的东西 后面的课程会慢慢讲解Python应用在Hadoo
  • 【Shell牛客刷题系列】SHELL23 nginx日志分析1-IP统计

    该系列是基于牛客Shell题库 针对具体题目进行查漏补缺 学习相应的命令 刷题链接 牛客题霸 Shell篇 该系列文章都放到专栏下 专栏链接为 专栏 Shell 欢迎关注专栏 本文知识预告 本文首先复习了substr 截取字符串函数和sor
  • 【H.264/AVC视频编解码技术详解】十三、熵编码算法(3):CAVLC原理

    H 264 AVC视频编解码技术详解 视频教程已经在 CSDN学院 上线 视频中详述了H 264的背景 标准协议和实现 并通过一个实战工程的形式对H 264的标准进行解析和实现 欢迎观看 纸上得来终觉浅 绝知此事要躬行 只有自己按照标准文档
  • 高德vue-amap使用(一)标记点位获取地址及经纬度

    vue高德地图 图片示例 准备工作 安装与配置 npm安装 main js配置 使用 父组件 子组件 图片示例 准备工作 高德开放平台 https lbs amap com 注册登录后进入控制台 在应用管理下我的应用里创建应用添加key 就
  • PAT乙级1039 到底买不买 (20 分)

    1039 到底买不买 20 分 一 问题描述 小红想买些珠子做一串自己喜欢的珠串 卖珠子的摊主有很多串五颜六色的珠串 但是不肯把任何一串拆散了卖 于是小红要你帮忙判断一下 某串珠子里是否包含了全部自己想要的珠子 如果是 那么告诉她有多少多余
  • Android音频系统之AudioFlinger(二)

    1 1 1 音频设备的管理 虽然AudioFlinger实体已经成功创建并初始化 但到目前为止它还是一块静态的内存空间 没有涉及到具体的工作 从职能分布上来讲 AudioPolicyService是策略的制定者 比如什么时候打开音频接口设备
  • LeetCode-1344. Jump Game V

    Given an array of integers arr and an integer d In one step you can jump from index i to index i x where i x lt arr leng
  • 计算机网络笔记:动态主机配置协议(DHCP)

    协议配置 为了把协议软件做成通用和便于移植的 协议软件的编写者不会把所有的细节都固定在源代码中 相反 他们把协议软件参数化 这就使得在很多台计算机上有可能使用同一个经过编译的二进制代码 一台计算机和另一台计算机的很多区别 都可以通过一些不同
  • delphi 自定义popupmenu_delphi PopupMenu动态创建菜单

    动态地创建菜单 通常我们使用以下的语句PopupMenu1 TPopupMenu Create Self Item TMenuItem Create PopupMenu1 Item Caption First Menu Item OnCli
  • 赛元SC92F7250单片机开发

    文章目录 芯片简介 开发环境 安装Keil C51 安装SOC Keil插件 配置Keil环境 基本功能开发 gpio操作 外部中断 定时器 看门狗 EEPROM 注意事项 芯片简介 赛元SC92F7250单片机 是国产的超低成本选择 对于