求一个单片机汇编程序

[复制链接]
查看11 | 回复2 | 2011-3-5 03:15:59 | 显示全部楼层 |阅读模式
1.用外部中断控制P1口外接8只灯闪烁。要求:P1口外接8只灯作左移循环点亮,当外中断发生时,作交叉闪烁4次后再左右闪动4次后回到循环左移点亮状态。
回复

使用道具 举报

千问 | 2011-3-5 03:15:59 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">这是个AD转换控制程序,并将结果在LCD上显示的程序。不过程序比较罗嗦,个人觉得有些程序没用。
说明的部分用“////”标注了,应该比较清楚了。你自己看吧。
LED_0 EQU30H
;
LED_1EQU31H
LED_2EQU32H
;存放段码
ADCEQU35H
;/////////AD转换结果存储单元
CLOCK BITP2.4 ;定义ADC0808时钟位
ST BITP2.5
EOCBITP2.6
OE BITP2.7
ORG00H
SJMP START
ORG0BH
LJMP INT_T0

START: MOVLED_0,#00H
MOVLED_1,#00H
MOVLED_2,#00H
MOVDPTR,#TABLE;段码表首地址
MOVTMOD,#02H
MOVTH0,#245
MOVTL0,#00H
MOVIE,#82H
SETB TR0
////////////启动AD转换//////////////////
WAIT:CLRST

SETBST
CLRST
;启动AD转换
JNBEOC,$ ;等待转换结束
SETBOE
MOVADC,P1 ;读取AD转换结果
CLROE
MOVA,ADC
/////////////////分别取AD结果的个/十/百/位/////////////////////////////
MOVB,#100 ;AD转换结果转换成BCD码
DIVAB
MOVLED_2,A
MOVA,B
MOVB,#10
DIVAB
MOVLED_1,A
MOVLED_0,B
/////////////LCD显示///////////////////////
LCALL DISP
SJMPWAIT

INT_T0: CPLCLOCK
;提供ADC0808时钟信号
RETI

///////送LCD显控制的子程序//////////////
DISP: mov
dptr,#table

MOV A,LED_0 ;数码显示子程序
MOVC A,@A DPTR
CLR P2.3
MOV P0,A
LCALL DELAY
SETB P2.3

mov
dptr,#table
MOV A,LED_1
MOVC A,@A DPTR
CLR P2.2
MOV P0,A
LCALL DELAY
SETB P2.2

mov
dptr,#table
MOV A,LED_2
MOVC A,@A DPTR
setb
acc.7
CLR P2.1
MOV P0,A
LCALL DELAY
SETB P2.1
RET
/////////这段程序,比较怪,因为你没说具体功能,我没看明白//////////
/////////只知道是对AD结果按TAB表进行处理,也是取个/十/百/位/////////
DELAY: MOV R6,#10 ;延时5毫秒
D1: MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
ntov:
mov dptr,#tab
mov a,adc
movc a,@a dptr
mov b,#2
div ab
mov r1,b
mov r1,b
mov b,#10
div ab
mov led_2,a
mov led_1,b
cjne r1,#01,kk1

mov led_0,#05
back: ret

kk1:
mov led_0,#00

ajmp back
RET

TABLE:DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH

tab:
db
0,
0 , 0 , 1, 0, 2, 0, 0, 3, 0
db 4, 0, 0, 5, 0, 6, 0, 0, 7, 0
db 8, 0, 0, 9, 0, 0, 10, 0, 11, 0
db 0, 12, 0, 13, 0, 0, 14, 0, 15, 0
db 0, 16, 0, 17, 0, 0, 18, 0, 19, 0
db 0, 20, 0, 0, 21, 0, 22, 0, 0, 23
db 0, 24, 0, 0, 25, 0, 26, 0, 0, 27
db 0, 28, 0, 0, 29, 0, 0, 30, 0, 31
db 0, 0, 32, 0, 33, 0, 0, 34, 0, 35
db 0, 0, 36, 0, 37, 0, 0, 38, 0, 39
db 0, 0, 40, 0, 0, 41, 0, 42, 0, 0
db 43, 0, 44, 0, 0, 45, 0, 46, 0, 0
db 47, 0, 48, 0, 0, 49, 0, 50, 0, 0
db 51, 0, 0, 52, 0, 53, 0, 0, 54, 0
db 55, 0, 0, 56, 0, 57, 0, 0, 58, 0
db 59, 0, 0, 60, 0, 0, 61, 0, 62, 0
db 0, 63, 0, 64, 0, 0, 65, 0, 66, 0
db 0, 67, 0, 68, 0, 0, 69, 0, 70, 0
db 0, 71, 0, 0, 72, 0, 73, 0, 0, 74
db 0, 75, 0, 0, 76, 0, 77, 0, 0, 78
db 0, 79, 0, 0, 80, 0, 0, 81, 0, 82
db 0, 0, 83, 0, 84, 0, 0, 85, 0, 86
db 0, 0, 87, 0, 88, 0, 0, 89, 0, 90
db 0, 0, 91, 0, 0, 92, 0, 93, 0, 0
db 94, 0, 95, 0, 0, 96, 0, 97, 0, 0
db 98, 0, 99, 0, 0, 100, 0, 0, 0
END
回复

使用道具 举报

千问 | 2011-3-5 03:15:59 | 显示全部楼层
<pre id=\"content-578984965\" class=\"reply-text mb10\">我可以帮助你做哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行