|
楼主 |
发表于 2011-3-2 02:27:28
|
显示全部楼层
NEC的9234单片机,如果把一个口设为输入。并且设为内部上拉,这个IO口外部不接任何东西,用万用表量这个IO口电压应该是多少?
VCC 是5V供电!
看数据手册340页 应该是等于VCC!
现在我把P0四个口外部全部取消,不接任何东西!P0四个口都设为内部上拉!
如下我写的程序,为什么量P0四个口都才是1.85V
#include<io78f9234.h>
#include<intrinsiCS.h>
/*====================== 选项字节配置 ==========================================
内部时钟,
==============================================================================*/
#pragma location = 0X0080
__root const unsigned char XUAN=0X9c;
//__root const unsigned char XUAN=0X9f; 设置成外部石英晶体
/*=====选项字节,设置实用内部高速时钟电路,低速内部振荡器时钟可由软件停止======*/
/*以下声明是对寄存器的操作,分别对寄存器的某一位清零或置一*/
#define clearbit(Reg, ClrBitMap) Reg &= ~ClrBitMap //清零操作
#define setbit(Reg, SetBitMap) Reg |= SetBitMap //置1操作
//#define DI() __disable_interrupt()//屏蔽所有中断
//#define EI() __enable_interrupt()//使能所有中断
/*======== P0 4位声明 ===============*/
#define K1 P0_bit.no0
#define K2 P0_bit.no1
#define k3 P0_bit.no2
#define k4 P0_bit.no3
/*====================== 函数声明 ==========================================*/
void clock();//时钟初始化函数
void PORT_Init();//端口初始化函数
void main();
/*================== 时钟初始化函数,系统时钟为8MHz ===========================*/
void clock()
{
PPCC=0X00;
PCC=0X00;
}
/*================== 端口初始化函数===========================================*/
void PORT_Init(void)
{
clearbit(PM0,0X0);//P0设定为输入0000
clearbit(PU0,0Xf);//P0设内部上拉1111
}
/*========================== 主函数===========================================*/
void main()
{
LSRSTOP=0x01; //停止低速内部振荡器
clock(); //时钟初始化
PORT_Init(); //端口初始化
while(1);
} |
|