脚):复位信号输入端。晶振工作时,在此引脚上保持两个机器周期的高电平将使单片机复位
XTAL1(19脚)/XTAL2(18脚):内部振荡器的输入端,接外部晶振;如果采用外部时钟,XTAL2引脚连外部时钟,XTAL1引脚要悬空。
P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。 在FIash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个
TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
三 动态数码显示设计任务
采用动态扫描的方法显示五位字符串,“12345”和“HELLO”
1.设计方案和原理分析
原理分析:所谓动态数码扫描显示技术就是指:多位数码管采用“并联”动态接口,通过对各数码管轮流循环点亮,实现多位数码显示。
当循环扫描显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象。
p0端口接动态数码管的段码,p2端口接动态数码管的数位选择端,p1.7接一个开关,当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“HELLO”字样。
把“单片机系统”区域中的p0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上;
把“单片机系统”区域中的p2.0/A8-P2.7/A15用8芯排线连接到“动态数码显示”区域中的S1-S8端口上:
把“单片机系统”区域中的p1.7端口用导线连接到“查询式键盘”区域中的SP1端口上;
3. 软件设计
动态扫描方法。动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。
在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。
对于显示的字形码数据我们采用查表方法来完成。
汇编源程序
ORG 0000H
LJMP START
ORG 0030H
START:
JB P1.7,DIR1
MOV DPTR,#TABLE1
SJMP DIR
DIR1:
MOV DPTR,#TABLE2
DIR:
MOV R0,#00H
MOV R1,#0FEH
MOV R2,#0DFH
NEXT:
MOV A,R1
MOV P2,A
MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R1
LCALL DAY
INC R0
RL A
MOV R1,A
CJNE R1,#0DFH,NEXT
SJMP START
DAY:
MOV R5,#2
D2:
MOV R6,#5
D1:
MOV R7,#100
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
TABLE1:
DB 3FH,06H,5BH,4FH,66H,6DH
TABLE2:
DB 76H,79H,38H,38H,3FH,00H
END