导航:首页 > 操作系统 > 单片机定时器中断汇编

单片机定时器中断汇编

发布时间:2023-03-26 04:06:12

㈠ 如何用汇编语言编写单片机试验中的定时中断实验

第一、设置定时器工作模式;第二、给TLX、THX赋初值;第三、开中断;第四、启动定时器。当然你要编好中断服务程序了。下面给一个简单的示范例程:程序运行后将在P1.0上产生1K的方波信号输出。
ORG 0000H
LJMP START
ORG 000BH
LJMP TM0
ORG 0100H
START:
CLR EA
MOV SP,#60H
MOV TMOD,#01H
MOV TCON,#01H
MOV TH0,#0FEH
MOV TL0,#0BH
SETB TR0
SETB EA
SJMP $
TM0:
CLR TR0
MOV TH0,#0FEH
MOV TL0,#0BH
SETB TR0
CPL P1.0
RETI
END

㈡ 单片机定时器中断实验 程序(汇编语言)不要c语言的

;假定晶振频率12M
;假定P1口对应接8个LED,且高电平有效
;MCU:8051系列

CONT_DISP EQU 30H ;定义查表的计数变量,用于8个LED灯的显示状态
CONT_INT EQU 31H ;定义中断间隔的计数变量,用于控制20个中断为1秒的时间间隔

ORG 00H
AJMP GO
ORG 0BH
AJMP INT0_1 ;定时器0,工作方式1

GO:
MOV SP,#60H
MOV P1,#00H ;P1口初始全部关闭
MOV CONT_DISP,#8 ;查表取谈禅LED点亮状态,注意此处为了减少变量,查表采用从尾到首的顺序,所以初始值为表末位数
MOV TMOD,#01H ;定时器工作方式1
MOV TH0,#0BH
MOV TL0,#3CH ;计数器初始设定,中断间隔为50ms
SETB TR0
SETB ET0
SETB EA ;计数器开始工档码作
LOOP: ;以下几句为不断为P1口送值,点亮相应的LED
MOV A,CONT_DISP
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
AJMP LOOP
;----------------以下为中断处理程序---------------
INT0_1:
PUSH ACC ;保护现场
MOV TH0,#0BH
MOV TL0,#3CH ;定时器初值重装
DJNZ CONT_INT,RETINT
MOV CONT_INT,#20 ;20个中断判定
DJNZ CONT_DISP,RETINT ;每20个中断,即1秒含蠢尘,查表数减1
MOV CONT_DISP,#8 ;到1再循环
RETINT:
POP ACC
RETI

TAB:
NOP
DB 00H,0FFH,0AAH,55H,0A0H,50H,0AH,05H ;注意此表为从尾倒查式, 上面一句NOP不可少.

END

㈢ 用单片机汇编语言编写中断程序

ORG 0000H
LJMP START
ORG 000BH
LJMP Timer0Interrupt

START:
MOV SP,#60H
LCALL InitTimer0

LOOP:
;add your code here!
LJMP LOOP

InitTimer0:
MOV TMOD,#01H
MOV TH0,#0FCH
MOV TL0,#18H
SETB EA
SETB ET0
SETB TR0
RET

Timer0Interrupt:
PUSH DPH
PUSH DPL
PUSH ACC
MOV TH0,#0FCH
MOV TL0,#18H
CPL P1.0
POP ACC
POP DPL
POP DPH
RETI

END

这是定慎渣时器0的一个1ms中运汪断宽悄悄一次的程序 在P1.0端口输出1KHz方波

㈣ 单片机定时器中断实验 程序(汇编语言)不要c语言的

下列程序,已经经过实验,可以满足题目要求.
ORG 0000H
SJMP MAIN
ORG 000BH
SJMP T0_INT
MAIN:
MOV TMOD, #01H ;T0定时方式1
MOV TH0, #(65536-50000) / 256 ;定时50ms@12MHz
MOV TL0, #(65536-50000) MOD 256 ;
SETB TR0 ;启动T0
MOV IE, #82H ;开中断
;第一秒钟L0,L2亮,第二秒钟L1,L3亮,第三秒L4,L6亮,第四秒钟L5,L7亮,
;第五秒L0,L2,L4,L6亮,第六秒钟,L1,L3,L5,L7亮,第七秒钟八个二极管全亮,第八秒钟全灭.
MOV 30H, #11111010B
MOV 31H, #11110101B
MOV 32H, #10101111B
MOV 33H, #01011111B
MOV 34H, #10101010B
MOV 35H, #01010101B
MOV 36H, #00000000B
MOV 37H, #11111111B
MOV R0, #30H
MOV R7, #20
M_LOOP:
SJMP M_LOOP ;无限循环
T0_INT:
MOV TL0, #(65536-50000) MOD 256 ;
MOV TH0, #(65536-50000) / 256 ;定时50ms@12MHz
DJNZ R7, T0_END
MOV R7, #20
MOV P1, @R0
INC R0
CJNE R0, #38H, T0_END
MOV R0, #30H
T0_END:
RETI
END ;完

㈤ 单片机MCS51 8031汇编语言 定时器中断

ORG0000H
LJMPMAIN
ORG000BH
LJMPT0ISR
ORG0030H
MAIN:
MOVTMOD,#01H
MOVTH0,#HIGH(65536-60000)
MOVTL0,#LOW(65536-60000)
SETBTR0
SETBET0
慎睁兆者SETBEA
MOVR2,#8
CLR00H
MOVA,#0FEH
SJMP$
T0ISR:
族孝薯CLRTR0
MOVTH0,#HIGH(65536-60000)
MOVTL0,#LOW(65536-60000)
SETBTR0
JB00H,T02
MOVP1,#3FH
MOVP0,A
RLA
T01:
DJNZR2,T0E
CPL00H
MOVR2,#8
T0E:
RETI
T02:
MOVP1,#5BH
MOVP0,A
RRA
SJMPT01
END

㈥ 单片机中断方式编程(汇编语言)

楼腊帆上的注意了,人家单片机的晶局虚振频率是6MHz的,机器轮腊雹周期相应的是2us,
编程时间最好利用定时器中断以节约资源。。。。
ORG 0000H
LJMP START
ORG 000BH
LJMP TIMER0

START:
MOV TMOD,#00H
MOV TH0,#0FEH
MOV TL0,#0CH
SETB ET0
SETB EA
SETB TR0

MAIN:

LJMP MAIN

TIMER0:
MOV TH0,#0FEH
MOV TL0,#0CH
CPL P1.0
RETI
END

㈦ 51单片机汇编语言定时器的使用(中断方式)

(1)
COUNT_INTEQU30H
LEDVALUEEQU31H
ORG0000H
LJMPSTART
ORG001BH
LJMPTimer1Interrupt

START:
MOVSP,#60H
MOVCOUNT_INT,#0
MOVLEDVALUE,#01H
LCALLInitTimer1

LOOP:
MOVA,LEDVALUE
MOVP2,A
LJMPLOOP

InitTimer1:
MOVTMOD,#10H;定时器T1为工作方式1,产生50ms定时
MOVTH1,#3CH
MOVTL1,#0B0H
SETBEA
SETBET1
SETBTR1
RET

Timer1Interrupt:
PUSHDPH
PUSHDPL
PUSHACC
MOVTH1,#3CH
MOVTL1,#0B0H
;========================
INCCOUNT_INT
MOVA,COUNT_INT;每50ms加1,
CJNEA,#2,Timer1Interrupt_EXIT;100ms
MOVCOUNT_INT,#0
MOVA,LEDVALUE
RLA
MOVLEDVALUE,A
;========================
Timer1Interrupt_EXIT:
POPACC
POPDPL
POPDPH
RETI

END
(2)
COUNT_INT_LEQU30H
COUNT_INT_HEQU31H
LEDVALUEEQU32H
ORG0000H
LJMPSTART
ORG001BH
LJMPTimer1Interrupt

START:
MOVSP,#60H
MOVCOUNT_INT_L,#0
MOVCOUNT_INT_H,#0
MOVLEDVALUE,#01H
LCALLInitTimer1

LOOP:
MOVA,LEDVALUE
MOVP2,A
LJMPLOOP

InitTimer1:
MOVTMOD,#20H;定时器T1为工作方式2,产生250us定时
MOVTH1,#00H
MOVTL1,#06H
SETBEA
SETBET1
SETBTR1
RET

Timer1Interrupt:
PUSHDPH
PUSHDPL
PUSHACC
MOVTH1,#00H
MOVTL1,#06H
;========================
INCCOUNT_INT_L
MOVA,COUNT_INT_L;每250us加1,
CJNEA,#40,Timer1Interrupt_EXIT;250US*40=10ms
MOVCOUNT_INT_L,#0
INCCOUNT_INT_H
MOVA,COUNT_INT_H;每10Ms加1,
CJNEA,#10,Timer1Interrupt_EXIT;10ms*10=100MS
MOVCOUNT_INT_H,#0
MOVA,LEDVALUE
RLA
MOVLEDVALUE,A
;========================
Timer1Interrupt_EXIT:
POPACC
POPDPL
POPDPH
RETI

END

㈧ 单片机汇编语言流水灯,定时器中断控制,(500ms)延时

单片机汇编语言流水灯,用定时器中断控制,可以初始化设置定时器时间(如50mS注定时器最大定时时间到不了500mS,需要加计数存储,中断10就是500mS),有多种方式实现如作一个流水状态表,定时读取写入IO端口 表加一,,或者用左移太移等方式都可以实现在,网上有很多这种实例。

㈨ 51单片机汇编语言如何用定时器中断实现数码管从0-F每秒进1且循环进行。

ORG0000H
JMPBEGIN
ORG000BH
LJMPT0ISR
ORG0030H
TABLE:;共阴极数码管显示代码表
DB3FH,06H,5BH,4FH,66H;01234
DB6DH,7DH,07H,7FH,6fh;56789
;---------------------------------------
BEGIN:
MOVTMOD,#01H
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
SETBET0
SETBEA
MOVR2,#20
CLRA
LOOP:
MOVDPTR,#TABLE
PUSHACC
MOVCA,@A+DPTR
MOVP0,A
POPACC
SJMPLOOP
T0ISR:
CLRTR0
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
DJNZR2,T0E
INCA
ANLA,#0FH
T0E:
RETI
END

㈩ 51单片机定时器的汇编语言程序编程,

LED BIT P1.0 ;定义LED的引脚
ORG 0000H

LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H ;定时器0工作模式1
MOV TH0,#HIGH(65536-50000) ;初值,50毫秒中断一次
MOV TL0,#LOW(65536-50000)
SETB TR0 ;启动定时器
SETB ET0 ;启动定时器中断
SETB EA ;开总中断
MOV R2,#40 ;中断计数初始值
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E ;R2减到0重新赋值,否则退出
MOV R2,#40
CPL LED ;LED亮灭转换
T0E:
RETI
END

阅读全文

与单片机定时器中断汇编相关的资料

热点内容
使用命令查字符查看ipv4地址 浏览:937
英文绘本在app哪里看 浏览:670
老电影水生 浏览:727
python查询数据库结果保存 浏览:52
阿鲁小表情文件夹 浏览:68
《龙猫》的导演是? 浏览:520
大尺度电影百度网盘链接 浏览:280
大话西游2粤语1080下载 浏览:312
课程app哪里找 浏览:515
pe模式下能格式化加密狗吗 浏览:794
pdfpmf 浏览:671
android社交app源码 浏览:235
我的世界命令方块变恐龙 浏览:199
编程刀补app 浏览:105
章小蕙《桃色》迅雷下载 浏览:953
海外华人影视 浏览:521
书包网下载全本txt免费下载 浏览:618
电影一个男孩和女主偷情 浏览:820
归来by勤劳的小野猫 浏览:154
法国马蹄铁电影在线 浏览:263