扬大电气单片机实验程序.docx

上传人:牧羊曲112 文档编号:3538935 上传时间:2023-03-13 格式:DOCX 页数:12 大小:40.21KB
返回 下载 相关 举报
扬大电气单片机实验程序.docx_第1页
第1页 / 共12页
扬大电气单片机实验程序.docx_第2页
第2页 / 共12页
扬大电气单片机实验程序.docx_第3页
第3页 / 共12页
扬大电气单片机实验程序.docx_第4页
第4页 / 共12页
扬大电气单片机实验程序.docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《扬大电气单片机实验程序.docx》由会员分享,可在线阅读,更多相关《扬大电气单片机实验程序.docx(12页珍藏版)》请在三一办公上搜索。

1、扬大电气单片机实验程序3.1Keil集成开发环境熟悉及汇实验编程序 1. MOV 20H,#98H MOV A,20H MOV B, #100 DIV AB MOV 30h, A XCH A, B MOV B, #10 DIV AB MOV 31H,A MOV 32H,B RET END 2. MOV 20H,#78H MOV A,20H ANL A,#0FH ADD A,#30H MOV 30H,A MOV A,20H ANL A,#0F0H SWAP A ADD A,#30H MOV 31H,A 3. MAIN: MOV 30H,#2 MOV 31H,#3 MOV 3AH,#4 MOV 4

2、3H,#3 MOV R0,#30H MOV R7,#10 MOV A,#00H LOOP:MOV R0,A INC R0 DJNZ R7,LOOP RET END 4. MAIN: MOV 30H,#3 MOV 31H,#5 MOV 3FH,#6 MOV R0,#30H MOV R1,#40H MOV R7,#16 LOOP:MOV A,R0 MOV R1,A INC R0 INC R1 DJNZ R7,LOOP RET END 并行I/O接口实验 1. ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV A,#0FEH LIGHT: MOV P1,A RR A M

3、OV P1,A ACALL DELAY AJMP LIGHT DELAY: MOV R7,#250 DELAY1: MOV R6,#250 NOP DELAY2: DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET END 2. ORG 0000H AJMP MAIN ORG 0100H MAIN: SETB P1.0 SETB P1.1 LOOP: MOV C,P1.0 MOV P1.2,C MOV C,P1.1 MOV P1.3,C AJMP LOOP SJMP $ END 3. ORG 0000H AJMP MAIN ORG 0100H MAIN: SETB P1.7 L

4、OOP: MOV C,P1.7 MOV P1.1,C MOV P1.0,C AJMP LOOP SJMP $ END 3.3点阵式LED显示实验 1. ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV A,#0FEH MOV R4,#8 LCALL T164 SJMP MAIN T164: RLC A MOV P3.3,C MOV P3.4,C SETB P3.2 CLR P3.2 LCALL DEL DJNZ R4,T164 DEL: MOV R5,#04H DEL1: MOV R6,#0FFH DEL2: MOV R7,#0FFH DEL3: DJNZ R7,

5、DEL3 DJNZ R6,DEL2 DJNZ R5,DEL1 END 2. ORG 0 SJMP MAIN ORG 30H MAIN: MOV R1,#10 X: MOV DPTR,#TABX MOV B,#0FEH ;B寄存器作列值变换 CLR C MOV R2,#8 ;R2作列循环计数 LCALL LOOP DJNZ R2,LOOP DJNZ R1,X SJMP MAIN LOOP: MOV A,#0 MOV P1,#0FFH MOV R4,#8 ;R4作行串并转换计数 ;行值设置 MOVC A,A+DPTR INC DPTR LCALL T164 ;列值设置 MOV P1,B MOV A

6、,B RL A MOV B,A ;延时 LCALL DEL RET SJMP MAIN ;串并转换程序 T164: RLC A MOV P3.3,C MOV P3.4,C SETB P3.2 CLR P3.2 DJNZ R4,T164 RET ;延时子程序 DEL: MOV R5,#20 DEL1: MOV R6,#125 DEL2: DJNZ R6,DEL2 DJNZ R5,DEL1 RET TABX: DB 7EH,0BDH,0DBH,0E7H,0E7H,0DBH,0BDH,7EH TABT: DB 0FCH,0FCH,0FCH,00H,00H,0FCH,0FCH,0FCH TABL: D

7、B 00H,00H,3FH,3FH,3FH,3FH,3FH,3FH TABE: DB 00H,00H,24H,24H,24H,24H,24H,24H 3.4 I2C总线和8段LED显示实验 1. 内容1,显示12345678 ;* ; 定义器件地址及存放单元 ZLG7290 EQU 70H ;ZLG7290的器件地址 SLA DATA 63H ;器件的从地址 SUBA DATA 64H ;器件的子地址 ; 定义变量单元 ACK BIT 10H ;应答标志位 NUMBYTE DATA 62H ;读/写的字节数变量 MTD EQU 6EH ;发送数据缓冲器 DISBUF EQU 66H ;66H6

8、DH为显示缓冲区,66H对应最右一位 ;以上定义一般不要改动 ; I2C引脚定义 SDA BIT P3.0 SCL BIT P3.1 RST BIT P3.6 ;* ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SP,#70H ;设堆栈,建议堆栈设在此处 LCALL RE7290 ;复位RE7290 MOV R0,#DISBUF ;显缓区首地址 MOV A,#1FH ;将熄灭码依次填入显缓区 MOV R2,#8 MLOOP: MOV R0,A INC R0 DJNZ R2,MLOOP CC: MOV R0,#DISBUF MOV R3,#08H MOV A,#

9、08H AA: MOV R0,A INC R0 DEC A DJNZ R3,AA LCALL LEDDISP ;调用显示程序 LCALL DELAY ;延时 SJMP CC $INCLUDE(LEDDISP_ASM.INC) ;包含LED显示模块程序 END 2. ZLG7290 EQU 70H SLA DATA 63H SUBA DATA 64H ACK BIT 10H NUMBYTE DATA 62H MTD EQU 6EH DISBUF EQU 66H SDA BIT P3.0 SCL BIT P3.1 RST BIT P3.6 ORG 0000H LJMP MAIN ORG 0030H

10、 MAIN: MOV SP, #70H LCALL RE7290 MOV R0, #DISBUF MOV A, #1FH MOV R2, #8 MLOOP: MOV R0, A INC R0 DJNZ R2, MLOOP AA: MOV R0, #DISBUF MOV A,P1 MOV B,#64H DIV AB MOV R0,A INC R0 MOV A,B MOV B,#10 DIV AB MOV R0,A INC R0 MOV A,B MOV R0,A LCALL LEDDISP LCALL DELAY SJMP AA $INCLUDE(LEDDISP_ASM.INC) END 3.5中

11、断实验 1. ORG 0 LJMP MAIN ORG 0003H LJMP INT00 ORG 30H MAIN:SETB EA SETB EX0 SETB IT0 SETB P1.0 HERE:JMP HERE INT00:CPL P1.0 RETI END 2. ORG 0000H LJMP MAIN ORG 0003H LJMP INTT0 ORG 0100H MAIN: SETB EX0 SETB IT0 SETB EA MOV R1,#0 MOV A,#0FCH /点亮最低位应送值 CL: MOV R4,#8 /移位7次 DL: MOV R5,#10 /50MS*10 MOV P1,

12、A CHULI: CJNE R1,#0,CHULI1 /R1为0,左移一位循环点亮 RL A CHULI1: CJNE R1,#1,CHULI2 /R1为1,右移一位循环点亮 RR A CHULI2: CJNE R1,#2,CHULI3 /R1为2,左移两位循环点亮 RL A RL A CHULI3: CJNE R1,#3,DELAY /R1为3,右移两位循环点亮 RR A RR A DELAY: LCALL DEL DJNZ R5,DELAY /每一次调用DEL延时50ms,调用R5次 DJNZ R4,DL /每轮位移R4次 LJMP CL /一轮结束,从头再来,主要从新赋值R4 DEL:

13、MOV R6,#200 /较精确50ms延时 DEL1: MOV R7,#123 NOP DEL2: DJNZ R7,DEL2 DJNZ R6,DEL1 RET INTT0: INC R1 CJNE R1,#4,FANHUI MOV R1,#0 FANHUI: RETI END 3. ORG 0 LJMP MAIN ORG 0003H LJMP INTOO ORG 30H MAIN:SETB EA SETB EX0 SETB IT0 SETB P1.0 MOV 30H,#0 ORG 50H HERE:JMP HERE INTOO:MOV A,30H ADD A,#1 MOV 30H,A MOV

14、 A,31H ADDC A,#0 MOV 31H,A MOV A,30H CPL A MOV P1,A RETI END 3.6 定时/计数器实验 1. ;调用LED显示的示例程序:将按键连到T0引脚,程序对按键次数计数并显示。 ;* ; 定义器件地址及存放单元 ZLG7290 EQU 70H ;ZLG7290的器件地址 SLA DATA 63H ;器件的从地址 SUBA DATA 64H ;器件的子地址 ; 定义变量单元 ACK BIT 10H ;应答标志位 NUMBYTE DATA 62H ;读/写的字节数变量 MTD EQU 6EH ;发送数据缓冲器 DISBUF EQU 66H ;66

15、H6DH为显示缓冲区,66H对应最右一位 ;以上定义一般不要改动 ; I2C引脚定义 SDA BIT P3.0 SCL BIT P3.1 RST BIT P3.6 ;* ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP,#70H ;设堆栈,建议堆栈设在此处 LCALL RE7290 ;复位RE7290 MOV R0,#DISBUF ;显缓区首地址 MOV A,#1FH ;将熄灭码依次填入显缓区 MOV R2, #8 MLOOP: MOV R0, A INC R0 DJNZ R2, MLOOP MOV TMOD,#05H MOV TH0,#0 MOV TL0,

16、#0 SETB ET0 SETB EA SETB TR0 PLAY: MOV R1,TL0 MOV A,R1 CPL A MOV R1,A MOV P1,R1 MOV B,#100 MOV A,TL0 DIV AB MOV 68H,A MOV A,B MOV B,#10 DIV AB MOV 67H,A MOV 66H,B MOV B,#100 MOV A,TH0 DIV AB MOV 6BH,A MOV A,B MOV B,#10 DIV AB MOV 6AH,A MOV 69H,B LCALL LEDDISP LCALL DELAY LJMP PLAY $INCLUDE(LEDDISP_A

17、SM.INC) END 2. ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P ORG 0100H MAIN: MOV SP,#60H ;设堆栈指针 MOV B,#20 ;设循环次数20次 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 SETB ET0 SETB EA HERE: SJMP HERE ;原地循环,等待中断 IT0P: MOV TL0,#0B0H ;重装初值 MOV TH0,#3CH DJNZ B,LOOP MOV B,#20 CPL P1.0 LOOP: RETI ;返回“SJMP HERE”处

18、 END 3. ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P ORG 001BH LJMP IT1P ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#16H ;IT0计数,IT1定时 MOV TL0,#0FFH MOV TH0,#0FFH SETB TR0 SETB ET0 MOV TL1,#0B0H MOV TH1,#3CH SETB ET1 SETB EA SETB PT1 CLR PT0 MOV R0,#3 ;03,选择显示的效果4种 MOV R1,#8 ;走马灯 MOV B,#10 ;显示延迟所需的循环次数10词 HERE:

19、 AJMP HERE IT0P: CJNE R0,#0FFH,T MOV R0,#3 T: CJNE R0,#3,T2 MOV DPTR,#TAB1 T2: CJNE R0,#2,T3 MOV DPTR,#TAB2 T3: CJNE R0,#1,T4 MOV DPTR,#TAB3 T4: CJNE R0,#0,T5 MOV DPTR,#TAB4 T5: MOV R2,DPL MOV R3,DPH LOOP: MOV DPL,R2 MOV DPH,R3 MOV R1,#8 LOOP1:CLR A MOVC A,A+DPTR MOV P1,A MOV C,TF0 ;IT0溢出置1 JC DE LC

20、ALL DEL INC DPTR DJNZ R1,LOOP1 AJMP LOOP DE: DEC R0 RETI IT1P: MOV TL1,#0B0H ;延时 MOV TH1,#3CH DJNZ B,LOP MOV B,#10 CLR TR1 LOP: RETI ;返回“IT1P”处 DEL: SETB TR1 ZIJI: JB TR1,ZIJI RET TAB1: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH TAB2: DB 7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH TAB3: DB 7FH,0FEH,0BFH,0

21、FDH,0DFH,0FBH,0EFH,0F7H TAB4: DB 7EH,0BDH,0DBH,0E7H,0DBH,0BDH,7EH,0FFH END 3.7串行通信实验 1.发送 ORG 0000H AJMP MAIN ORG 0023H AJMP SINT ORG 0100H MAIN: MOV SP,#60H MOV R0,#30H MOV 30H,#30H MOV 31H,#31H MOV 32H,#32H MOV 33H,#33H MOV 34H,#34H MOV 35H,#35H MOV 36H,#36H MOV 37H,#37H MOV TMOD,#20H MOV TL1,#0FA

22、H MOV TH1,#0FAH MOV SCON,#50H SETB TR1 SETB ES SETB EA MOV R1,#8 MOV SBUF,R0 SJMP $ SINT: CLR TI DJNZ R1,LP sjmp ti_end lp: INC R0 MOV SBUF,R0 ti_end: RETI END 接受 ORG 0000H AJMP MAIN ORG 0023H AJMP SINTR ORG 0100H MAIN: MOV SP,#60H MOV R0,#40H MOV TMOD,#20H MOV TH1,#0FAH MOV TL1,#0FAH MOV SCON,#50H

23、SETB TR1 SETB EA SETB ES SJMP $ ORG 0150H SINTR: CLR RI MOV A,SBUF MOV R0,A INC R0 RETI END 2.发送 ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SCON,#40H MOV TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH SETB TR1 TRANSLATE:MOV A,P1 MOV SBUF,A WAIT: JBC TI,NEXT SJMP WAIT NEXT: SJMP TRANSLATE END 接受 ORG 0000H LJMP M

24、AIN ORG 0100H MAIN: MOV SCON,#50H MOV TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH SETB TR1 RECEIVE:JBC RI,NEXT SJMP RECEIVE NEXT: MOV A,SBUF MOV P1,A SJMP RECEIVE END 3.8 A/D转换实验 1. ORG 0000H LJMP MAIN ORG 0003H LJMP QAZ ORG 0100H MAIN: SETB IT0 SETB EA SETB EX0 MOV DPTR,#7FFCH MOV A,#00H MOVX DPTR,A SJMP

25、 $ QAZ: MOV DPTR,#7FFCH MOVX A,DPTR MOV P1,#0FFH MOV P1,A MOV A,#00H MOVX DPTR,A RETI END 2. ZLG7290 EQU 70H ;ZLG7290的器件地址 SLA DATA 63H ;器件的从地址 SUBA DATA 64H ;器件的子地址 ; 定义变量单元 ACK BIT 10H ;应答标志位 NUMBYTE DATA 62H ;读/写的字节数变量 MTD EQU 6EH ;发送数据缓冲器 DISBUF EQU 66H ;66H6DH为显示缓冲区,66H对应最右一位 ;以上定义一般不要改动 ; I2C引

26、脚定义 SDA BIT P1.7 SCL BIT P1.6 RST BIT P1.0 ;* ORG 0000H LJMP MAIN ORG 0003H LJMP QAZ ORG 000BH LJMP TIMER00 ORG 0100H MAIN: MOV TMOD,#01H /T1,方式1 MOV TH0,#4CH /50ms MOV TL0,#00H SETB IT0 SETB EX0 SETB ET0 SETB EA SETB TR0 MOV DPTR,#7FFCH MOV A,#00H MOVX DPTR,A AA: MOV 6DH,R2 数 MOV MOV 68H,R4 67H,R5

27、MOV 6CH,R3 /最左边显示两位十六进制 MOV B,#10 DIV AB MOV R5,A /十进制十位放在R5中 MOV R6,B /十进制个位放在R6中 RETI $INCLUDE(LEDDISP_ASM.INC) 块程序 END ;包含LED显示模 MOV 66H,R6 /最右边显示三位十进制数 LCALL LEDDISP LCALL DELAY SJMP AA TIMER00: MOV TH0,#4CH MOV TL0,#00H INC R0 /2*50=100MS CJNE R0,#1,EXIT MOV R0,#0 MOV DPTR,#7FFCH MOV A,#00H MOVX DPTR,A EXIT: RETI QAZ: MOV DPTR,#7FFCH MOVX A,DPTR MOV P1,A MOV R1,A /暂存A MOV B,#16 DIV AB MOV R2,A /十六进制高位放在R2中 MOV R3,B /十六进制低位放在R3中 MOV A,R1 MOV B,#100 DIV AB MOV MOV R4,A /十进制百位放在R4中 A,B

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号