-
还不错
-
在TIM3中断处理程序里反向IO口测试波形,测试出的中断频率.
-
请问版主:
这张图片的文档在那个文档中呢?谢谢
-
80C51单片机有P0-P3四个P口,以P0为例说明:
要搞清这个问题,就要明白p0口的内部结构。P0口是由锁存器经两个驱动场效应管和外部引脚相连的。
读引脚的意思就是直接读P0外部引脚的电位,而读端口(锁存器)读的是内部与数据总线链接的锁存器的电位。
两者不同。一般来说,读取P0的数据,都是读引脚,目的是获取与P0相连的外部电路的状态。而读端口是在执行下述语句时由CPU自行完成的:
inc P0;给p0加1
执行这个语句时 ,采用“读-改-写”的过程,先读取p0的端口数据,再加1,然后送到p0锁存器里。注意这个端口数据跟p0的引脚状态不一样,比如你事先给p0写进69H,p0里数据就是69H,而引脚上的状态因为你没有执行MOV A,p0之类的指令,它是不会进到p0的锁存器里去的。由此可见,所谓的读端口,不是读取p0的状态,而是在执行inc之类的指令时由CPU自行完成的,
读引脚就是读取p0口状态了。读引脚时要注意:先要给p0写FFH,使它的场效应管T2和地断开。
因为p0口的场效应管T2一端接地,一端与外部引脚相连,由P0的锁存器控制,当给锁存器写1时,它和地断开,写0时和地相连,所以写零时读到的总是低电平。
试想你现在要读P0引脚,按理说P0与外部电路相连,外部电路的是什么状态,就应该读到什么,但如果p0口的场效应管T2一端接地的话,它会把p0口电位拉低,你读到的总是低电平0,所以要先给p0写FFH,把p0的场效应管T2和地断开,再读数时就是真实状态了。当外部电路断开,再读时读到的就是p0端口(锁存器)的真实状态了。
-
问题解决了,不是微软代码的问题,是我对临界区的理解有问题,当临界区应经被当前线程获得,再次调用EnterCriticalSection()不会阻塞线程。这样的目的是为了防止线程已经拥有了临界区,再次进入临界区时不会被自己阻塞。
-
不同意LS.
我提的问题,
手册上信息就没办法明确啊!
-
#ifndef _C51_BASE_DEF_H_
#define _C51_BASE_DEF_H_
#include
#define TRUE 1
#define FALSE 0
typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef unsigned long DWORD;
typedef float FLOAT;
typedef char CHAR;
typedef unsigned char UCHAR;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned long ULONG;
typedef UINT WPARAM;
typedef UINT LPARAM;
typedef UINT LRESULT;
typedef void VOID;
typedef const CONST;
typedef void *PVOID;
typedef void *LPVOID;
typedef const UCHAR* LPCSTR;
typedef bit BOOL;
#define MAKEWORD(lo, hi) ((WORD)(((BYTE)(lo)) | ((WORD)((BYTE)(hi))) 16) & 0xFFFF))
#define LOBYTE(w) ((BYTE)(w))
#define HIBYTE(w) ((BYTE)(((WORD)(w) >> 8) & 0xFF))
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#define SET_STATE_FLAG(state, mask) ((state) |= (mask))
#define RESET_STATE_FLAG(state, mask) ((state) &= ~(mask))
#define TEST_STATE_FLAG(state, mask) (((state) & (mask)) != 0) //需要保证是逻辑结果
#define TEST_BIT(b, offset) (1 & ((b) >> (offset)))
#define SET_BIT(b, offset) ((b) |= (1 4) * 10 + (((BYTE)(bcd)) & 0x0f)))
#define DECIMAL_TO_BCD(decimal) ((BYTE)(((((BYTE)(decimal)) / 10)
-
mib本来就是不必要,对于你的程序来说。
mib是一个整理你思绪的一个东西
-
引用 11 楼 xmjulytiger 的回复:
引用 9 楼 wheatyilong 的回复:
引用 8 楼 yangminghua6 的回复:
最简单就是控制变频器的几个端子的ON/OFF,用单片机写个简单的程序控制继电器的通断就OK.
是否可以直接用单片机控制变频器端子的开关?不要继电器?
肯定得用继电器。可以考虑用固态继电器。
我也是这么打算的,如果一定要用继电器那么固态继电器是首选,只是我见过日本的一台设备只是通过单片机
控制变频器端子的OFF\ON 真的奇怪,单片机怎么可以实现呢?
-
KITL可以吧,没用过,你搜索一下相关资料。
-
篮球和白球,南桥和北桥,楼主计算机文化基础也要补补呀!呵呵
不过刚开始我也不知道,电脑拆多了就知道了。呵呵
-
"主机的RX与两从机的TX相连"怎么行?电路常识吧。
ST的建议是从机TX经过与门后连接。
-
明显楼主没有加载成功,要用注册表工具看看,呵呵。
-
4.2版本的BSP不需要移位,5.0版的BSP 需要移位。
-
我刚学,只会用SJF2410烧,不过笔记本没有并口,只好买个并口卡。烧一次好慢啊
-
"Depend50"=hex:14,00, 1e,00
好像缺了上面这个。
-
看你的描述应该没什么问题啊,i.MX31没用过
-
你的在控制读写的使能是否正确, 另外读取数据对应的地址是否有效啊?
-
小兄弟,你确实扯远了,国内能做os的人绝对不在少数。只是做它有什么意义吗?
-
三星的BSP包也都有背光驱动,你在里面去加一个PWM对LCD背光控制就好了。