制作超声波测距仪,是很多学生、单片机爱好者学习单片机动手实践的一个实作项目,这款超声波测距程序,针对目前比较广泛使的HC-SR04超声波模块而设计的,这款1602显示的超声波测距距源程序,单片机是51系列单片机,超声波测距模块先用的是HC-SRO4 超声波测距模块,单片机的晶振是12M,接线:模块TRIG接 P2.5 EC[详细]
bit和sbit都是C51扩展的变量类型。bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的BOOL。sbit是对应可位寻址空间的一个位[详细]
已知负跳边脉冲从51单片机P3.3引脚输入,且该脉冲数少于65535个,试利用/INT1中断,统计输入脉冲个数。脉冲数存内RAM30H(低位)31H(高位),并调用数据处理子程序WORK和显示子程序DIR(已知,可直接调用)显示,要求用边沿触发方式。参考MCS-51单片机程序:org 000hljmp mainorg 013hljmp i_int1org 050hmai[详细]
假设正脉冲宽度不超过定时器的值设T1方式1,利用门控位GATE1来启动定时器。定时器的值×T即为脉冲宽度。 ORG 1000H &[详细]
1. Brown-Out Reset掉电复位,或电源电压跌落复位, 当输入电压VCC跌到某一门限时芯片复位The MCU is reset when the supply voltage VCC is below the Brown-Out Reset threshold voltageand the Brown-out Detector is enabled. The Brown-out threshold voltage is programmable.2. Totem-pole推拉输出电路3. [详细]
因为第一次接触STM的单片机,各种寄存器和API都不熟悉,于是结合STM的库函数和编程手册对照理解。建立好工程之后,编写main函数。1.不管哪种单片机,上电以后第一重要的事就是设置时钟和初始化引脚。单看STM32F的时钟:能作为STM32F103的系统时钟的有三种,外部时钟,内部时钟,PLL时钟。跟踪到SystemInit里面,[详细]
1.意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象。2. 中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加 volatile,其次在主循环中读取中断变量前应该首先关闭全局中[详细]
栈是一种具有先入后出特性的数据结构,前面说过,这种特性常常用来帮住我们“原理返回”或者“保持原样”。试想,当我们第一次来到一个陌生的城市,走在陌生的街道上,寻找一个陌生的目标,最令我们有安全感的莫过于仔细记录走过的每一个街道、穿过的每一个路口--这种安全感来源于潜意识里“万一找不到目的地就[详细]
芯片的发展趋势是存储容量越来越大,价格越来越便宜。所以我们应该用C来写单片机程序,不提倡用汇编。每一款单片机的C语言大部分用法都相同,我个人的经验不同系列的单片机的c语言的使用只有两处的写法不同,1)对一个I/O口的控制 2)中断程序。当你拿起那厚厚一本的C语言的书籍,心里面也是沉垫垫的。一本书下[详细]
众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。内部时钟是在芯片内部[详细]
似乎软件架构,只有纯上位机软件才有,其实,嵌入式软件也有架构可言,只有好的架构,才能结构清晰,方便开发和让系统稳定的工作。在有嵌入式操作系统的情况下,可以利用多任务和信号量,事件等设计嵌入式软件。但是在没有操作系统的裸机中,更需要有好的架构。例如利用事件和状态机模拟实现多任务,或者[详细]
在pic单片机编程当中,会遇到这个问题,程序已经没有问题,也烧录成功了,硬件也上电了,但是为什么什么反应也没有呢?后来我发现是我的configuration bits没有配置好,以下是我总结出来,如何让PIC正常工作的所需作的检查,前提是代码没有问题。1、选择好芯片;2、设置好Configuration Bits;3、系统上电;针对Con[详细]
一般认为在c中分为这几个存储区1栈 - 由编译器自动分配释放2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序[详细]
从单片机上知道,在上电的那一刻,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的 main函数之前,还有一系列其他的的初始化要做,如堆栈的初始化,不过这些我们很少回去修改)。PC在上电时,和MCU差不多,不过读取的是BIOS,有它完成[详细]
PICC变量及定义1、当变量为多字节数据时,PICC按低字节存放在低地址、高字节存放在高地址的原则存放变量,并以最低字节的地址作为该变量的地址。例如int型变量i的值为0X1234,低字节0x34存放在0X30,高字节0x12存放在0X31,并以0x30作为变量i的地址。2、单片机的带符号的整数均以补码方式存放。对于二进制数来说[详细]
在一个技术QQ群中,试着做了一道C的题,感觉是考察for循环的执行流程.原题: 在C语言中,下列代码的输出结果是 ( ) (选择一项)群里居然有不少人都选了B,那个提问者还一直在问正确的结果。最终的正确结果是:A.哈哈,好基本的知识。后来偶就顺手写了一个代码,大家做了它可以对for循环的运算顺序就比较清楚[详细]
学习单片机最主要的是学习写程序的方法,程序的功能千变万化,是学不完的,只有掌握了一定方法,才能用这种方法去写新的程序。以c语言写的单片机程序为例,程序总是从main程序开始,然后顺序执行到main结束。由此可知,程序必须包含而且只能包含一个main程序,也就是常说的主程序。main(){主程序的内容。。。。[详细]
按位或 按位与 按位异或 按位取反 左移右移C语言位运算有6种: &, | , ^(亦或), <<(左移), >>(右移)。注意:参与位运算的元素必须是int型或者char型,以补码形式出现。按位与&&运算常应用于:迅速清零保留指定位判断奇偶性a & 1 = 1;则a为奇数b & 1 [详细]
1级优先级 左结合() 圆括号[] 下标运算符-> 指向结构体成员运算符. 结构体成员运算符2级优先级 右结合! 逻辑非运算符~ 按位取反运算符++ 自增运算符-- 自减运算符- 负号运算符(类型) 类型转换运算符* 指针运算符& 地址与运算符sizeof 长度运算符3级优先级 左结合* 乘法运算符/ 除法运算符% 取余运[详细]
延时与中断出错,是单片机新手在单片机开发应用过程中,经常会遇到的问题,本文汇总整理了包含了MCS-51系列单片机、MSP430单片机、C51单片机、8051F的单片机、avr单片机、STC89C52、PIC单片机…..在内的各种单片机常见的延时与中断问题及解决方法,希望对单片机新手们,有所帮助!扩展阅读:单片机延时程序分析1[详细]
扫码关注我们
0755-82591179
传真:0755-82591176
邮箱:vicky@yingtexin.net
地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08
Copyright © 2014-2025 颖特新科技有限公司 All Rights Reserved. 粤ICP备14043402号-4