![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单片机相关
wuhuan_001
这个作者很懒,什么都没留下…
展开
-
C语言中的宏定义
1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned char boolean; /* Boolean value type. *转载 2011-11-15 21:38:10 · 280 阅读 · 0 评论 -
C语言中的指针学习
指针的概念指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int *ptr; (2)char *ptr; (3)int **ptr; (4)int (*ptr)转载 2014-12-30 23:51:13 · 502 阅读 · 0 评论 -
单片机的C语言中数组的用法
数组是由具有相同类型的数据元素组成的有序集合。数组是由数组名来表示的,数组中的数据由特定的下标来唯一确定。引入数组的目的,是使用一块连续的内存空间存储多个类型相同的数据,以解决一批相关数据的存储问题。数组与普通变量一样,也必须先定义,后使用。数组在C51语言的地位举足轻重,因此深入地了解数组是很有必要的。下面就对数组进行详细的介绍。(1)一维数组一维数组是最简单的数组,用来存放类型相同的数转载 2014-12-30 23:50:04 · 10682 阅读 · 0 评论 -
指令周期 机器周期 状态周期 振荡时钟周期(时钟周期)
源:http://blog.csdn.net/zhangxichao/archive/2009/05/14/4186972.aspx 时钟周期: 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。转载 2013-12-31 21:33:11 · 1742 阅读 · 0 评论 -
STM8基础
STM8是ST意法半导体针对工业应用和消费电子开发而推出的8位单片机。每种MCU都有自身的优点与缺点,与其它8-bit MCU相比,STM8 8-bit MCU最大的特点是:内核:最高fcpu频率,可达24MHz,当fcpu≤16MHz时0等待的存储器访问高级STM8内核,基于哈佛结构并带有3级流水线扩展指令集最高20 MIPS @ 24 M转载 2013-12-30 22:40:30 · 1308 阅读 · 0 评论 -
进一步掌握STVD/COSMIC
如何分配变量到指定的地址举例:unsigned char temp_A@0x00; //定义无符号变量temp_A,强制其地址为0x00unsigned char temp_B@0x100; //定义无符号变量temp_B,强制其地址为0x100@tiny unsigned char temp_C; //定义无符号变量temp_C,由编译器自动在地址小于0x100的RAM中为其分配转载 2013-12-30 22:35:43 · 678 阅读 · 0 评论 -
STM8问题汇总
STM8S使用常用问题汇总 ================================================================== 按外设模块 ======================================================================转载 2013-12-29 21:56:10 · 2063 阅读 · 0 评论 -
按键扫描程序
注:红色为自己评注 蓝色为重点部分以下假设你懂C语言,因为纯粹的C语言描述,所以和处理器平台无关,你可以在MCS-51,AVR,PIC,甚至是ARM平台上面测试这个程序性能。 以下以AVR的MEGA8作为平台讲解,没有其它原因,因为我手头上只有AVR的板子而已没有51的。用51也可以,只是芯片初始化部分不同,还有寄存器名字不同而已。核心算法: unsigned char转载 2013-12-29 21:47:58 · 814 阅读 · 0 评论 -
用AVR单片机来产生正弦波信号
用AVR单片机来产生正弦波信号使用AVR定时/计数器的PWM功能设计要点一、定时/计数器PWM设计要点根据PWM的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点:1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42H转载 2013-12-28 13:55:40 · 2770 阅读 · 0 评论 -
单片机C语言程序该这样写!不是教科书上教的那样
写单片机程序也是程序,也要遵循写软件的一些基本原则,不是为了完成功能那么简单。我看过的所有的C语言单片机书籍基本都不注重模块化思想,完全是拿着C当汇编用,简直是在糟蹋C语言!如下问题,几乎所有的单片机书籍中都大量存在(更别说网上的和现实中的代码了,书上都写的那么差劲,学的人能好到哪里去):1、变量到处定义,根本不管变量的生命周期是否合适(请回答:全局变量、局部变量、静态变量、volat转载 2013-12-28 13:51:34 · 666 阅读 · 0 评论 -
AVR单片机C语言程序设计中的位操作
在标准C语言的的教材中,对于位运算的操作是基本不涉及的,但是在单片机系统的程序中,需要经常操作各类以字节为单位的寄存器,而这些寄存器通常都是以二进制中的位为控制单位的数据组合。往往一个8位寄存器中的每一位都有各自的控制对象,例如端口B的方向寄存器DDRB,如下图所示 它实际上控制着PB口的8个端口PB0-PB7的方向,也就是说它的每一位都控制一个端口的方向,如果我们要把端口PB转载 2011-11-06 21:54:35 · 1228 阅读 · 0 评论 -
CVAVR一些事
在CVAVR可以使用eeprom关键词将全局变量分配到EEPROM中,这样既可以节约RAM空间,又可以直接访问这些全局变量,在程序中使用了eeprom关键词,程序编译后会自动生成EEP文件,然后就可以下载到EEPROM中。例如:#asm.eseg.equ old_pc2=pc.org 0x0f5#endasmeeprom uchar mask0=0xf0;这样就在E原创 2011-11-06 22:06:04 · 2320 阅读 · 0 评论 -
单片机的C语言中位操作用法
在对单处机进行编程的过程中,对位的操作是经常遇到的。C51对位的操控能力是非常强大的。从这一点上,就可以看出C不光具有高级语言的灵活性,又有低级语言贴近硬件的特点。这也是在各个领域中都可以看到C的重要原因。在这一节中将详细讲解C51中的位操作及其应用。1、位运算符C51提供了几种位操作符,如下表所示:运算符含义运算符含义转载 2014-12-30 23:48:55 · 1120 阅读 · 0 评论