扬大电气单片机实验程序_第1页
扬大电气单片机实验程序_第2页
扬大电气单片机实验程序_第3页
扬大电气单片机实验程序_第4页
扬大电气单片机实验程序_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3.1Keil集成开发环境熟悉及汇实验编程序1.MOV 20H,#98HMOV A,20HMOV B, #100 DIV AB MOV 30h, A XCH A, B MOV B, #10 DIV ABMOV 31H,AMOV 32H,BRET END2.MOV 20H,#78HMOV A,20HANL A,#0FHADD A,#30HMOV 30H,AMOV A,20HANL A,#0F0HSWAP AADD A,#30HMOV 31H,A3.MAIN:MOV 30H,#2MOV 31H,#3MOV 3AH,#4MOV 43H,#3MOV R0,#30HMOV R7,#10MOV A,#00

2、HLOOP:MOV R0,A INC R0 DJNZ R7,LOOPRET END4.MAIN:MOV 30H,#3MOV 31H,#5MOV 3FH,#6MOV R0,#30HMOV R1,#40HMOV R7,#16LOOP:MOV A,R0MOV R1,AINC R0INC R1DJNZ R7,LOOPRETEND并行I/O接口实验1. ORG 0000H AJMP MAIN ORG 0100HMAIN: MOV A,#0FEHLIGHT: MOV P1,A RR A MOV P1,A ACALL DELAY AJMP LIGHTDELAY: MOV R7,#250DELAY1: MOV

3、 R6,#250 NOPDELAY2: DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET END2. ORG 0000HAJMP MAINORG 0100HMAIN: SETB P1.0 SETB P1.1LOOP: MOV C,P1.0 MOV P1.2,CMOV C,P1.1MOV P1.3,CAJMP LOOPSJMP $END3. ORG 0000H AJMP MAIN ORG 0100HMAIN: SETB P1.7LOOP: MOV C,P1.7 MOV P1.1,C MOV P1.0,C AJMP LOOP SJMP $ END3.3点阵式LED显示实验1.OR

4、G0000HLJMPMAINORG0030HMAIN:MOVA,#0FEHMOVR4,#8 LCALLT164 SJMP MAINT164: RLC A MOV P3.3,C MOV P3.4,C SETBP3.2 CLRP3.2 LCALLDEL DJNZR4,T164DEL: MOVR5,#04HDEL1: MOVR6,#0FFHDEL2: MOVR7,#0FFHDEL3: DJNZR7,DEL3 DJNZR6,DEL2 DJNZR5,DEL1 END2.ORG 0SJMP MAINORG 30HMAIN:MOV R1,#10X:MOV DPTR,#TABXMOVB,#0FEH;B寄存器作

5、列值变换CLR CMOV R2,#8;R2作列循环计数LCALLLOOPDJNZ R2,LOOPDJNZR1,XSJMP MAINLOOP:MOV A,#0 MOVP1,#0FFHMOV R4,#8;R4作行串并转换计数;行值设置MOVCA,A+DPTR INC DPTRLCALL T164;列值设置MOV P1,BMOVA,BRLA MOVB,A;延时LCALL DELRET SJMP MAIN;串并转换程序T164: RLCAMOVP3.3,CMOVP3.4,CSETBP3.2CLRP3.2DJNZR4,T164RET;延时子程序DEL:MOV R5,#20DEL1:MOVR6,#125D

6、EL2:DJNZR6,DEL2DJNZR5,DEL1RETTABX:DB7EH,0BDH,0DBH,0E7H,0E7H,0DBH,0BDH,7EHTABT:DB 0FCH,0FCH,0FCH,00H,00H,0FCH,0FCH,0FCHTABL:DB00H,00H,3FH,3FH,3FH,3FH,3FH,3FHTABE:DB00H,00H,24H,24H,24H,24H,24H,24H3.4 I2C总线和8段LED显示实验1.内容1,显示12345678;*; 定义器件地址及存放单元ZLG7290EQU70H;ZLG7290的器件地址SLADATA63H;器件的从地址SUBADATA64H;器

7、件的子地址; 定义变量单元ACKBIT10H;应答标志位NUMBYTEDATA62H;读/写的字节数变量MTDEQU6EH;发送数据缓冲器DISBUFEQU66H;66H6DH为显示缓冲区,66H对应最右一位;以上定义一般不要改动; I2C引脚定义SDABITP3.0SCLBITP3.1RSTBITP3.6;*ORG0000HLJMPMAINORG0030HMAIN:MOV SP,#70H;设堆栈,建议堆栈设在此处LCALL RE7290;复位RE7290MOVR0,#DISBUF;显缓区首地址(66H)MOVA,#1FH ;将熄灭码依次填入显缓区MOVR2,#8MLOOP:MOVR0,AIN

8、CR0DJNZR2,MLOOPCC:MOVR0,#DISBUF MOVR3,#08HMOV A,#08HAA: MOV R0,A INC R0 DEC ADJNZ R3,AALCALLLEDDISP;调用显示程序LCALLDELAY;延时SJMPCC$INCLUDE(LEDDISP_ASM.INC);包含LED显示模块程序END2.ZLG7290EQU70HSLADATA63HSUBADATA64HACKBIT10HNUMBYTEDATA62HMTDEQU6EHDISBUFEQU66HSDABITP3.0SCLBITP3.1RSTBITP3.6ORG 0000HLJMP MAINORG 003

9、0HMAIN:MOV SP, #70H LCALL RE7290MOV R0, #DISBUFMOV A, #1FHMOV R2, #8MLOOP:MOV R0, AINC R0 DJNZ R2, MLOOPAA:MOV R0, #DISBUFMOV A,P1MOV B,#64HDIV ABMOV R0,AINCR0MOV A,BMOV B,#10DIV ABMOV R0,AINCR0MOV A,BMOV R0,ALCALL LEDDISPLCALL DELAYSJMP AA$INCLUDE(LEDDISP_ASM.INC) END 3.5中断实验1.ORG 0LJMP MAINORG 000

10、3HLJMP INT00ORG 30HMAIN:SETB EASETB EX0SETB IT0SETB P1.0HERE:JMP HEREINT00:CPL P1.0RETIEND2.ORG0000HLJMPMAINORG0003HLJMPINTT0ORG0100HMAIN:SETBEX0SETBIT0SETBEAMOVR1,#0MOVA,#0FCH/点亮最低位应送值CL:MOVR4,#8 /移位7次DL:MOVR5,#10 /50MS*10 MOVP1,ACHULI:CJNER1,#0,CHULI1/R1为0,左移一位循环点亮RLACHULI1:CJNER1,#1,CHULI2/R1为1,右

11、移一位循环点亮RRACHULI2:CJNER1,#2,CHULI3/R1为2,左移两位循环点亮RLARLACHULI3:CJNER1,#3,DELAY /R1为3,右移两位循环点亮RRARRADELAY:LCALLDELDJNZR5,DELAY /每一次调用DEL延时50ms,调用R5次DJNZR4,DL /每轮位移R4次LJMPCL/一轮结束,从头再来,主要从新赋值R4 DEL:MOVR6,#200 /较精确50ms延时DEL1:MOVR7,#123NOPDEL2:DJNZR7,DEL2DJNZR6,DEL1RETINTT0: INCR1CJNER1,#4,FANHUIMOVR1,#0FAN

12、HUI: RETIEND3.ORG 0LJMP MAINORG 0003HLJMP INTOOORG 30HMAIN:SETB EASETB EX0SETB IT0SETB P1.0MOV 30H,#0ORG 50HHERE:JMP HEREINTOO:MOV A,30HADD A,#1MOV 30H,AMOV A,31HADDC A,#0MOV 31H,AMOV A,30HCPL AMOV P1,A RETIEND3.6 定时/计数器实验1.;调用LED显示的示例程序:将按键连到T0引脚,程序对按键次数计数并显示。;*; 定义器件地址及存放单元ZLG7290EQU70H;ZLG7290的器件

13、地址SLADATA63H;器件的从地址SUBADATA64H;器件的子地址; 定义变量单元ACKBIT10H;应答标志位NUMBYTEDATA62H;读/写的字节数变量MTDEQU6EH;发送数据缓冲器DISBUFEQU66H;66H6DH为显示缓冲区,66H对应最右一位;以上定义一般不要改动; I2C引脚定义SDABITP3.0SCLBITP3.1RSTBITP3.6;* ORG0000HLJMP MAIN ORG0100HMAIN:MOV SP,#70H;设堆栈,建议堆栈设在此处LCALL RE7290;复位RE7290MOVR0,#DISBUF;显缓区首地址(66H)MOVA,#1FH;

14、将熄灭码依次填入显缓区MOV R2, #8MLOOP:MOV R0, AINC R0 DJNZ R2, MLOOPMOVTMOD,#05HMOVTH0,#0MOVTL0,#0SETBET0SETBEASETBTR0PLAY: MOVR1,TL0MOVA,R1CPLAMOVR1,AMOVP1,R1MOVB,#100MOVA,TL0DIVABMOV68H,AMOVA,BMOVB,#10DIVABMOV67H,AMOV66H,BMOVB,#100MOVA,TH0DIVABMOV6BH,AMOVA,BMOVB,#10DIVABMOV6AH,AMOV69H,BLCALLLEDDISPLCALLDELAY

15、LJMPPLAY$INCLUDE(LEDDISP_ASM.INC)END2. ORG0000H LJMP MAIN ORG 000BH LJMP IT0P ORG 0100HMAIN: MOV SP,#60H ;设堆栈指针 MOV B,#20 ;设循环次数20次 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 SETB ET0 SETB EAHERE: SJMP HERE ;原地循环,等待中断IT0P: MOV TL0,#0B0H ;重装初值 MOV TH0,#3CH DJNZ B,LOOP MOV B,#20 CPL P1.0LOOP: R

16、ETI ;返回“SJMP HERE”处 END3. ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P ORG 001BH LJMP IT1P ORG 0100HMAIN: 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 ;显示延

17、迟所需的循环次数10词HERE: AJMP HEREIT0P: CJNE R0,#0FFH,T MOV R0,#3T: CJNE R0,#3,T2 MOV DPTR,#TAB1T2: CJNE R0,#2,T3 MOV DPTR,#TAB2T3: CJNE R0,#1,T4 MOV DPTR,#TAB3T4: CJNE R0,#0,T5 MOV DPTR,#TAB4T5: MOV R2,DPL MOV R3,DPHLOOP: MOV DPL,R2 MOV DPH,R3 MOV R1,#8LOOP1:CLR A MOVC A,A+DPTR MOV P1,A MOV C,TF0 ;IT0溢出置1

18、JC DE LCALL DEL INC DPTR DJNZ R1,LOOP1 AJMP LOOPDE: DEC R0 RETIIT1P: MOV TL1,#0B0H ;延时 MOV TH1,#3CH DJNZ B,LOP MOV B,#10 CLR TR1LOP: RETI ;返回“IT1P”处DEL: SETB TR1ZIJI: JB TR1,ZIJI RETTAB1: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FHTAB2: DB 7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEHTAB3: DB 7FH,0FEH,0BFH,0

19、FDH,0DFH,0FBH,0EFH,0F7HTAB4: DB 7EH,0BDH,0DBH,0E7H,0DBH,0BDH,7EH,0FFH END3.7串行通信实验1.发送ORG 0000HAJMP MAINORG 0023HAJMP SINT ORG 0100HMAIN: MOV SP,#60HMOV R0,#30HMOV 30H,#30HMOV 31H,#31HMOV 32H,#32HMOV 33H,#33HMOV 34H,#34HMOV 35H,#35HMOV 36H,#36HMOV 37H,#37HMOV TMOD,#20HMOV TL1,#0FAHMOV TH1,#0FAHMOV S

20、CON,#50HSETB TR1SETB ESSETB EAMOV R1,#8MOV SBUF,R0SJMP $SINT: CLR TIDJNZ R1,LP sjmp ti_endlp:INC R0MOV SBUF,R0ti_end:RETI END接受 ORG 0000HAJMP MAINORG 0023HAJMP SINTRORG 0100HMAIN: MOV SP,#60HMOV R0,#40HMOV TMOD,#20HMOV TH1,#0FAHMOV TL1,#0FAHMOV SCON,#50HSETB TR1SETB EASETB ESSJMP $ORG 0150HSINTR: CL

21、R RIMOV A,SBUFMOV R0,AINC R0 RETIEND2.发送ORG0000HLJMPMAINORG0100HMAIN:MOVSCON,#40HMOVTMOD,#20HMOVTH1,#0FDHMOVTL1,#0FDHSETBTR1TRANSLATE:MOVA,P1MOVSBUF,AWAIT:JBCTI,NEXTSJMPWAITNEXT:SJMPTRANSLATEEND接受ORG0000HLJMPMAINORG0100HMAIN:MOVSCON,#50HMOVTMOD,#20HMOVTH1,#0FDHMOVTL1,#0FDHSETBTR1RECEIVE:JBCRI,NEXTSJ

22、MPRECEIVENEXT:MOVA,SBUFMOVP1,ASJMPRECEIVEEND3.8 A/D转换实验1.ORG0000HLJMPMAINORG0003HLJMP QAZORG0100HMAIN:SETBIT0SETBEASETBEX0MOVDPTR,#7FFCHMOVA,#00HMOVXDPTR,ASJMP$QAZ:MOVDPTR,#7FFCHMOVXA,DPTRMOVP1,#0FFHMOVP1,AMOVA,#00HMOVXDPTR,ARETIEND2.ZLG7290EQU70H;ZLG7290的器件地址SLADATA63H;器件的从地址SUBADATA64H;器件的子地址; 定义变量单元ACKBIT10H;应答标志位NUMBYTEDATA62H;读/写的字节数变量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论