1、8位二进制补码表示十六位进制的范围是多少?是-80H~7FH么
是。
----
2、“8051单片机的外部拓展EEPROM程序存储器进行适当的连接可以作为数据存储器使用,而8051单片机的外部拓展数据存储器也可以作为程序存储器进行程序调试”
前一句懂,后一句为什么是对的呢?如果外部数据存储器没有连接方式的话,MOVC这种查表指令该怎么办呢?数据存储和程序存储器的指令不是不同吗?还有我们编写KEILC程序时,指令是存在单片机哪里的?是外部程序存储器还是内部程序存存储器里?(可能存在外部数据存储器么)
这些话,是否正确,要看硬件电路。
如果把 PSEN 和 RD 相与,外部拓展数据存储器,也可以作为程序存储器。
前一句:外部拓展EEPROM程序存储器进行适当的连接可以作为数据存储器使用,
这里已经说了,需要适当的连接。
就是说,电路进行了改动,什么事情,都是可能发生的。
不要再提出疑问。
----
3、“能够用于寄存器寻址的寄存器有:Rn、Ri、DPTR、A、B、CY",
DPTR为毛也行啊,有MOV A,DPTR这种指令吗?徐汉斌单片机教材上就DPTR有关的指令只有4个,MOVX A,@DPTR;MOVX @DPTR,A;MOV DPTR,#addr16;MOVC A,@DPTR+A
你复习考试,要选定一本教材,不同的作者,说法不一。
----
4、“MSC 51单片机定时\计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不少于一个机器周期”,这句话哪里有错,实在没看出来
有错吗?
----
5、两数相减用补码运算时,是不是CY等于0表示第一个数小于第二个数,CY等于1表示第一个数大于第二个数
单片机的计算,是按照无符号数进行的,Cy,可以反应出无符号数的大小。
想像成补码,并不这么简单,补码是有正负的。
----
6、单片机怎样区别BCD码与16进制数?比如说计算BCD码的补码时,其模9AH与16进制相同,单片机怎么区分这是BCD码的100?
单片机不区别这个,需要编程人,编写程序来解决 BCD 码的问题。
----
很好办,你需要加点东东,改点东东
前面加点申明
sbit led=P1^0;//你可以改成其他引脚
修改一下定时器中断服务程序
void Te_0() interrupt 1
{
static uint t;
TH0=(65536-1000)/256; //2ms
TL0=(65536-1000)%256;
display(0,8);
t++;
if(t<80)led=0; //led亮0.8秒
else led=1; //灭0.2秒
if(t==100)
{
t=0;
s++;
if(s==60)
{
s=0;
m++;
if(m==60)
{
m=0;
h++;
if(h==24)
h=0;
}
}
}
}
位选间隔1秒导通,用定时器
如果还有 P2 可用,那么:
在 P2 每个引脚,分别连接八个 LED 的负极。
每个 LED 的正极,分别串联 510~1000 欧姆的电阻,
连接到电源+5V。
P2 输出低电平时,LED 发光。
流水灯程序如下:
#include
#include
uchar led = 0x7F; //加上一个变量
//……省略
//-----------------------------
void Te_0() interrupt 1
{
static uint t;
static uint t_l; //加上一个变量
TH0=(65536-2000)/256; //2ms
TL0=(65536-2000)%256;
t++;
if(t==500){ t=0;s++;
if(s==60) { s=0;m++;
if(m==60) { m=0;h++;
if(h==24) h=0;
}
}
}
//---------------------加上下面这些
t_l++;
if(t_l == 500) { //时间可以自己改
t_l = 0;
led = _cror_ (led, 1);//移位
P2 = led; //输出
}
}
省略的部分,可以看以前的回答。
http://zhidao.baidu.com/question/872674912401293692.html