试编写初始化程序,设8255A的端口A工作在方式0输入,B口工作在方式0输出,使PC5端 设8255A的端口A按方式0输出,端口C的高4位输入,端口B...

. \u7f16\u5199\u7a0b\u5e8f\uff0c\u4f7f8255\u7aef\u53e3A\u5de5\u4f5c\u5728\u65b9\u5f0f0\u5e76\u4f5c\u4e3a \u8f93\u51fa\u53e3\uff0c\u7aef\u53e3B\u5de5\u4f5c\u5728\u65b9

SSTACK SEGMENT STACK

DW 32 DUP(?)

SSTACK ENDS

CODE SEGMENT

ASSUME CS:CODE

START:

MOV DX, 0646H ;\u63a7\u5236\u7aef\u53e3\u5730\u57400646H\u9001DX\uff0c\u56e0\u4e3a8255\u7684cs\u7aef\u53e3\u63a5\u7684\u662fI0Y1\uff0c\u800cI0Y1\u5bf9\u5e94\u7684\u7f16\u5740\u7a7a\u95f4\u662f0640H-067FH\uff0c\u6240\u4ee5\u8fd9\u91cc\u662f0646H\u3002
MOV AL, 90H ;\u65b9\u5f0f\u9009\u62e9\u63a7\u5236\u5b57\u9001AL
OUT DX, AL ;\u5f0f\u9009\u62e9\u63a7\u5236\u5b57\u8f93\u7ed98255A\u7684\u63a7\u5236\u7aef\u53e3\uff0c\u5b8c\u6210\u7aef\u53e3 A \u5de5\u4f5c\u5728\u65b9\u5f0f 0 \u5e76\u4f5c\u4e3a\u8f93\u5165\u53e3\uff0c\u7aef\u53e3 B \u5de5\u4f5c\u5728\u65b9\u5f0f 0 \u5e76\u4f5c\u4e3a\u8f93\u51fa\u53e3\u3002

AA1: MOV DX, 0640H ;\u63a7\u5236\u7aef\u53e3A\u5730\u57400640H\u9001DX

IN AL, DX ;\u7aef\u53e3A\u8fde\u63a5\u7684\u5f00\u5173\u7684\u5bf9\u5e94\u72b6\u6001\u9001\u7ed9AL

CALL DELAY

MOV DX, 0642H ;\u63a7\u5236\u7aef\u53e3A\u5730\u57400642H\u9001DX
OUT DX, AL ;\u5c06AL\u7684\u6570\u636e\u9001\u52308255\u7684\u7aef\u53e3B\uff0c\u4ece\u800c\u4f7f\u5176\u8fde\u63a5\u7684LED\u7684\u706f\u53d1\u5149
JMP AA1

DELAY:

PUSH CX

MOV CX, 0F00H

AA2:

PUSH AX

POP AX

LOOP AA2
POP CX
RET

CODE ENDS

END START

\u63a7\u5236\u5b57\u4e3a\uff1a10001110\uff0c\u53738EH
\u521d\u59cb\u5316\u7a0b\u5e8f\u6bb5\u4e3a\uff1a
MOV DX, 63H
MOV AL, 8EH
OUT DX, AL

编写初始化程序,要先写控制字,所以先假设8255A的端口A、端口B和控制字寄存器的端口地址分别为20H、21H和22H,那么初始化程序为:MOV DX,023H;MOV AL,10010000B;OUT DX,AL······(其中控制字为:10010000B,PC端多为输出端)。

8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字。

其中,方式控制字用于设置端口A,B,C的工作方式和数据传送方向,置位/复位控制字用于设置C口的PC7~PC0中某一条口线PCi(i=0~7)的电平,两个控制字公用一个端口地址。

扩展资料:

8255A具有3种基本的工作方式,在对8255A进行初始化编程时,应向控制字寄存器 写入方式选择控制字,用来规定8255A各端口的工作方式。

这3种基本工作方式是: 

1、方式0——基本输入输出方式:适用于不需要用应答信号的简单输入输出场合,这种方式端口A和B可作为8位的端口,端口C的高4位和低4位可作为两个4位的端口;

2、方式1——选通输入输出方式:端口A和B作为数据口,均可工作于输入或输出方式,端口C的6根线用来产生或接受联络信号。

3、方式2——双向总线I/O方式:只有端口A可以工作于这种方式,端口A工作于方式2 时,端口C的5位(PC3~PC7)作A口的联络控制信号。

参考资料来源:百度百科-8255A芯片



先写控制字,你没给控制端口地址,假设是是23H吧,这样的话A口地址为20H;B口为21H;C口为22H。PC5怎么?你你没打完吧?
8255A的端口A工作在方式0输入,B口工作在方式0输出。控制字为:10010000B。(PC口都设成输出了)
初始化程序:
MOV DX,023H
MOV AL,10010000B
OUT DX,AL
... ... (送初值)
... ...
以上你给的信息就只能到写控制字了。

亲~记得给好评哦~

  • 璇曠紪鍐欏垵濮嬪寲绋嬪簭,璁8255A鐨绔彛A宸ヤ綔鍦ㄦ柟寮0杈撳叆,B鍙e伐浣滃湪鏂瑰紡0杈撳嚭...
    绛旓細缂栧啓鍒濆鍖栫▼搴忥紝瑕佸厛鍐欐帶鍒跺瓧锛屾墍浠ュ厛鍋囪8255A鐨绔彛A銆佺鍙鍜屾帶鍒跺瓧瀵勫瓨鍣ㄧ殑绔彛鍦板潃鍒嗗埆涓20H銆21H鍜22H锛岄偅涔堝垵濮嬪寲绋嬪簭涓猴細MOV DX,023H锛汳OV AL,10010000B锛汷UT DX,AL路路路锛堝叾涓帶鍒跺瓧涓猴細10010000B锛孭C绔涓鸿緭鍑虹锛夈8255A鐨凙锛孊锛孋涓変釜绔彛鐨勫伐浣滄柟寮忔槸鍦ㄥ垵濮嬪寲缂栫▼鏃讹紝閫氳繃鍚8255A...
  • 鎬庢牱缂栧啓8255A鐨勫垵濮嬪寲? (鐢–璇█)璇锋寚鏁!
    绛旓細#define COM XBYTE[0x7FFF] //8255A 鎺у埗鍙e湴鍧#define PA XBYTE[0x7CFF] //8255A A鍙e湴鍧#define PB XBYTE[0x7DFF] //8255A B鍙e湴鍧涓婇潰灏辨槸鍒濆鍖 鍚庨潰姣斿 浣犺鍦╬a鍙 杈撳嚭0x80閭e氨PA=0x80;閭d釜鍦板潃鐨勭畻娉 鍋囪P0鍙h繛鎺7锝濪0,P2.1銆丳2.0杩炴帴A1A0,P2.7杩炴帴 ,閭e湴鍧灏卞簲璇ユ槸: A鍙:0111110011...
  • 璇曠紪鍐8255A鐨勫垵濮嬪寲鍙婃墦鍗板瓨浜庡瓧绗︾紦鍐插尯BUF澶32涓瓧绗︾殑绋嬪簭
    绛旓細璇曠紪鍐8255A鐨勫垵濮嬪寲鍙婃墦鍗板瓨浜庡瓧绗︾紦鍐插尯BUF澶32涓瓧绗︾殑绋嬪簭 5 涓嬪浘涓轰竴涓8088璁$畻鏈虹郴缁熺殑鎵撳嵃鏈洪儴浠剁殑杩炴帴绠鍥俱8255A浣滀负鎵撳嵃鏈烘帴鍙,绔彛PA宸ヤ綔浜庢柟寮1,杈撳嚭鎵撳嵃瀛楃,绔彛PB浣滃叾浠栫敤閫,鏂瑰紡0杈撳嚭銆傛墦鍗版満鐨勭畝鍗曞伐浣滆繃绋嬩负:CPU浠8255A鐨勭鍙... 涓嬪浘涓轰竴涓8088璁$畻鏈虹郴缁熺殑鎵撳嵃鏈洪儴浠剁殑杩炴帴绠鍥俱8255A浣滀负鎵...
  • 璁8255A鐨绔彛A鎸夋柟寮0杈撳嚭,绔彛C鐨勯珮4浣嶈緭鍏,绔彛B鎸夋柟寮1杈撳叆,鎺у埗...
    绛旓細鎺у埗瀛椾负锛10001110锛屽嵆8EH 鍒濆鍖栫▼搴娈典负锛歁OV DX, 63H MOV AL, 8EH OUT DX, AL
  • 缂栫▼棰樻眰瑙g瓟:璁8255A-5鑺墖鐨勭鍙e湴鍧涓200H~203H,绔彛A瀵瑰簲200H,闇...
    绛旓細鏂瑰紡鎺у埗瀛 =1001000B,A鍙f柟寮0杈撳叆锛孊鍙f柟寮0杈撳嚭锛孋鍙f柟寮0杈撳嚭 .鍒濆鍖栫▼搴濡備笅锛歁OV DX, 203H ;8255鎺у埗鍙e湴鍧閫佸叆DX MOV AL锛101000B ;鏂瑰紡鎺у埗瀛楅佸叆AL OUT DX, AL ;鏂瑰紡鎺у埗瀛椾粠AL杈撳嚭鍒8255鎺у埗鍙
  • 8255a鐨勫垵濮嬪寲闂 姹囩紪璇█
    绛旓細8255A鏈夊洓涓彛锛屽垎鍒负PA銆丳B銆丳C鍜屾帶鍒跺彛锛屽叾瀵瑰簲鐨勫湴鍧棰樹腑宸插憡鐭ワ紝鍗0FFE0H-0FFE3H锛屼篃灏辨槸璇8255A鎺у埗鍙g殑鍦板潃涓0FFE3H銆傚湪瀵8255A鑺墖鍒濆鍖鏃堕渶鍏堥佹帶鍒跺瓧锛堣瀹歅A銆丳B銆丳C鐨勫伐浣滄柟寮忕敤锛夛紝鑰屽湪閫佹帶鍒跺瓧鏃舵槸蹇呴』閫氳繃鎺у埗鍙h繘琛屾搷浣滐紝鏁绋嬪簭涓渶鐢∕OV DX 锛 0FFE3H 鍜 OUT DX...
  • 8255A鍒濆鍖棰樼洰
    绛旓細鍦板潃鑼冨洿 8CH~8FH 鎺у埗瀛椾负 10110011B=B3H 鍒濆鍖栫▼搴 MOV DX,8FH MOV AL,B3H OUT DX,AL
  • 鍋囧畾8255A鐨鍦板潃涓 0060H锝0063H.璇曠紪鍐涓嬪垪鎯呭喌鐨鍒濆鍖栫▼搴,
    绛旓細define a8255_PC XBYTE[0x0062] /*PC鍙e湴鍧*/ define a8255_CON XBYTE[0x0063] /*鎺у埗瀛楀湴鍧*/ main(){ for(i=0;i<1000;i++); 寤舵椂 a8255_CON=0x80;PA,PB,PC鍏ㄤ负杈撳嚭锛寎 鎴戝彧鏄粰浣犱妇涓緥瀛锛8255鐨勬帶鍒跺瓧浣犵湅鐪嬭鏄庝功鎶0x80鏀规垚浣犻渶瑕佺殑灏辫浜嗭紝鎻愰啋浣犲緱鏄疨C 濡傛灉浣滀负杈撳叆杈撳嚭...
  • 鍋囪涓鐗8255A鐨浣跨敤鎯呭喌濡備笅,A鍙f柟寮0杈撳叆,B鍙d负鏂瑰紡0杈撳嚭,姝ゆ椂杩炴帴...
    绛旓細鑻 A7A6A5A4A3 = 00101 鍒欙細A鍙e湴鍧 =0010 1000b =28h B鍙e湴鍧 =0010 1010b =2Ah C鍙e湴鍧 =0010 1100b =2Ch 鎺у埗鍙e湴鍧 =0010 1110b =2Eh 鍒濆鍖栫▼搴锛歁OV AL, 1001000b ;鏂瑰紡鎺у埗瀛楅丄L OUT 2EH, AL ;鏂瑰紡鎺у埗瀛楄緭鍑哄埌8255鎺у埗鍙 ...
  • 8255鐨鍒濆鍖栫▼搴鏄粈涔
    绛旓細鍥犱负A鍙d负鏂瑰紡0杈撳嚭锛孊鍙d负鏂瑰紡0杈撳叆锛屾墍浠ユ帶鍒跺瓧涓10000010B锛82H 3銆鍒濆鍖栫▼搴 MOV AL,82H MOV DX,24FH OUT DX,AL 闄8255鐭ヨ瘑锛8255鏄井鏈哄苟琛屾帴鍙h姱鐗囥8255鏄彲缂栫▼I锛廜鍙f墿灞曡姱鐗囥傚8255杈撳叆涓嶅悓鐨勬寚浠ゅ彲鏀瑰彉I锛廜鍙g殑宸ヤ綔鏂瑰紡銆8255涓庡崟鐗囨満绯荤粺杩炴帴鏂瑰紡绠鍗曪紝宸ヤ綔鏂瑰紡鐢辩▼搴忚瀹氾紝鍥2涓...
  • 扩展阅读:扫一扫题目出答案 ... 8255初始化程序怎么写 ... 8255控制字怎么算出来的 ... 8255控制字怎么确定 ... 8255a初始化程序代码 ... 8255的编程方法 ... 8255初始化程序是什么 ... 8255芯片引脚图及其作用 ... 8255初始化编程步骤 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网