热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

应广单片机例程,应广单片机

花了不少的时间去学习,整改。学习单片机,最重要的就是动手实践。内容此次分为三个内容来记录:1、简单的了解一下学习内容(一)2、制作一个小的点灯工程。这个芯片只有八个脚位。

整理笔记:初识dzdzc(单片机) 学习dzdzc单片机(一)题外话内容IO设置点灯工程容易出现的问题

学习dzdzc单片机(一)

学习dzdzc PMS132B系列 单片机的知识。这片文章用于记录学习该芯片的笔记。

题外话

先吐槽一下,由于一开始做的是视觉检测。但是后来发现自己不是那块料。又因为各种原因。最后选择了走这条路。当时直接上手的第一块单片机也就是dzdzc单片机。花了不少的时间去学习,整改。再加上没有系统的学习这类知识,都是在边学边做的情况下,开始了项目。
学习单片机,最重要的就是动手实践。最好的时间也是从大学开始。像我这种半路进场的。应该还不算少,特别是这几年的疫情,很多人失业,转行的不少。大家都是为了混口饭吃。那么一起努力吧。
老话题:网上的资料不是说没有,但是同种问题相同解答的不少。也可能是我不会找答案。

内容

此次分为三个内容来记录:
1、简单的了解一下学习内容(一)
2、制作一个小的点灯工程。可能也就几行代码
3、分析我之前遇到的问题以及解决办法

IO设置

设置IO脚位的不同输入或者输出状态。


这个芯片只有八个脚位。排除VDD(接电源)和GND(接地)的脚位,那么剩下的也就只有六个脚位可用。也就是(2、3、4、5、6、7)
(2)PA6脚位/外部晶振
(3)PA5脚位/可作为复位脚/11位计数器。
(4)PB7脚位/ADC/8位计数器/11位计数器
(5)PB1脚位/ADC/ADC外部参考电压
(6)PA3脚位/ADC/8位计数器/11位计数器
(7)PA4脚位/ADC/8位计数器/11位计数器
不同端口的脚位有着不同的功能,就像PA6只能拉高拉低,而不能作为8位的计数器以及11位的计数器。

详细的资料请参考:
https://download.csdn.net/download/weixin_45142802/15805758

值得一提的是,仅目前我所知的IO初始化写法就有三种

当前设置的是PA6端口的初始化。分别要设置数据寄存器、数据控制寄存器和上拉控制寄存器。

第一种写法比较常规,在设置多个端口的同时使用会比较方便一点,缺点是新手容易弄混。
第二种写法就比较简单,很简单就能看出这是什么脚位的初始化,以及它的属性。缺点是单一,无法同时控制其他脚位。我比较喜欢用这种方式,当然,在脚位多的情况下还是在用第一种方式。
第三种写法比较少见。它的原理同第一种写法类似。

第三种的写法现在已经很少看到了,而比较流行的写法也就是第一种的写法。一开始在不熟悉的情况下,每次都要把这种关系写在旁边。浪费了不少的时间。熟悉后,突然发现还有第二种的写法,发现更为简单。于是还是在用第二种写法,不过这只是在dzdzc当中可以使用的。不同商家的芯片还是有这不同的写法,像51单片机这些,还是注重的是第一种的写法。

点灯工程

编写一款由按键控制的打开,关闭的灯

首先,建立工程。dzdzc的工程不同于其他工程需要用到FPPA IDE,由dzdzc开发的一款编程软件,可用MINI-C和汇编语言。相对keil来讲就没有那么完美。

#include"extern.h"KEY equ PB.1 //设置PB1为按钮控制voidFPPA0 (void){.ADJUST_ICSYSCLK=IHRC/4//SYSCLK=IHRC/4while (1){if(!KEY){//由端口的拉高拉低来控制灯的亮、暗。拉高为亮。拉低为暗PA.6 OUT,HIGH;/*PA = 0B0100_0000;PAC = 0B0100_0000;PAPH = 0B0100_0000;*//*PA = 0x64;PAC = 0x64;PAPH = 0x64;*/}else{PA.6 OUT,LOW;/*PA = 0B0100_0000;PAC = 0B0100_0000;PAPH = 0B0000_0000;*//*PA = 0x64;PAC = 0x64;PAPH = 0x00;*/}}}voidInterrupt (void){pushaf;if (Intrq.T16){Intrq.T16=0;}popaf;} 容易出现的问题

1、端口的设置错误。一开始并没有接触过单片机。然后寄存器的写法资料也比较少。全都是自己实践后才整理清楚该如何设置。相对其他的商家的芯片,入门的话我更喜欢dzdzc的一点。
2、脚位的拉高拉低,输入输出模式。现在遇到的大部分灯脚位都是输出,上拉为打开。输出、下拉(或无)为关闭。需要明白到底是输出还是输入的模式。


推荐阅读
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了Codeforces Round #321 (Div. 2)比赛中的问题Kefa and Dishes,通过状压和spfa算法解决了这个问题。给定一个有向图,求在不超过m步的情况下,能获得的最大权值和。点不能重复走。文章详细介绍了问题的题意、解题思路和代码实现。 ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
author-avatar
老爷们白百合开在秋天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有