问题描述
解决方案
最小系统要求能够正确运行,所以晶振是必须的,另外还要能够正确复位,因此,复位电路也是必须的。
由于程序要求不复杂,因此使用片内的程序空间就可以,所以不需要外部程序存储器,所以EA引脚需要接到高电平。
如下图所示
--其它问题楼下继续
解决方案二:
明天考试,那试题怎么提前能得到?试题都泄露了还不会实在羞羞。
解决方案三:
对于80C51来说,它的定时器脉冲来自于12分频的晶振频率,由于晶振12M,12分频后为1M频率,正好是1微秒对应的脉冲数量为1
500微秒的值就是500个脉冲时间.而对于一个周期的脉冲来说,应该是高电平和低电平各占一半,所以每个电平持续时间为250微秒。
使用方式0时,定时器是13位的,因此,初值=2^13-250us/1us=7942
另外由于此定时器是TH的8位和TL的低5位组成,因此7942=11111000 00110B,推出TH=F8H,TL=06H
解决方案四:
修正:若使P1.5输出脉冲,在正脉冲时需要加上拉电阻。如下图
解决方案六:
汇编代码如下:
ORG 0000H ;起始程序地址
AJMP MAIN ;进入主程序
ORG 0100H ;主程序起始地址
MAIN: CLR A ;A为用于记录当前是高电平还是低电平的变量,
CLR P1.5 ;P1.5口置0
MOV TMOD,#00H ;T1设置为:由TR1启动,定时方式,工作方式0
MOV TH1,#F8H ;设置初值
MOV TL1,#06H
SETB TR1 ;启动T0工作
LOOP: JNB TF1,LOOP ;查询,若TF1为0,计数器未溢出,程序等待,若TF1为1,则向下
CLR TF1 ;清中断请求标志位
JNZ HIGH ;A若不为0,转到LOW
CLR P1.5 ;P1.5置1,高电平
INC A ;A增加为1,下次置高电平
MOV TH1,#F8H
MOV TL1,#06H
SJMP LOOP
HIGH:
SETB P1.5 ;P1.5置1,高电平
CLR A ;清除A,下次置低电平
MOV TH1,#F8H
MOV TL1,#06H
SJMP LOOP
END