#include "2440addr.h"extern void Uart_Printf(char *fmt,...);void Wr24C02(U32 slvAddr,U32 addr,U8 data);void Rd24C02(U32 slvAddr,U32 addr,U8 *data);void Run_IicPoll(void);void IicPoll(void) ;void Delay
单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。 在单片机进
最近考试较多,教材编写暂停了一下,之前写了很多,只是每一章都感觉不是特别完整,最近把其中的部分内容贴出来一下,欢迎指正。本文内容基于我对固件库的理解,按照便于理解的顺序进行整理介绍,部分参考了固件库的
该程序已使用过,免调试。#include"reg52.h"#include "intrins.h"#define byte unsigned char//#define N_NOP _nop_();//_nop_();_nop_();/////////////////////////////////////////////////////////MAX7219 //////
调试状态下,勾上View->Periodic Window Update
/*----------------------------------------------------------------------PIC24F之EEPROM读写中断事件处理函数要点及说明注意:这是一个通用的I2C/SMBUS通讯中断处理程序对于EEPROM来讲,从机后面需要
题目:设内部RAM从30H,31H单元中存放有两个有符号数,试比较它们的大小,将较小的数存放在30H单元,较大的数存放在31H单元中。理解:对于两个有符号数X,Y,不外乎有四种情况,即(正,负),(负,正),(正
// TLC5615输出电压0-5V// 芯片 ATMEGA16L // 时钟 4MHz 内部 // 采用系统自带延时程序#include #include #define SCLK5615 PORTD.4 // tlc5615时钟线, PD4输出 #define DATA5615 PORTD.5 // tlc5615数据线,
今天有人在问我BCD码如何转换成10进制码的问题,其实很简单 BCD 的表示法是 用4个二进制位来表示 一个十进制位,也就是一个字节能够表示2个十进制数位,这是一种压缩的十进制表示方式,应用很广,最常见的就是CMOS里
Reentrant Functions可重入函数可重入函数可以被多个进程同时调用。当一个可重入函数执时,其他的处理可以中断这个函数的执行,而开始执行这同一重入函数。一般情况下,Cx51中的函数不能够被同时多次调用或者是重入。
固件升级的基本思路是: 将stm32 的flash划分为两个区域: 1.Bootloader区:存放bootloader的代码,bootloader代码完成的主要功能就是,判断外部条件,如果需要更新固件,则从指定位置(外接的U盘?板子上的外置
对于单片机程序来说,每个功能程序,都必须要有一个配套的工程(Project),即使是点亮 LED 这样简单的功能程序也不例外,因此我们首先要新建一个工程,打开我们的 Keil 软件后,点击:Project-->New uVision Projec
>_>8;64 n=y;65 Write_Data(m,n);66 67 }68 /*----------------------------------------------------------------69 写命令70 ----------------------------------------------------------------*/7172 void
最近这两天在忙这个rfid的模块,首先我承认,本人是菜鸟,平台是基于初学者入门的51单片机,但是我还是总结一下最近这两天看代码的收获读卡器的软件设计:看Pdf文档好像已经给出来了了,但是初学者的话,理解也好很久
观察DR寄存器bit31位来确认是否转换完成,属于查询方式,如果没有转换完成,程序会停在检测的那条语句处,不能做其他的事情,极大的浪费了处理器的资源,这一节,介绍更为效率的中断方式。给ADINTEN寄存器对应ADINT位