热门标签 | 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、脚位的拉高拉低,输入输出模式。现在遇到的大部分灯脚位都是输出,上拉为打开。输出、下拉(或无)为关闭。需要明白到底是输出还是输入的模式。


推荐阅读
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • CSS高级技巧:动态高亮当前页面导航
    本文介绍了如何使用CSS实现网站导航栏中当前页面的高亮显示,提升用户体验。通过为每个页面的body元素添加特定ID,并结合导航项的类名,可以轻松实现这一功能。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 深入解析MySQL中的七种JOIN查询
    本文详细介绍了MySQL中常用的七种JOIN查询方法,包括内连接、左外连接、右外连接、全外连接以及排除连接等,并通过实例进行说明。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • Android 6.0 切换指定 Wi-Fi 的解决方案
    本文详细介绍了在 Android 6.0 系统中切换到指定 Wi-Fi 的方法,包括常见的问题、原因分析及解决方案。通过官方文档和代码示例,帮助开发者更好地理解和实现这一功能。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • 本文详细探讨了在微服务架构中,使用Feign进行远程调用时出现的请求头丢失问题,并提供了具体的解决方案。重点讨论了单线程和异步调用两种场景下的处理方法。 ... [详细]
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社区 版权所有