1、单片机原理及应用实验,机械与电子工程学院 指导教师:李晋阳 E-Mail:,山东农业大学机械与电子工程学院,教材与课时安排,教材单片机原理及其接口技术实验 丁筱铃等 编著 山东农业大学 课时安排上 机: 9学时,上机安排上机地点:机电学院机房 上机时间:根据教学日历安排 上机内容: 随教学进度的基础训练(上机调试每次实验内容) 要求: 所有作业必须独立完成 实验内容必须经上机调试通过每次实验必须写出实验报告 上机考勤3次缺席,按不及格处理 发现上机时间上网,按缺席一次处理,课程要求,课前请做好预习 保持课堂安静,头脑清醒,思维活跃 认真、独立、按时完成并提交作业 重视上机实践,有效利用宝贵的上
2、机时间,实 验 内 容,实验一、汇编语言软件调试实验 实验二、8031单片机P3、P1口应用 实验三、工业顺序控制 实验四、A/D转换0809应用,实验一、软件实验,一、实验目的 二、实验内容 三、实验程序流程图 四、实验步骤 五、思考,一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容 把7000H70FFH的内容清零。,三、实验程序流程图,开始,R0=00,00送到7000H,DPTR+1,R0+1,结束,四、实验步骤,(1) 联接DVCC实验系统(Ctrl+H) (2) 装载目标文件(Ctrl+L) (3) 设置PC起始地址 (4) 运行程序 (5) 单步、断点运行完
3、后,在存贮器窗口内检查0000H70FFH中的内容是否全为00H,五、思考,假使要把700070FFH中的内容改成FF,如何编制程序。,实验二、8031单片机P3、P1口应用,一、实验目的 二、实验内容 三、实验程序流程图 四、实验原理图 五、实验步骤 六、实验程序,一、实验目的 1、 掌握P3口、P1口简单使用。 2、 学习延时程序的编写和使用。 二、实验内容 1、P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一。 2、 P1口做输出口,编写程序,使P1口接的8个发光二极管L1L8按16进制加一方式点亮发光二极管。,三、实验程序流程图,开 始,四、实验原理图,五、实验步骤
4、,1、P3.3用插针连至K1, P1.0P1.7用插针连至L1L8。 2、从起始地址0540H开始连续运行程序(输入0540后按EXEC键)。 3、开关K1每拨动一次,L1L8发光二极管按16进制方式加一点亮。,ORG 0000H LJMP ST ORG 0030H ST: MOV SP,#60H CLR A KK: SETB P3.3 JB P3.3,KK LCALL DL10MS JB P3.3,KK JNB P3.3,$ LCALL DL10MS INC A MOV P1,A LJMP KK,DL10MS:MOV R6,#10 DL1MS:MOV R7,#250 LP:NOPNOP DJ
5、NZ R7,LP DJNZ R6,DL1MS RET END,六、实验程序,实验三、工业顺序控制 (中断),一、实验目的 二、实验内容 三、实验程序流程图 四、实验原理图 五、实验步骤 六、实验程序,一、实验目的,1、掌握工业顺序控制程序的简单编程,中断的使用。 2、 学习延时程序的编写和使用。 3、学习现场数据的保护和堆栈,二、实验内容,8032的P1.0P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。P3.3为外故障输入模拟开关,P3.3为0时不断告警,P1.7为报警声音输出,设定6道工序只有一位输出
6、,第七道工序三位有输出。,三、实验程序流程图,主程序:,开始,关输出,中断服务子程序:,四、实验原理图,五、实验步骤,七、实验步骤 P3.4连K1,P3.3连K2,P1.0P1.6分别连到L1L7,P1.7连SIN(电子音响输入端)。 K1开关拨在上面,K2拨在上面。 用连续方式从起始地址0580H开始运行程序(输入0580后按EXEC键),此时应在等待开工状态。 K1拨至下面(显低电平),各道工序应正常运行。 K2拨至下面(低电平),应有声音报警(人为设置故障)。 K2拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。 思考:修改程序,使每道工序中有多位输出。,ORG 00
7、00HLJMP STORG 0013HLJMP BREAKORG 0030H ST: MOV SP,#60H MOV P1,#0 L1:JB P3.4,L1 SETB EASETB EX1 SETB PX1,LP:MOV P1,#1LCALL DL10MSMOV P1,#2LCALL DL10MS MOV P1,#4LCALL DL10MS MOV P1,#8LCALL DL10MS MOV P1,#10HLCALL DL10MS MOV P1,#20HLCALL DL10MS MOV P1,#07HLCALL DL10MS LJMP L2,六、实验程序,BREAK: MOV PSW,#08H
8、 LL: MOV P1,#0MOV R3,#10 KK: SETB P1.7LCALL DL10MSCLR P1.7LCALL DL10MSDJNZ R3,KKLCALL DL10MSJNB P3.3, LLMOV PSW,#00HRETI,DL10MS:MOV R6,#10 DL1MS:MOV R7,#250 LP:NOPNOP DJNZ R7,LP DJNZ R6,DL1MS RET END,实验四、A/D 转换实验,一、实验目的 二、实验内容 三、实验程序流程图 四、实验原理图 五、实验步骤 六、实验程序,一、实验目的,1.掌握A/ D转换与单片机的接口方法。2.了解A/ D芯片0809
9、转换性能及编程方法。3.通过实验了解单片机如何进行数据采集。,二、实验内容,利用实验仪上的0809做A/ D转换实验,实验仪上的W1电位器提供模拟量输入。编制程序,将模拟量转换成数字量,通过二位七段数码管显示器显示。,三、实验程序流程图,四、实验原理图,开 始,五、实验步骤,1、把A/D区0809的0通道IN0用插针线接至W1的中心抽头V01插孔(05V)。 2、0809的CLK插孔与分频输出端T4相连。 3. 将W2的输入VIN接+12V插孔,+12V插孔再连到外置电源的+12上(电源内置时,该线已连好)。调节W2,使VREF端为+5V。 4. 将A/D区的VREF连到W2的输出VREF端。
10、(如果精度要求不高的话,A/D区的VREF直接连到VCC插孔,这样步骤可以去掉)。 5、EXIC1上插上74LS02芯片,将有关线路按图连好。,6、将A/D区D0D7用排线与BUS2区XD0XD7相连。 7、BUS3区P3.0插孔连到数码管显示区DATA插孔。 8、BUS3区P3.1插孔连到数码管显示区CLK插孔。 9、单脉冲发生/SP插孔连到数码管显示区CLR插孔。 10、 按实验系统上的F2键,仿真实验仪进入仿真状态(内程序,外数据),显示器显示“P”。 11、 以连续方式从起始地址06D0运行程序,在数码管上显示当前采集的电压值转换后的数字量,调节W1数码管显示将随着电压变化而相应变化,
11、典型值为0V00H,2.5V80H,5VFFH。,ORG 0000H ST:CLR A MOV SP,#60H MOV DPTR,#9000H MOVX DPTR,A MOV R7,#0FFH MOV SBUF,A MOV SBUF,A MOVX A,DPTR DISP:MOV R0,A ANL A,#0FH LP:MOV DPTR,#TAB,MOVC A,A+DPTR MOV SBUF,A MOV R7,#10 DJNZ R7,$ MOV A,R0 SWAP A ANL A,#0FH MOVC A,A+DPTR MOV SBUF,A MOV R7,#10 DJNZ R7,$ LCALL DELAY LJMP ST,六、实验程序,TAB: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0HDB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,BEH DELAY:MOV R6,#255 DL:MOV R7,#255 DL1:DJNZ R7,DL1DJNZ R6,DLRET END,