- 1、本文档共101页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCS单片机内部资源和应用; ;2.P2口 ;;3.1.2 MCS-51内部并行I/O口的应用 ;(3)读端口引脚方式:读端口引脚方式可以从端口引脚上读入信息。在这种方式下,CPU首先必须使欲读端口引脚所对应的锁存器置1,然后才能读端口引脚。因此,用户在读引脚时必须先置位锁存器后读,连续使用两条指令。例如,下面的程序可以读P1引脚上的信号。
MOV P1, #0FFH ; 置位P1引脚的锁存器
MOV A, P1 ; 读P1引脚上的信号送累加器A
注意:写引脚时是直接向端口输出要写的数据,
读引脚时就要区分是读端口的引脚信号还是读锁存器信 号。
读端口信号是必须先向端口写“1”,然后再读,这就是单片机口信号的准双向的含义。切记!(见P106); 在I/O口直接用做输入/输出时,CPU既可以把它们看做数据口,也可以看做状态口,这是由用户决定的。
[例题1]要求设计跑马灯。
硬件电路设计:
1.设计单片机最小系统
2.设计带按键的复位电路
3.使用一个P口连接八个led发光二极管
4.软件设计
各引脚功能如下:
VCC:接正电源;
Vss:接地;
;;程序设计:
;实验一:单片机最小系统及流水灯程序
org 00h ;源程序起始地址
jmp main ;跳转到MAIN
org 0050h ;主程序开始地址
main: mov a, ;立即数送入A
loop: mov p1,a ;数据送P1口
rr a ;右循环一下
lcall delay ;延时子程序
ajmp loop ;重复循环
delay: mov r3,#250 ;延时子程序
d1: mov r4,#235
d2: nop
nop
nop
djnz r4,d2
djnz r3,d1
ret
end;2.I/O口扩展外部锁存器 ; 74LS273是带有清除端的8D触发器,只有在清除端保持高电平时,才具有锁存功能,锁存控制端为11脚CLK,采用上升沿锁存。 CPU 的ALE信号必须经过反相器反相之后才能与74LS273的控制端CLK 端相连。
地址锁存器使用74LS373较多。引脚图如下页图所示。与8051连接电路如下页图所示。
; 上图中的a~g七个笔划(段)及小数点dp均为发光二极管。数码管显示器根据公共端的连接方式,可以分为共阴极数码管(将所有发光二极管的阴极连在一起)和共阳极数码管(将所有发光二极管的阳极连在一起)。
单片机系统扩展LED数码管时多用共阳LED。共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。但是共阴管的亮度比共阳管的要亮些。
通常每个段笔画要串一个数百欧姆的降压电阻。
笔画的选择称为段选,公共端的选择称为位选。;; 八个数码管动态显示程序
org 00h
ajmp main
org 50h
main: mov r2,#00h ;将要显示的数字送R2
sss: mov dptr,#tab ;查表取得数字的字型码送R0
mov a,r2
movc a,@a+dptr
mov r0,a
mov r6,#40h ;循环调用显示程序延时1.5S
xsh1: lcall disp1
djnz r6,xsh1
inc r2 ;将下一个要显示数字送R2
cjne r2,#0ah,sss;判断数字9显示完否?
ajmp main
disp1: mov r5,#08h ;显示程序开始,将要显示的位数送R5
mov r1,#0feh ;将要显示的位码送R1;dis00: mov dptr,#7fffh ;将要显示的字型码送74LS273
mov a,r0
movx @dptr,a
mov a,r1 ;将位选码送入R1
mov p2,a
lcall delay ;调延时1MS子程序
rl a ;位选左移,选中下一位,如果8位数字
mov r1,a ;显示完了则返回
d
文档评论(0)