最新单片机原理及其嵌入式应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1单片机原理及其嵌入式应用实验•基本实验•综合实例2基本实验•程序框架•开关量输入输出(IO)实验•串行通信及AD转换实验•键盘编程实验•液晶显示实验•数码管显示实验•FLASH编程实验•定时器溢出中断实验•定时器输入中断捕捉实验3程序框架•实验目的•实验器材•硬件接线•软件功能•程序清单•备注说明4实验目的:了解程序基本框架5实验器材:1.SD-1型在线编程实验仪2.导线若干6硬件接线:VCCPTC3PTA7PTA6PTA5PTA4PTA3PTA2PTA1PTA0PTC0PTC1PTC2MOTOROLAGP32MCUPTC4PTB7PTB6PTB5PTB4PTB3PTB2PTB1PTB07软件功能:•PTA口的模拟量输出,控制指示灯•程序执行指示灯闪烁8程序清单:•文件说明•口地址定义•数据区定义•主程序•系统初始化及中断矢量•延时子程序9*---------文件说明------------------------------------*文件名:PrgFrame.ASM*硬件连接:PTA.1接指示灯*程序描述:指示灯PTA.1闪烁*目的:第一个MotorolaMCU程序框架*说明:提供MotorolaMCU的编程框架,供教学入门使用*-----------------------------------------------------10*----口地址定义----------------------------PTAEQU$0000;A口数据寄存器DDRAEQU$0004;A口数据方向寄存器11RAMstartAddrequ$0040;RAM的起始地址(因芯片不同可以更改)FlashStartAddrequ$8000;程序开始地址(因芯片不同可以更改)*数据区定义(变量名定义)——————————————————orgRAMstartAddr;RAM的起始地址N1rmb1;变量N1,缓冲使用12*主程序——————————————————————————————orgFlashStartAddr;程序起始地址MainInit:;复位后程序从此开始执行;系统初始化SEI;禁止所有中断LDHX#$023F;堆栈初始化,放入GP32的RAM最高端TXSJSRInit0;调系统初始化子程序Init0,初始学习时跳过此处;I/O初始化BSET1,DDRA;设置PTA.1为输出BSET1,PTA;初始时,PTA.1指示灯暗MainLoop:;程序总循环入口BCLR1,PTA;PTA.1指示灯“亮”MOV#$2,N1;延时子程序DelaySub的时间长度入口JSRDelaySub;调用延时子程序BSET1,PTA;初始时,PTA.1指示灯暗MOV#$4,N1;延时子程序DelaySub的时间长度入口JSRDelaySub;调用延时子程序;-------------------------------------------------------JMPMainLoop;转总循环入口处13Init0:;系统初始化Init0子程序LDA#%00000001;初始化CONFIG2STA$001ELDA#%00111101;初始化CONFIG1STA$001FCLR$0036;初始化PTCLMOV#$01,$0036MOV#$01,$0038MOV#$2C,$0039MOV#$80,$003ABSET5,$0036BSET7,$0037BSET4,$0036RTS*----中断矢量---------------------------------ORG$FFFE;复位矢量DWMainInit14延时子程序DelaySub:;延时0.1秒PSHH;保据寄存器HXPSHXDelaySub1:LDHX#$FFFFDelaySub2:PSHA;保护寄存器ALDA#$FFDelaySub3:DBNZADelaySub3PULADBNZXDelaySub2DBNZADelaySub1PULXPULHRTS15开关量输入输出(IO)实验•实验目的•实验器材•硬件接线•程序功能•程序清单•备注说明16实验目的:掌握I/O口的基本使用方法17实验器材:1.SD-1型在线编程实验仪2.导线若干18vccvccPTC0PTA7PTA6PTA5PTA4PTA3PTA2PTA1PTA0vccPTB1PTC1PTB0MOTOROLAGP32MCU黄线为学生接线硬件接线:19程序功能:•开关PTA7-4分别控制着指示灯PTA3-0亮暗•开关PTB0\PTC0其中之一闭合,指示灯PTB7-1与PTC1交替暗亮;若两个均未闭合,则指示灯PTB1与PTC1均不亮;若两个均闭合,则两个指示灯均亮.20程序清单:•程序说明•口地址定义•变量定义•主程序•初始化子程序•复位矢量21*------程序说明--------------------------------**文件名:IOEXMA.ASM*硬件连接:PTA7-4接开关,PTA3-0接指示灯*PTB1接指示灯,PTB0接开关*PTC1接指示灯,PTC0接开关*程序描述:①开关PTA7-4分别控制着指示灯PTA3-0暗*②开关PTB0、PCT0其中之一闭合指示PTB7-1*与PTC1交替暗亮,若两个均未闭合则指示灯*PTB1与PTC1均不亮,若两个均闭合则两排*指示灯均亮。*目的:I/O口的基本使用方法*说明:仅作为基本教学例程*----------------------------------------------*22*-----口地址定义—————————————————DDRAequ$0004;A口数据方向寄存器PTAequ$0000;A口数据寄存器PTAPUEequ$000D;A口上拉电阻允许寄存器DDRBequ$0005;B口数据方向寄存器PTBequ$0001;B口数据寄存器DDRCequ$0006;C口数据方向寄存器PTCequ$0002;C口数据寄存器RAMstartAddrequ$0040;RAM的起始地址(因芯片不同可以更改)FlashStartAddrequ$8000;程序开始地址(因芯片不同可以更改)*-----数据区定义(变量名定义)——————————orgRAMstartAddrTmpVarrmb1;变量TmpVar,缓冲使用Light_BCrmb1;BC口灯的状态23*------主程序————————————————orgFlashStartAddr;程序起始地址MainInit:NOP;初始化——————SEI;禁止所有中断LDHX#$023F;堆栈初始化,;放GP32的RAM最高端TXSJSRInit0;调系统初始化子程序Init0,;初始学习时跳过此处24LDA#%00001111;定义A口7-4为输入,3-0为输出STADDRALDA#%11110000;定义A口7-4有上拉电阻STAPTAPUELDA#%11111110;定义B口7-1为输出,0为输入STADDRBSTADDRC;定义C口7-1为输出,0为输入MOV#$FF,Light_BC;BC口灯的状态赋初值25Start:;程序总循环入口——NOPLDAPTA;读取A口状态NSA;A口7-4输入控制A口3-0输出;刚好为A.7-4-A.3-0COMASTAPTALDAPTB;取开关PTB0状态,0-闭合AND#%00000001;剩下PTB0位STATmpVar;放入变量TmpVar26NOPLDAPTC;取开关PTC0状态,0-闭合AND#%00000001;剩下PTC0位NOPADDTmpVar;经过此运算若A=0,两个均闭合;若=1,有一个闭合;=2,均未闭合CBEQA#$0,Light0;比较,相等转移,A=0转向Light027NOPCBEQA#$1,Light1;A=1转Light1NOP;A=2,两排均不亮LDA#$FF;两排灯均不亮1-不亮STAPTBSTAPTCBRAIO_End;转IO_END,延时28Light0:LDA#$00;两排灯均亮0-亮STAPTBSTAPTCBRAIO_End;无条件转IO_ENDLight1:LDALight_BC;两排灯之一亮0-亮STAPTB;驱动B口灯NEGA;求补命令STAPTC;驱动B口灯STALight_BC;保存状态29IO_End:LDA#$FE;延时Delay1:LDX#$FCDelay2:NOPNOPNOPDBNZXDelay2DBNZADelay1BRAStart;无条件转开始处*-------------------------------------------30*------子程序--------------------------*Init0:;系统初始化Init0子程序LDA#%00000001;初始化CONFIG2STA$001ELDA#%00111101;初始化CONFIG1STA$001FCLR$0036;初始化PTCLMOV#$01,$0036MOV#$01,$0038MOV#$2C,$0039MOV#$80,$003A31BSET5,$0036BSET7,$0037BSET4,$0036RTS*--------复位矢量----------------------------ORG$FFFE;复位矢量DWMainInit32备注说明:•仅作为基本教学例程33串行通信及AD转换实验•实验目的•实验器材•硬件接线•VB界面•软件功能•程序清单•备注说明34实验目的:A/D转换,单片机异步串行通信35实验器材:1.SD-1型在线编程实验仪2.导线若干36硬件接线:VCCPTC3PTA7PTA6PTA5PTA4PTA3PTA2PTA1PTA0PTC0PTC1PTC2MOTOROLAGP32MCUPTC4PTB7PTB6PTB5PTB4PTB3PTB2PTB1PTB0VCC37VB界面:38软件功能:•由PORTB口的模拟量输入,通过单片机的A/D转换器采集8路数据,并放在ADBUF开始的地址中。•再在INBUF中放开关量。•发86给PC机作为握手信号,进行通信测试,PC机判断后确认,发86作为确认信号,单片机收到86后,把模拟量0-7和开关量送PC机显示。39程序清单:•文件说明•口地址定义•SCI寄存器•A/D寄存器•数据区定义•主程序•A/D转换•串行通信输出•串行通信输入•从PC机接收数据,并存储后送PTA输出•把在INBUF和ADBUFF的数据送PC机输出•中断矢量40*---------文件说明-------------------------------------------**文件名:sci.as*硬件连接:PORTA口输出它的PTA7-0接OUT的7-0号*指示灯(A0作为运行指示不受其它数据控制)PORTB作为AD输入连接,*PORTB口为模拟量输入口,PORTC的C0-4接IN的5个拨位开关0-4作为开关*输入串行口与微机串行口相接(9600,N,8,1)*程序描述:1.由PORTB口的模拟量输入,通过单片机的A/D转换器采集8*路数据,并放在ADBUF开始的地址中*2.再在INBUF中放开关量*3.发86给PC机作为握手信号,进行通信测试,PC机判断后确*认,发86作为确认信号,单片机收到86后,把模拟量0-7和*开关量送PC机显示*目的:A/D转换,单片机异步串行通信*------------------------------------------------------------*41*----口地址定义----------------------------PTAEQU$0000;A口数据寄存器PTBEQU$0001;B口数据寄存器PTCEQU$0002;C口数据寄存器PTDEQU$0003;D口数据寄存器DDRAEQU$0004;A口数据方向寄存器DDRBEQU$0005;B口数据方向寄存器DDRCEQU$0006;C口数据方向寄存器DDRDEQU

1 / 291
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功