单片机程序框架开发知识总结

合集下载

手把手教你单片机程序框架---吴坚鸿

手把手教你单片机程序框架---吴坚鸿

第一节:吴坚鸿谈初学单片机的误区。

(1)很难记住繁杂的寄存器?寄存器不用死记硬背,鸿哥我行走江湖多年,连一个寄存器都记不住。

需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。

(2)很难记住繁杂的汇编语言指令?除非是在校学生要应付考试或者少数工作中绕不开汇编,否则学汇编就是浪费时间。

鸿哥我行走江湖多年,从来就没有用汇编帮客户做过一个项目。

(3)C语言很难学?你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏定义,你不用学文件操作,你也不用死记繁琐的数据类型。

你只要会:5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句。

7个运算符+,-,*,/,|,&,!。

4个逻辑关系符||,&&,!=,==.3个数据类型unsigned char, unsigned int, unsigned long。

3个进制相互转化,二进制,十六进制,十进制。

1个void函数。

1个一维数组code(或const) unsigned char array[]。

那么世界上任何一种逻辑功能的单片机软件你都能做出来。

鸿哥我当年刚毕业出来工作的时候才知道可以用C语言开发单片机,一开始只用if 语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。

再到后来才慢慢开始用C语言其他的高级功能,但是我发现C语言其他的高级功能,本质上都是用我前面列举出来的最基本功能集合而成,只是书写更加简单方便了一点,编译后的机器码都大同小异。

所以不会指针等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。

当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只要给你时间和金钱你也可以写个操作系统来玩玩。

单片机常考知识点总结归纳

单片机常考知识点总结归纳

单片机常考知识点总结归纳一、单片机概述单片机是一种集成了微处理器、存储器和输入/输出功能的集成电路芯片,也称为微控制器。

常见的单片机有8051系列、AVR系列、PIC系列等。

单片机通常具有CPU、存储器、定时器、串行通信接口、模拟输入/输出和数字输入/输出等外围设备。

二、单片机的基本特点1. 控制功能:单片机是用来控制各种设备和系统的,其核心是实现程序控制和数据处理。

2. 内部存储器:单片机有自带的ROM、RAM和EEPROM存储器,存储程序和数据。

3. 输入输出功能:单片机通过外设和接口实现与外部设备的连接和通信。

4. 超低功耗:单片机通常工作在微功耗下,能长时间运行在电池供电环境中。

5. 嵌入式应用:单片机广泛应用于嵌入式系统、家电控制、自动化设备等领域。

三、单片机常考的知识点1. 单片机的基本原理:包括单片机的工作原理、内部结构、外围设备和程序存储等内容。

2. 单片机的硬件结构:包括CPU、存储器、输入输出设备、定时器计数器、串行通信接口等部分。

3. 单片机的编程开发:包括汇编语言编程、C语言编程、软件开发工具和调试技术等内容。

4. 单片机的应用实例:包括LED显示、按键控制、数码管驱动、定时器应用、串口通信等应用案例。

5. 单片机的系统设计:包括单片机系统设计的原则、方法和技术要点等内容。

6. 单片机的外围接口:包括串行通信接口、模拟输入输出、数字输入输出等外围接口知识。

7. 单片机的存储器管理:包括ROM的存储器结构、程序存储、数据存储和EEPROM的应用。

8. 单片机的中断处理:包括中断的类型、中断的嵌套、中断的优先级和中断的应用等知识点。

9. 单片机的定时器应用:包括定时器的工作原理、定时器的编程、定时器的应用实例等内容。

10. 单片机的串口通信:包括串口的工作原理、串口的编程、串口的数据传输和应用实例等。

11. 单片机的模拟输入输出:包括模拟输入输出的工作原理、模拟输入输出的编程和应用实例等。

单片机程序架构和分层

单片机程序架构和分层

单片机程序架构通常采用分层设计,以增强程序的可移植性、可维护性和模块化。

以下是一些常见的分层方式:
1.管理层:这一层负责整个系统的协调和管理,包括系统初始化、任务调度、资源管理等。

它通常是与硬件无关的部分,负责决策和策略的实施。

2.具体设备层:这一层包含与特定硬件设备直接交互的代码,例如按键、屏幕、传感器等。

这些代码通常包含了设备驱动程序,负责具体的硬件操作。

3.内核抽象层(KAL):这一层提供了对操作系统或内核功能的抽象,使得上层应用不需要关心底层的具体实现细节。

这样可以在不同的操作系统或内核之间移植应用程序。

4.芯片抽象层(CAL):这一层是对微控制器特定功能(如定时器、串口、ADC等)的抽象,它封装了与芯片相关的操作,为上层提供统一的接口。

5.应用层:这是最接近用户的一层,包含了用户界面、业务逻辑等。

它使用下层提供的服务来完成具体的功能。

6.驱动层:这一层包含设备的驱动程序,负责直接与硬件通信,如SPI、I2C等通信协议的实现。

7.固件层:这是最底层,通常是由官方提供的库函数,直接对寄存器进行操作,是与硬件最接近的软件层次。

总的来说,在设计单片机程序时,采用分层思想可以提高程序的可读性和可维护性,同时也便于团队协作开发。

每一层都有其特
定的职责,上层依赖于下层提供的服务,而不需要关心服务的实现细节。

这种分层屏蔽的思想不仅存在于单片机程序设计中,也是许多复杂系统设计中的常见做法,如操作系统、网络协议等都是基于分层架构设计的。

(完整版)单片机知识点总结

(完整版)单片机知识点总结

(完整版)单⽚机知识点总结单⽚机考点总结1.单⽚机由CPU、存储器及各种I/O接⼝三部分组成。

2.单⽚机即单⽚微型计算机,⼜可称为微控制器和嵌⼊式控制器。

3.MCS-51系列单⽚机为8位单⽚机,共40个引脚,MCS-51基本类型有8031、8051和8751.(1)I/O引脚(2)8031、8051和8751的区别: 8031⽚内⽆程序存储器、8051⽚内有4KB程序存储器ROM、8751⽚内有4KB程序存储器EPROM。

(3)4.MCS-51单⽚机共有16位地址总线,P2⼝作为⾼8位地址输出⼝,P0⼝可分时复⽤为低8位地址输出⼝和数据⼝。

MCS-51单⽚机⽚外可扩展存储最⼤容量为216=64KB,地址范围为0000H—FFFFH。

(1.以P0⼝作为低8位地址/数据总线;2.以P2⼝作为⾼8位地址线)5.MCS-51⽚内有128字节数据存储器(RAM),21个特殊功能寄存器(SFR)。

(1)MCS-51⽚内有128字节数据存储器(RAM),字节地址为00H—7FH;00H—1FH: ⼯作寄存器区;00H—1FH: 可位寻址区;00H—1FH: ⽤户RAM区。

(2)21个特殊功能寄存器(SFR)(21页—23页);(3)当MCS-51上电复位后,⽚内各寄存器的状态,见34页表2-6。

PC=0000H, DPTR=0000H, Acc=00H, PSW=00H, B=00H, SP=07H,TMOD=00H, TCON=00H, TH0=00H, TL0=00H, TH1=00H,TL1=00H, SCON=00H, P0~P3=FFH6. 程序计数器PC:存放着下⼀条要执⾏指令在程序存储器中的地址,即当前PC值或现⾏值。

程序计数器PC是16位寄存器,没有地址,不是SFR.7. PC与DPTR的区别:PC和DPTR都⽤于提供地址,其中PC为访问程序存储器提供地址,⽽DPTR为访问数据存储器提供地址。

单片机重点知识点

单片机重点知识点

单片机重点知识点单片机是嵌入式系统开发中的重要组成部分,广泛应用于各种领域,如家电、汽车、医疗等。

本文将对单片机重点知识点进行介绍。

一、单片机的基础知识点1. 单片机的定义单片机是一种集成了处理器、存储器和输入/输出接口的微型计算机系统,具有体积小、功耗低、成本低等特点。

常用的单片机有AVR、PIC、STM32等。

2. 单片机的组成单片机由以下几个部分组成:- 中央处理器- 存储器- 输入/输出接口- 时钟电路- 辅助电路3. 单片机的工作原理单片机的工作原理可分为以下几个步骤:- 程序存储器中的指令被取出并送到中央处理器中执行;- 执行指令时,进行数据读取和存储;- 中央处理器将结果写入存储器或输出到外部设备。

二、单片机编程的知识点1. 单片机编程语言单片机编程语言主要有汇编语言和高级语言两种。

常用的高级语言有C语言和Basic语言。

2. 单片机的寄存器单片机寄存器是指内部的用于存储数据和控制单元的设备。

常用的寄存器有通用寄存器、状态寄存器、计数寄存器等。

3. 单片机的输入/输出单片机的输入/输出通常使用端口操作来实现。

输入操作可以通过读取端口输入的信号,输出操作可以通过向端口输出信号来实现。

4. 单片机的中断中断是指单片机在执行程序时遇到某些事件时,暂停程序的执行,跳转到中断服务程序中去处理该事件。

常见的中断有外部中断、定时中断和任务间中断等。

三、单片机应用的知识点1. 单片机应用领域单片机应用广泛,涉及的领域包括:- 家电控制- 汽车电子- 机器人控制- 医疗器械等。

2. 单片机的通信方式单片机的通信方式有多种,常用的有串口通信、并口通信、SPI通信、I2C通信等。

其中串口通信应用最为广泛。

3. 单片机的电源管理单片机的电源管理是指如何控制单片机系统的供电,以保证单片机正常工作。

常见的电源管理方式有降压稳压和电源管理芯片等。

4. 单片机的调试与测试单片机的调试与测试是指如何验证单片机系统的正确性,包括硬件测试和软件测试。

单片机课程学习总结

单片机课程学习总结

《单片机》课程学习总结《单片机》这门课程我已经学了一个学期了,在这一个学期的学习过程中,我一开始不怎么懂得编程,但慢慢的我现在已经不仅会读程序还会写程序了。

真为自己一个学期来努力学到的单片机知识只是而感到高兴。

怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。

当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。

一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。

我觉得学习单片机首先要懂得C语言,因为单片机大多说都是靠程序来实现的,如果看不懂程序或则不懂的编程是很难学会单片机的。

学习单片机首先要明白一个程序是怎么走的,要完全懂得程序每一个步骤的意思。

其次要懂得每一条指令的意思,不能盲目地去靠背指令,这是记得不牢靠的,最主要的还是靠了解。

学习单片机最主要的对89C51芯片内部结构有全方面的,只要了解了89C51才能知道单片机实现什么样的功能和作用,才能对单片机有更深一步的了解。

通过一个学期《单片机》这门课程的学习,我也从中有了不少心得和体会想和大家分享一下。

万事开头难、要勇敢迈出第一步。

开始的时候,不要老是给自己找借口,不要说单片机的程序全是英文,自己看不懂。

遇到困难要一件件攻克,不懂指令就要勤奋看书,不懂程序就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。

然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少。

然后建个程序,加入项目中,再写代码、编译、运行。

必须熟悉这一套工序。

个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多,仿真器就看个人需要了。

单片机是注重理论和实践的,光看书不动手,是学不会的。

知识点用到才学,不用的暂时丢一边。

厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。

单片机基本知识点总结

单片机基本知识点总结

单片机基本知识点总结
单片机是一种微处理器,通常被用于控制电子设备和系统中的逻辑操作。

单片机具有计算和控制功能,并能够以无需外部其他器件而单独运行。

以下是单片机的基本知识点:
1. 单片机的结构:由中央处理器(CPU)、存储器、外设和输入/输出(I/O)口组成。

2. 单片机的分类:根据CPU内核类型可分为8051系列、AVR系列、PIC系列等。

3. 单片机的指令系统:单片机指令分为操作指令和数据传输指令。

4. 单片机的存储器:包括ROM(只读存储器)和RAM(随机存储器),ROM用于储存程序,RAM用于储存变量和临时数据。

5. 外设:可连接到单片机的设备,如LED灯、LCD显示器、电机等。

6. I/O口:单片机用于与外部设备通信的接口,包括输入口和输出口。

7. 中断系统:单片机可快速响应外部事件的能力,通过设置中断自动运行中断服务子程序。

8. 特殊功能寄存器(SFR):用于控制单片机内部外设的寄存器。

9. 微控制器编程:可用汇编语言或高级语言如C语言来编写单片机程序。

10. 调试工具:用于调试和测试单片机程序的工具,如仿真器、调试器等。

以上是单片机的基本知识点,了解这些内容可以帮助初学者更好地理解和掌握单片机编程技术。

单片机程序架构详解篇

单片机程序架构详解篇

单片机程序架构详解一、前言单片机,也称为微控制器(Microcontroller),是将计算机的体系结构集成到一个芯片上的微型计算机。

由于其体积小、成本低、可靠性高等特点,单片机在工业控制、智能仪表、家用电器等领域得到了广泛应用。

了解单片机的程序架构是编写和优化单片机程序的关键。

二、单片机程序架构概述单片机的程序架构主要由以下几个部分组成:1. 硬件抽象层(HAL):这一层为上层软件提供了一个与硬件无关的接口,使得软件可以独立于硬件进行开发和运行。

HAL层通常包括对单片机各种外设(如GPIO、UART、SPI、PWM等)的操作函数。

2. 系统服务层:这一层提供了系统级的各种服务,如任务调度、内存管理、时间管理等。

这些服务使得上层应用程序可以更加专注于业务逻辑的实现。

3. 应用层:这是最上层,直接面向用户,包含了各种应用程序的逻辑代码。

三、各层详解1. 硬件抽象层(HAL)硬件抽象层(HAL)是单片机程序架构中非常重要的一层,其主要目标是使得硬件相关的操作与具体的硬件实现无关。

这样,当硬件平台发生变化时,只要HAL层设计得当,上层代码就不需要改变。

HAL层通常包括以下内容:* 各种外设寄存器的操作函数:例如,GPIO的输入输出函数、UART的发送接收函数等。

这些函数隐藏了具体的寄存器操作细节,使得开发者只需要关注功能实现而不需要关心底层寄存器的操作。

* 硬件初始化函数:用于在系统启动时对单片机进行初始化,如配置时钟、启动看门狗等。

* 中断处理函数:用于处理单片机的各种中断事件,如定时器溢出、串口接收等。

2. 系统服务层系统服务层提供了单片机操作系统所需的各种服务,如任务调度、内存管理、时间管理等。

这些服务使得上层应用程序可以更加专注于业务逻辑的实现。

以下是一些常见的系统服务:* 任务调度:多任务环境下,任务调度器负责分配CPU时间给各个任务,使得各个任务能够按需运行。

* 内存管理:负责动态内存的分配和释放,如堆和栈的管理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机程序框架开发知识总结
在接触过多种以下是我对单片机程序框架以及开发中一些常用部分的认识总结:任何对时间要求苛刻的需求都是我们的敌人,在必要的时候我们只有增加硬件成本来消灭它;比如你要8个数码管来显示,我们在没有相关的硬件支持的时候必须用MCU以动态扫描的方式来使其工作良好;而动态扫描将或多或少的阻止了MCU处理其他的事情。

比如一个常用的情况有4个任务:然而必须指出其不妥之处:每个任务的时间片可能过长,这将导致程序的实时性能差。

如果以这样的方式在多加几个任务,使得一个循环的时间过长,可能键盘扫描将很不灵敏。

所以若要建立一个良好的通用编程模型,我们必须想办法,消去每个任务中费时间的部分以及把每个任务再次分解;下面来细谈每个任务的具体措施:1 键盘扫描我们用两种有效的方法来解决此问题:1 在按键功能比较简单的情况下,我们仍然用上面的kbscan()函数进行扫描,只是把其中去抖用的软件延时去了,把去抖以及判断按键的释放用一个函数来处理,它不用软件延时,而是用2.数码管的显示3 串口接收数据帧
串口接收时用中断方式的,这无可厚非。

但如果你试图在中断服务程序中完成一帧数据的接收就麻烦大了。

永远记住,中断服务函数越短越好,否则影响这个程序的实时性能。

一个数据帧一般包括若干个字节,我们需要判断一帧是否完成,校验是否正确。

在这个过程中我们不能用软件延时,更不能用死循环等待等方式;所以我们在串口接收中断函数中,只是把数据放置于一个缓冲队列中。

至于组成帧,以及检查帧的工作我们在主循环中解决,并且每次循环中我们只处理一个数据,每个字节数据的处理间隔的弹性比较大,因为我们已经缓存在了队列里面。

/*==========================================功能:串口发送接收的时间事件说明:放在大循环中每10ms一次输出:none输入:none==========================================*/void
UARTimeEvent(void){ if (TxTimer != 0)//发送需要等待的时间递减 --TxTimer; if (++RxTimer > RX_FRAME_RESET) // RxCnt = 0; //如果接受超时(即不完整的帧或。

相关文档
最新文档