微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机汇编实验八:查表+串口通信

单片机汇编实验八:查表+串口通信

时间:12-01 来源:互联网 点击:
实验要求:P1口的P1.0~P1.8分别接8个发光二极管。要求编写程序模拟一时序控制装置。开机后第一秒钟L4,L5亮,第二秒钟L3,L6亮,第三秒钟L2,L7亮,第四秒L1,L8亮,第五秒L2,L7亮,第六秒L3,L6亮,第七秒L4,L5亮,第八秒L1,L2,L7,L8亮,第九秒L3,L4,L5,L6亮,第十秒全亮,第十一秒全灭。然后再从头循环。以键盘作为外部中断输入信号,有键按下时,将当前LED状态送PC机显示。

//This is the nineth_5programof homework
//This is made by WQ Data:2013/3/18/
ORG 0000H
AJMP MAIN
ORG 0023H //0023H 串口中断程序的入口地址
AJMP Communication
ORG 0003H //0003H 外部中断程序的入口地址
AJMP WT0
ORG 000BH //000BH 定时器0程序的入口地址
AJMP TT0
MAIN:
MOV TMOD,#21H //定时器工作方式
SETB EA //开总中断
SETB ET0 //允许计时器
SETB EX0 //开外部中断
SETB IT0 //边沿触发方式
SETB TR0 //开启计时器0
MOV TH0,#4CH //设置定时常数
MOV TL0,#00H
MOV TH1,0FDH
MOV R7,#20 //设置计数寄存器
MOV R6,#00 //查表使用
MOV SCON,#40H //串口工作方式1,允许中断接受
MOV DPTR,#TABLE
CLR A
OK1: MOV C,P3.4
JNC KAISHI
MOV C,P3.5
JNC KAISHI
MOV C,P3.6
JNC KAISHI
MOV C,P3.7
JNC KAISHI
SJMP OK1

KAISHI:CLR P3.2
SETB P3.2
SJMP OK1

TT0: MOV TH0,#4CH //计时器0置数
MOV TL0,#00H
DJNZ R7,RETN //1秒钟到来了
MOV R7,#20
MOV A,R6
MOVC A,@A+DPTR
MOV P1,A
INC R6
CJNE R6,#11,RETN
MOV R6,#00
RETN: RETI //定时程序返回指令

WT0: PUSH TH0
PUSH TL0
CLR TR0 //关闭定时器0
SETB ES //打开串口中断
SETB TR1 //启动定时器1
MOV SBUF,P1 //将端口的数据传送给计算机
POP TL0
POP TH0
SETB TR0 //打开定时器0
CLR ES
RETI
Communication:
JNB TI,$
CLR TI
CLR ES
RETI
////延时10ms模块////
DELAY: MOV R2,#20
D0: MOV R1,#248
DJNZ R1,$
DJNZ R1,D0
/////////////////////
TABLE: DB 7EH,0BDH,0DBH,0E7H,0DBH,0BDH,7EH,0AAH,55H,00H,0FFH
END

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top