1、用连续或单步方式运行程序,检查20002002H中内容变化情况。编写程序:把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。SE02: MOV DPTR, #2000H MOVX A, DPTR MOV B, A SWAP A ANL A, #0FH INC DPTR MOVX DPTR, A MOV A, B SJMP $END实验三 P1口亮灯实验(1)学习P1口的使用方法;(2)学习延时子程序的编写。二、实验预备知识(1)P1口对准双向口,每一位都可独立地定义为输出或输入。(2)本实验中延时子程序采用指令循环来实现,机器周期(12
2、/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。三、实验内容P1口作为输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。四、程序框图五、实验电路六、实验步骤A2区的P10P17用8芯排线连接到D1区的LED1LED8,运行程序后,观察发光二极管闪亮移位情况。七、思考(1)改变延时常数,使发光二极管闪亮时间改变;(2)修改程序,使发光二极管闪亮移位方向改变。SE18: MOV P1, #0FFHLO34: MOV A, #0FEHLO33: MOV P1, A LCALL SE19 RL A SJMP LO33SE19: MOV R6, #0A0HLO3
3、6: MOV R7, #0FEHLO35: DJNZ R7,LO35 DJNZ R6,LO36 RET END实验四 定时流水灯实验(定时器简单应用)通过学习单片机定时器的简单定时操作,掌握单片机定时器使用的一般方法。 利用查询方式,利用定时器T0(或T1),实现在8051单片机的P1.0引脚输出一个周期为1S的连续方波,并通过L1指示观察其输出。(fosc=6MHz)三、实验原理图用排线连接A2区P1口和D2区LED1LED8,编写定时控制程序,观察LED发光情况6MHz的晶振,采用50ms定时,工作方式1,循环10次来实现。X=65536-500/2*10-3=40536=9E58HTH=
4、9EHTL=58H查询方式源代码:MAIN: MOV TMOD, #10H ;T1工作方式1 MOV R3, #10LOOP1: MOV TH1, #9EH MOV TL1, #58H SETB TR1 NOP JNB TF1, LOOP CLR TF1 CLR TR1 DJNZ R3, LOOP1 CPL P1.1 SJMP LOOP1中断方式源代码: LJMP MAIN ORG 001BH LJMP TF1INT ORG 0030H MOV TMOD, #10H MOV R3,#10 MOV TH1, #9EH SETB ET1 SETB TR1 SETB EAHERE: SJMP HER
5、ETF1INT: CLR TR1 MOV TL1, #58H DJNZ R3, LOOP CPL P1.1 MOV R3, #10 RETI END 实验五 数据区传送程序(1)掌握RAM中的数据操作;(2)熟悉8031(8051)指令系统,掌握程序设计方法。把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。数据区传送在R2、R3中输入源首址(例如0000H),R4、R5中输入目的地址(例如2000H),R6、R7中输入字节数(例如1FFFH),运行程序,检查00001FFFH中内容是否和20003FFFH中内容完全一致。 SJMP MAIN MOV R2,#00H
6、 MOV R3,#00H MOV R4,#20H MOV R5,#00H MOV R6,#1FH MOV R7,#0FFHSE22: MOV DPL, R3 MOV DPH, R2 MOV DPL, R5 MOV DPH, R4 CJNE R3, #0FFH, LO42 INC R2LO42: INC R3 CJNE R5, #0FFH, LO43 INC R4LO43: INC R5 CJNE R7, #00H, LO44 CJNE R6, #00H, LO45 SJMP $LO44: DEC R7 SJMP SE22LO45: DEC R6实验六 简单I/O扩展实验(1)掌握P3口、P1口
7、简单使用;(2)学习延时程序的编写和使用。1.P3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一。2.P1口做输出口,编写程序,使P1口接的8 个发光二极管D1D8按16进制加一方式点亮发光二极管。三、实验说明P3口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P3口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20K40K,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。四、实验程序框图 五、实验线路图 A2区INT1用插针连至D1区SW1孔,A1区P10P17用排线连至D1区
8、LED1LED8。连续运行程序。开关SW1每拨动一次,LED1LED8发光二极管按16进制方式加一点亮。 JB P3.3,MAIN LCALL DELAY JB P3.3,MAINL1: JNB P3.3,L1 INC A MOV P1,ADELAY: MOV R6,#0FFHL2:L3: DJNZ R7,L3 DJNZ R6,L2实验七 键盘实验 利用实验仪上提供的按键K1K7作为电子琴按键,控制蜂鸣器发声,使用户了解计算机发声原理,熟悉定时器和键盘扫描电路的工作原理及编程方法。(蜂鸣器34KHz的方波) 编写一段程序,用P3.3口控制(输出7种音阶标称频率的方波),使B5区的蜂鸣器发出不同
9、的音调。程序检测按键的状态,当按下某一键时,蜂鸣器发出对应的音调。三、实验电路六、实验步骤 (1)用导线将A2区的P3.3口(INT1)和B5区的BUZZ接口相连,然后将D1区的J53接口和A2区的J61接口一一对应相连。(2)编写按键的动态键盘扫描程序,根据不同音阶的频率编写蜂鸣器的音调控制程序。BUZZ EQU P3.3 ORG 0000H ORG 000BH LJMP INT_T0 ORG 0100H MOV SP,#60H ;初始化堆栈向量 MOV 30H,#00 ;定时器初值清零 MOV 31H,#00 MOV P1,#0FFH ;设置P1口为输入模式 MOV TMOD,#01H ;
10、设置定时器0为工作模式1 SETB ET0 ;开定时器0中断 SETB EA ;开总中断 CLR TR0 ;关闭定时器0START: MOV R0,P1 CJNE R0,#0FFH,KEY1 ;键盘扫描 CLR TR0 SJMP STARTKEY1: CJNE R0,#0FEH,KEY2 ;K1键按下 MOV 30H,#0FBH ;设置音阶1 MOV 31H,#0E9H LJMP SET_TIMERKEY2: CJNE R0,#0FDH,KEY3 ;K2键按下 MOV 30H,#0FCH ;设置音阶2 MOV 31H,#5CHKEY3: CJNE R0,#0FBH,KEY4 ;K3键按下设置音
11、阶3 MOV 31H,#0C1HKEY4: CJNE R0,#0F7H,KEY5 ;K4键按下设置音阶4 MOV 31H,#0EFHKEY5: CJNE R0,#0EFH,KEY6 ;K5键按下 MOV 30H,#0FDH ;设置音阶5 MOV 31H,#045HKEY6: CJNE R0,#0DFH,KEY7 ;K6键按下设置音阶6 MOV 31H,#92HKEY7: CJNE R0,#0BFH,NOKEY ;K7键按下MOV 30H,#0FDH ;设置音阶7 MOV 31H,#0D6HSET_TIMER: SETB TR0 ;发声 SJMP STARTNOKEY: CLR TR0 ;无键按
12、下 SJMP START INT_T0: ;T0中断服务程序 MOV TH0,30H ;定时器附初值 MOV TL0,31H CPL BUZZ ;输出方波 RETI实验八 D/A接口实验一、 实验目的熟悉D/A转换的工作原理,学习使用并行数模转换芯片ADC0832进行数字信号到模拟信号的转换过程。二、 实验内容通过片外总线方式访问并行模拟数字转换器芯片ADC0832,掌握数字信号到模拟信号的转换方法。三、 实验原理图四、 实验步骤1. 将DAC0832模块插入PARK2区2. 将模块上的JP1跳线帽跳至右侧的VCC处3. 将A7区的P2_CS连接到A2区的A154. 将A7区的P2_IO2和P
13、2_INT分别接入C4区的A-和AOUT,C4区的A+接D2区的GND.5. 将C4区的V+和V-分别接至C1区的+12V和-12V6. 运行程序,使用万用表观察C4区的AOUT处的电压是否和程序输出电压相同。LJMP MAINORG 0100H MOV DPTR, #7FFFH MOV A, #0FFH LJMP LOOP实验九 A/D接口实验熟悉A/D转换的工作原理,学习使用并行模数转换芯片ADC0809进行电压信号的采集和数据处理。通过片外总线方式访问并行模拟数字转换器芯片ADC0809,掌握模拟电压的通用采集方法。1. 将ADC0809模块插入PARK2区2. 将D2区1K电位器的左端
14、金属孔通过导线连接到该区的GND金属孔,而右端的金属孔通过导线连接到该区的VCC金属孔3. 将D2区1K电位器的中间金属孔链接到A7去的P2_IO2金属孔4. 将A7区的P2_IO3P2_IO5分别连接到A2区的A2A0,P2_INT连接到A2区的INT0。5. 将A7区的P2_CS连接到A2区的A156A1区P10P17用排线连至D1区LED1LED87. 运行程序,设置断点,观察转换值是否与万用表测试值相同或者与对应的LED亮灭是否一 致。 MOV R1, #30H MOV DPTR, #7FF8H MOV R7, #02H MOV R6,#20H NOP DJNZ R6,DELAY MOV R1, A INC R1 DJNZ R7, LOOP
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1