收藏 分销(赏)

闽南理工学院.ppt

上传人:仙人****88 文档编号:13127472 上传时间:2026-01-23 格式:PPT 页数:80 大小:492.50KB 下载积分:10 金币
下载 相关 举报
闽南理工学院.ppt_第1页
第1页 / 共80页
闽南理工学院.ppt_第2页
第2页 / 共80页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,闽南理工学院,单片机原理及应用,主讲教师:郭贤斌,电工电子实验中心,实验一,P1,口流水灯实验,实验,二,十六进制数显示,实验三,数据区传送子程序和数据排序实验,实验四,码型转换实验,实验五,P1,口使用实验,实验六,中断控制实验,实验七,8255,控制交通灯实验,实验目录,实验一,P1,口流水灯实验,一、实验目的,1,、,熟悉汇编语言编程。,2,、,学习使用单片机,I/O,口,二、实验内容,P1,作为输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。,三、实验电路,1,、,P1,口亮灯实验,四、实验程序,org 0,*,在此处将程序补充完整,并添加注释,*,延时子程序,delay:mov r6,#0a0h,dlp:mov r7,#0,djnz r7,$,djnz r6,dlp,ret,end,五、实验步骤,1,、,P1.0,P1.7,用插针连至,L1,L8,2,、在,PC,联机状态下,点击“”,输入程序,并保存。,3,、编译、连接、装载,用连续或单步运行程序。,4,、运行结果检查:,1,)单步运行时,每走一步,可观察其运行结果,此程序单步运行时会出现问题,发现并解决它。,2,)连续运行状态下,应按“”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后在用相应的命令键观察与检查,90H,的内容。,五、思考题,1,、使用,Keil,编译及调试此程序。,实验,二,十六进制数显示,一、实验目的,掌握汇编语言设计和调试方法,。,二、实验内容,1,、将片内,RAM,的,20H,内容拆开,高位送,60H,,低位送,61H,,用于数码管显示。,三、实验程序,cs8255 equ 0ffffh ;8255,命令控制口,outseg equ 0fffch ;,字形控制口,outbit equ 0fffdh ;,字位,/,键扫控制口,LEDBuf equ 60h ;,显示缓冲,Num equ 70h ;,显示的数据,DelayT equ 75h ;,延迟参数,org 0,Start:,mov sp,#40h,mov Num,#0,mov dptr,#CS8255,mov a,#88h ;,命令字:,A,B,口输出,movx dptr,a ;8255,初始化,;*,;,将程序补充完整,;,将片内,RAM,的,20H,内容拆开,高位送,60H,,低位送,61H,;*,Dis:CALL DisplayLED,sjmp Dis,Delay:;,延时子程序,mov r7,#0,DelayLoop:,djnz r7,DelayLoop,djnz r6,DelayLoop,ret,DisplayLED:,mov r0,#LEDBuf,mov r1,#2 ;,共,2,个,LED,八段管,mov r2,#10000000b;,从左边开始显示,Loop:,mov dptr,#OUTBIT,clr a,movx dptr,a ;,关所有八段管,mov a,r0,anl a,#0fh,mov dptr,#LEDMap,movc a,a+dptr ;,数字转换成显示码,mov dptr,#OUTSEG,movx dptr,a,mov dptr,#OUTBIT,mov a,r2,movx dptr,a ;,显示一位八段管,mov r6,#01,call Delay,mov a,r2 ;,显示下一位,rr a,mov r2,a,inc r0,djnz r1,Loop,mov dptr,#OUTBIT,clr a,movx dptr,a ;,关所有八段管,ret,LedMap:;,八段管显示码,db 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h,db 080h,090h,088h,083h,0c6h,0a1h,086h,08eh,end,四、实验步骤,1,、在,PC,联机状态下,点击“”,输入程序,并保存。,2,、编译、连接、装载,用连续或单步运行程序。,3,、运行结果检查,:,五、思考题,1,、如何用断点方式调试本程序,2,、使用,Keil,编译及调试此程序。,实验三,数据区传送子程序和数据排序实验,一、实验目的,熟悉,MCS-51,指令系统,掌握,RAM,中的数据操作,。,二、,实验内容,1,、将片内,RAM,的,20H,起始的,16,个单元传送到,30H,地址空间。,2,、编写并调试一个排序子程序,其功能为用起泡法将内容,RAM,中几个单字节无符号的正整数,按从小到大的次序重新排列。,三、程序流程图,1,、数据区传送流程图,2,、数据排序流程图,四、实验程序,1,、数据区传送子程序,0300h,mov r0,mov r1,mov r7,Loop:mov a,r0,mov,a,djnz r7,Loop,sjmp$,end,2,、数据排序实验,0300h,start:mov r0,_,mov r1,_,mov r7,_,clr 00h,ql2:mov a,r0,mov 22h,_,clr c,mov 22h,r1,_,setb c,ql3:jc ql1,00h,_,_,ql1:_,_,djnz r7,ql2,jb 00h,start,sjmp$,end,五、实验步骤,(一)数据区传送子程序,1,、在,PC,联机状态下,点击“”,输入程序,并保存。,2,、编译、连接、装载,用连续或单步运行程序。,3,、运行结果检查:,1,)单步运行时,每走一步,可观察其运行结果。,2,)连续运行状态下,应按“”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后在用相应的命令键观察与检查,30H,开始的,16,个单元的内容与,20H,开始的,16,个单元的内容是否完全相同。,(二)数据排序程序,1,、,2,步同上,在,MCS-51,的,RAM 50,5AH,中放入不等的数据,运行本实验程序后检查,50,5AH,中内容是否按从小到大排列。,六、思考题,1,、修改程序把,50,5AH,中内容按从大到小 排列。,实验四,码型转换实验,一、实验目的,1,、掌握简单的数值转换算法,基本了解数值的各种表达方法。,2,、了解,BCD,值和,ASCII,值的区别;了解如何将,BCD,值转换成,ASCII,值;了解如何查表进行数值转换及快速计算,二、实验内容,1,、将给定的一个二进制数,转换成二进制编码的十进制(,BCD,)码。将,A,的内容拆为三个,BCD,码,并存入,CPU,内部存储区,60H,开始的三个单元,并显示。,2,、将,ACC,的内容拆为二个,ASCII,码,并存入,20H,开始的二个单元,三、程序流程图,1,、二进制码转换到,BCD,码,四、实验程序,1,、二进制码转换到,BCD,码,将,ACC,拆为三个,BCD,码,并存入,cup,内部存储区,60H,开始的三个单元,cs8255 equ 0ffffh ;8255,命令控制口,outseg equ 0fffch ;,字形控制口,outbit equ 0fffdh ;,字位,/,键扫控制口,Result equ 60h,LEDBuf equ 60h ;,显示缓冲,Num equ 70h ;,显示的数据,DelayT equ 75h ;,延迟参数,org 0,Start:,;mov sp,#40h,mov Num,#0,mov dptr,#CS8255,mov a,#88h ;,命令字:,A,B,口输出,movx dptr,a ;8255,初始化,;*,mov a,#123 ;,置初值,call BinToBCD,Dis:CALL DisplayLED,sjmp Dis,BinToBCD:,_,_,mov Result,a ;,除以,100,,得百位数,_,_,_,mov Result+1,a ;,余数除以,10,,得十位数,mov Result+2,b ;,余数为个位数,ret,Delay:;,延时子程序,mov r7,#0,DelayLoop:,djnz r7,DelayLoop,djnz r6,DelayLoop,ret,DisplayLED:,mov r0,#LEDBuf,mov r1,#3 ;,共,3,个,LED,八段管,mov r2,#10000000b;,从左边开始显示,Loop:,mov dptr,#OUTBIT,clr a,movx dptr,a ;,关所有八段管,mov a,r0,anl a,#0fh,mov dptr,#LEDMap,movc a,a+dptr ;,数字转换成显示码,mov dptr,#OUTSEG,movx dptr,a,mov dptr,#OUTBIT,mov a,r2,movx dptr,a ;,显示一位八段管,mov r6,#01,call Delay,mov a,r2 ;,显示下一位,rr a,mov r2,a,inc r0,djnz r1,Loop,mov dptr,#OUTBIT,clr a,movx dptr,a ;,关所有八段管,ret,LedMap:;,八段管显示码,db 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h,db 080h,090h,088h,083h,0c6h,0a1h,086h,08eh,end,2,、二进制转换成,ASCII,码,Result equ 20h,org 0,Start:mov a,#1ah,call BinToHex,sjmp$,BinToHex:,mov dptr,_,_,swap a,anl a,_,_,mov Result,a,mov a,b,anl a,#0fh,_,mov Result+1,_,ret,ASCIITab:;,定义数字对应的,ASCII,表,db 0123456789ABCDEF,end,五、实验步骤,(一)二进制转换成,BCD,码,1,、在,PC,联机状态下,点击“”,输入程序,并保存。,2,、编译、连接、装载,用连续或单步运行程序。,3,、运行结果检查:,(二)二进制转换成,ASCII,码,1,、在,PC,联机状态下,点击“”,输入程序,并保存。,2,、编译、连接、装载,用连续或单步运行程序。,3,、运行结果检查:,1,)单步运行时,每走一步,可观察其运行结果。,2,)连续运行状态下,应按“”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后在用相应的命令键观察与检查,20H,开始的二个片内,RAM,单元的内容。,六、思考题,1,、如何将,BCD,转换成二进制码?,实验五,P1,口使用实验,一、实验目的,1,)学习,P1,口的使用方法;,2,)学习汇编语言编程方法与调试技巧。,二、实验内容,1,),P1.0,置高电平时、,P1.1,置低电平时,右转弯灯闪亮;,P1.1,置高电平、,P1.0,置低电平时左转弯灯闪亮;,P1.0,、,P1.1,同时置高置低时,转弯灯均不闪亮。,三、程序流程图,1,、,P1,口转弯灯实验,四、实验电路,1,、,P1,口转弯灯实验,五、实验程序,2,、,P1,口转弯灯实验,org 0,px00:mov p1,#0ffh ;,初始化,px03:mov a,p1,mov b,a,anl a,#03h,cjne a,#01h,px01,jb 00h,px04,clr p1.4,p1.5,setb p1.6,p1.7,mov r2,#20h,lcall delay ;,延时,setb 00h,ljmp px03 ;,继续查状态,px04:setb p1.4,setb p1.5,p1.6,p1.7,mov r2,#20h,lcall delay ;,延时,clr 00h,ajmp px03 ;,继续查状态,px01:cjne a,#02h,px02,jb 01h,px05,p1.4,setb p1.5,p1.6,clr p1.7,mov r2,#20h ;,延时,lcall delay,setb 01h,ljmp px03 ;,继续查状态,px05:,p1.4,p1.5,p1.6,p1.7,mov r2,#20h,lcall delay ;,延时,clr 01h,ljmp px03 ;,继续查状态,px02:,p1.4,p1.5,setb p1.6,setb p1.7,ljmp px03 ;,继续,延时子程序,delay:push 02h,del2:push 02h,del3:push 02h,del4:djnz r2,del4,pop 02h,djnz r2,del3,pop 02h,djnz r2,del2,pop 02h,djnz r2,delay,ret,end,六、实验步骤,1,、,P1,口亮灯实验,1,),P1.0,P1.7,用插针连至,L1,L8,2,)编译、连接、装载,连续运行程序后,观察发光二极管闪亮移位情况。,2,、,P1,口转弯灯实验,1,),P1.0,接,K1,,,P1.1,接,K2,,,P1.4,P1.7,分别接,L1 L4 L7 L10,。,2,)编译、装载,连续运行本程序,应看到转弯灯正确闪亮。,3,)在用单步方式调试本程序时需修改延时子程序,(,例可把延时程序第一个字节改成返回指令,22H),,以便观察。,七、思考题,1,、改变延时常数,使发光二极管闪亮时间改变。,2,、修改程序,使发光二极管闪亮移位方向改变。,3,、使用,C,语言完成实验要求,2,#include,sbit P1_0=P10;,sbit P1_1=P11;,sbit P1_4=P14,sbit P1_5=P15,sbit P1_6=P16,sbit P1_7=P17,main(),/,其他程序由同学自己补充完整。,/*,提示:使用,if,语句*,/,实验六,中断控制实验,一、实验目的,掌握工业顺序控制程序的简单编程:中断的使用。,二、实验内容,在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律地完成预定的动作,对这类继续生产过程的控制称顺序控制,倒注塑机工艺过程大致按“合模注射延时开模产伸产退”顺序动作,用单片机最易实现。,MCS-51,的,P1.0,P1.6,控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,低电平有效,设定每道工序时间转换为延时,,P3.4,为开工启动开关,高电平启动。,P3.3,为外部故 障输入模拟开关,低电平报警,,P1.7,为报警声音输出,设定,6,道工序只有一位输出,第七道工序三位有输出。,三、程序流程图,四、实验程序,org 0000h,ljmp po10,org 0013h,ljmp intsrv,org 0100h,po10:mov p1,#7fh,orl p3,#00h,jnb p3.4,$,orl ie,#84h,orl ip,#01h,mov psw,#00h ;,初始化,mov sp,#53h,po12:mov p1,;,第一道工序,acall po1b,mov p1,;,第二道工序,acall po1b,mov p1,;,第三道工序,acall po1b,mov p1,;,第四道工序,acall po1b,mov p1,;,第五道工序,acall po1b,mov p1,;,第六道工序,acall po1b,mov p1,;,第七道工序,acall po1b,sjmp po12,intsrv:mov b,r2 ;,保护现场,po17:mov p1,#7fh ;,关输出,mov 20h,#0a0h ;,振荡次数,po18:setb p1.7 ;,振荡,acall po1a ;,延时,clr p1.7 ;,停振,acall po1a ;,延时,djnz 20h,po18 ;,不为,0,转,clr p1.7,acall po1a ;,停振,jnb p3.3,po17 ;,故障消除吗,?,mov r2,b ;,恢复现场,reti,po1b:mov r2,#30h,call delay ;,延时,ret,;,延时子程序,delay:push 02h,del2:push 02h,del3:push 02h,del4:djnz r2,del4,pop 02h,djnz r2,del3,pop 02h,djnz r2,del2,pop 02h,djnz r2,delay,ret,end,五、实验电路,六、实验步骤,P3.4,连,K1,,,P3.3,连,K2,,,P1.0,P1.6,分别连到,L1,L7,,,P1.7,连,SIN,(电子音响输入端)。,K1,、,K2,开关拨在高电平“,H”,位置。,编译、装载,以连续方式运行程序,此时应在等待开工状态。,K1,拨至低电平“,L”,位置,各道工序应正常运行。,K2,拨至低电平“,L”,位置,模拟故障发生,此时应有报警声。,K2,拨至高电平“,H”,位置,即排除故障,程序应从报警的那道工序继续执行。,七、思考题,1,、修改程序,使每道工序中有多位输出。,2,、使用,C,语言编写本次实验程序。,实验七,8255,控制交通灯实验,一、实验目的,进一步了解,8255,芯片的结构及编程方法,学习模拟交通控制的实现方法。,二、实验内容,用,8255,做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。,三、程序流程图,四、实验电路,五、实验程序,cs8255 equ 0ffffh ;8255,命令控制口,porta equ 0fffch,portb equ 0fffdh,org 0,mov sp,#60h,mov dptr,#cs8255,mov a,;,命令字:,pa,pb,输出,;8255,初始化,mov dptr,#porta,mov a,movx dptr,a,mov dptr,#portb,mov a,;,点亮,4,个红灯,mov r2,#25h ;,延时,lcall delay,jod3:mov dptr,#porta,mov a,_,_,mov dptr,#portb,mov a,_,;,东西绿灯亮,南北红灯亮,mov r2,#55h,lcall delay ;,延时,mov r7,#05h ;,闪烁次数,jod1:mov dptr,#porta,mov a,movx dptr,a,mov dptr,#portb,mov a,movx dptr,a ;,东西黄灯亮,南北红灯亮,mov r2,#20h,lcall delay ;,延时,mov dptr,#porta,mov a,#0f7h,movx dptr,a,mov dptr,#portb,mov a,#0dh,movx dptr,a ;,南北红灯亮,mov r2,#20h,lcall delay ;,延时,djnz r7,jod1 ;,闪烁次数未到继续,mov dptr,#porta,mov a,#0aeh,movx dptr,a,mov dptr,#portb,mov a,#0bh,movx dptr,a ;,东西红灯亮,南北绿灯亮,mov r2,#55h,lcall delay ;,延时,mov r7,#05h ;,闪烁次数,jod2:mov dptr,#porta,mov a,movx dptr,a,mov dptr,#portb,mov a,movx dptr,a ;,东西红灯亮,南北黄灯亮,mov r2,#20h,lcall delay ;,延时,mov dptr,#porta,mov a,movx dptr,a,mov dptr,#portb,mov a,movx dptr,a ;,东西红灯亮,mov r2,#20h,lcall delay ;,延时,djnz r7,jod2 ;,闪烁次数未到继续,ljmp jod3 ;,循环,延时子程序,delay:push 02h,del2:push 02h,del3:push 02h,del4:djnz r2,del4,pop 02h,djnz r2,del3,pop 02h,djnz r2,del2,pop 02h,djnz r2,delay,ret,end,六、实验步骤,1,、关闭系统键盘及显示,8255,是系统监控定义的键扫、显示接口,若在实验程序中另作定义必须修改系统定义,关闭系统键盘与显示,其方法是:首先在“,P,。”状态下按,RG/FS,键,F2/NX,键,3,次,在显示器显示“,SS F032”,的状态下,再键入“,F07”,关闭系统键盘显示接口。,2,、实验连线,分别卸去,8255,并行接口单元的“字型口”、“字位口”、“键入口”、“键扫口”共,4,根扁平电缆。用随机所配的,8,芯扁平电缆经转换接单元分别将,8255,的,PA7,PA0,口接,L5,L12,、,PB3,PB0,接,L11,L4,。,3,、,PC,环境,在与,PC,联机状态下,编译、连接、装载,用连续方式运行程序。,4,、观察运行结果,运行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮南北路口的红灯亮,东西路口方向通车。延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,之后重复以上过程。,5,、终止运行,按“暂停图标”,使系统无条件退出该程序的运行返回监控状态。,七、思考题,使用,C,语言完成实验要求。,(,提示:使用指针指向片外数据区来控制,8255),参考实验二中的显示程序完成,8255,控制,LED,管。,The end,thank you!,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服