单片机原理及其嵌入式应用实验.ppt
《单片机原理及其嵌入式应用实验.ppt》由会员分享,可在线阅读,更多相关《单片机原理及其嵌入式应用实验.ppt(291页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机原理及其嵌入式应用实验 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望基本实验基本实验程序框架程序框架开关量输入输出开关量输入输出(IO)实验实验串行通信及串行通信及AD转换实验转换实验键盘编程实验键盘编程实验液晶显示实验液晶显示实验数码管显示实验数码管显示实验FLASH编程实验编程实验定时器溢出中断实验定时器溢出中断实验定时器输入中断捕捉定时器输入中断捕捉实验实验2程序框架程序框架实验目的实验目的实验器材实验器材硬件接线硬件接线软件功能软件功能程序清单程序
2、清单备注说明备注说明3实验目的实验目的:了解程序基本框架了解程序基本框架4实验器材实验器材:1.SD-1型在线编程实验仪型在线编程实验仪2.导线若干导线若干5硬件接线硬件接线:VCCPTC3PTA7PTA6PTA5PTA4PTA3PTA2PTA1PTA0PTC0PTC1PTC2MOTOROLA GP32 MCU PTC4PTB7PTB6PTB5PTB4PTB3PTB2PTB1PTB06软件功能软件功能:PTAPTA口的模拟量输出,控制指示灯口的模拟量输出,控制指示灯程序执行指示灯闪烁程序执行指示灯闪烁7程序清单:程序清单:文件说明文件说明口地址定义口地址定义数据区定义数据区定义主程序主程序系统
3、初始化及中断矢量系统初始化及中断矢量延时子程序延时子程序8*-*-文件说明文件说明-*文件名文件名:PrgFrame.ASM PrgFrame.ASM *硬件连接硬件连接:PTA.1PTA.1接指示灯接指示灯 *程序描述程序描述:指示灯指示灯PTA.1PTA.1闪烁闪烁 *目的目的:第一个第一个Motorola MCUMotorola MCU程序框架程序框架 *说明说明:提供提供Motorola MCUMotorola MCU的编程框架,供教学入门使用的编程框架,供教学入门使用 *-*-9*-*-口地址定义口地址定义-PTA EQU$0000 PTA EQU$0000 ;A;A口数据寄存器口数
4、据寄存器DDRA EQU$0004 DDRA EQU$0004 ;A;A口数据方向寄存器口数据方向寄存器10RAMstartAddr equ$0040 ;RAMRAMstartAddr equ$0040 ;RAM的起始地址(因芯片不同可以更改)的起始地址(因芯片不同可以更改)FlashStartAddr equ$8000 ;FlashStartAddr equ$8000 ;程序开始地址(因芯片不同可以更改)程序开始地址(因芯片不同可以更改)*数据区定义(变量名定义)数据区定义(变量名定义)org RAMstartAddr ;RAMorg RAMstartAddr ;RAM的起始地址的起始地址N
5、1 rmb 1 ;N1 rmb 1 ;变量变量N1,N1,缓冲使用缓冲使用11*主程序主程序 org FlashStartAddr ;org FlashStartAddr ;程序起始地址程序起始地址MainInit:;MainInit:;复位后程序从此开始执行复位后程序从此开始执行 ;系统初始化系统初始化 SEI ;SEI ;禁止所有中断禁止所有中断 LDHX#$023F ;LDHX#$023F ;堆栈初始化,放入堆栈初始化,放入GP32GP32的的RAMRAM最高端最高端 TXSTXS JSR Init0 ;JSR Init0 ;调系统初始化子程序调系统初始化子程序Init0Init0,初始
6、学习时跳过此处初始学习时跳过此处 ;I/OI/O初始化初始化 BSET 1,DDRA ;BSET 1,DDRA ;设置设置PTA.1PTA.1为输出为输出 BSET 1,PTA ;BSET 1,PTA ;初始时,初始时,PTA.1PTA.1指示灯指示灯 暗暗 MainLoop:;MainLoop:;程序总循环入口程序总循环入口 BCLR 1,PTA ;PTA.1BCLR 1,PTA ;PTA.1指示灯指示灯“亮亮”MOV#$2,N1 ;MOV#$2,N1 ;延时子程序延时子程序DelaySubDelaySub的时间长度入口的时间长度入口 JSR DelaySub ;JSR DelaySub ;
7、调用延时子程序调用延时子程序 BSET 1,PTA ;BSET 1,PTA ;初始时,初始时,PTA.1PTA.1指示灯指示灯 暗暗 MOV#$4,N1 ;MOV#$4,N1 ;延时子程序延时子程序DelaySubDelaySub的时间长度入口的时间长度入口 JSR DelaySub ;JSR DelaySub ;调用延时子程序调用延时子程序 ;-;-JMP MainLoop ;JMP MainLoop ;转总循环入口处转总循环入口处12Init0:;Init0:;系统初始化系统初始化Init0Init0子程序子程序 LDA#%00000001 ;LDA#%00000001 ;初始化初始化CO
8、NFIG2CONFIG2 STA$001E STA$001E LDA#%00111101 ;LDA#%00111101 ;初始化初始化CONFIG1CONFIG1 STA$001F STA$001F CLR$0036 ;CLR$0036 ;初始化初始化PTCLPTCL MOV#$01,$0036 MOV#$01,$0036 MOV#$01,$0038 MOV#$01,$0038 MOV#$2C,$0039 MOV#$2C,$0039 MOV#$80,$003A MOV#$80,$003A BSET 5,$0036 BSET 5,$0036 BSET 7,$0037 BSET 7,$0037 B
9、SET 4,$0036 BSET 4,$0036 RTS RTS*-*-中断矢量中断矢量-ORG$FFFE ORG$FFFE ;复位矢量复位矢量 DW MainInitDW MainInit13延时子程序DelaySub:;延时0.1秒 PSHH ;保据寄存器HX PSHX DelaySub1:LDHX#$FFFF DelaySub2:PSHA ;保护寄存器A LDA#$FFDelaySub3:DBNZA DelaySub3 PULA DBNZX DelaySub2 DBNZA DelaySub1 PULX PULH RTS14开关量输入输出开关量输入输出(IO)实验实验实验实验目的目的实验器
10、材实验器材硬件接线硬件接线程序功能程序功能程序清单程序清单备注说明备注说明A.3-0A.7-4-A.3-0 COMA COMA STA PTA STA PTA LDA PTB LDA PTB ;取开关取开关PTB0PTB0状态状态,0-,0-闭合闭合 AND#%00000001 AND#%00000001 ;剩下剩下PTB0PTB0位位 STA TmpVar STA TmpVar ;放入变量放入变量TmpVarTmpVar25 NOPNOP LDA PTC LDA PTC ;取开关取开关PTC0PTC0状态状态,0-,0-闭合闭合 AND#%00000001 AND#%00000001 ;剩下
11、剩下PTC0PTC0位位 NOPNOP ADD TmpVar ADD TmpVar ;经过此运算经过此运算 若若A=0,A=0,两个均闭合两个均闭合 ;若若=1,=1,有一个闭合有一个闭合;=2,;=2,均未闭合均未闭合 CBEQA#$0,Light0 CBEQA#$0,Light0 ;比较比较,相等转移相等转移,A=0A=0转向转向Light0Light026 NOPNOP CBEQA#$1,Light1 CBEQA#$1,Light1 ;A=1;A=1转转Light1Light1 NOP NOP ;A=2,;A=2,两排均不亮两排均不亮 LDA#$FF LDA#$FF ;两排灯均不亮两排灯
12、均不亮 1-1-不亮不亮 STA PTBSTA PTB STA PTC STA PTC BRA IO_End BRA IO_End ;转转IO_END,IO_END,延时延时27Light0:Light0:LDA#$00 LDA#$00 ;两排灯均亮两排灯均亮 0-0-亮亮 STA PTBSTA PTB STA PTC STA PTC BRA IO_End BRA IO_End ;无条件转无条件转IO_ENDIO_ENDLight1:Light1:LDA Light_BC LDA Light_BC ;两排灯之一亮两排灯之一亮 0-0-亮亮 STA PTB STA PTB ;驱动驱动B B口灯口
13、灯 NEGA NEGA ;求补命令求补命令 STA PTC STA PTC ;驱动驱动B B口灯口灯 STA Light_BC STA Light_BC ;保存状态保存状态28IO_End:IO_End:LDA#$FE LDA#$FE ;延时延时Delay1:Delay1:LDX#$FC LDX#$FCDelay2:Delay2:NOP NOP NOP NOP NOP NOP DBNZX Delay2 DBNZX Delay2 DBNZA Delay1 DBNZA Delay1 BRA Start BRA Start ;无条件转开始处无条件转开始处*-*-29*-*-子程序子程序-*-*Ini
14、t0:Init0:;系统初始化系统初始化Init0Init0子程序子程序 LDA#%00000001 LDA#%00000001 ;初始化初始化CONFIG2CONFIG2 STA$001E STA$001E LDA#%00111101 LDA#%00111101 ;初始化初始化CONFIG1CONFIG1 STA$001F STA$001F CLR$0036 CLR$0036 ;初始化初始化PTCLPTCL MOV#$01,$0036 MOV#$01,$0036 MOV#$01,$0038 MOV#$01,$0038 MOV#$2C,$0039 MOV#$2C,$0039 MOV#$80,$
15、003A MOV#$80,$003A 30 BSET 5,$0036BSET 5,$0036 BSET 7,$0037 BSET 7,$0037 BSET 4,$0036 BSET 4,$0036 RTS RTS*-*-复位矢量复位矢量-ORG$FFFE ORG$FFFE ;复位矢量复位矢量 DW MainInitDW MainInit31备注说明:仅作为基本教学例程仅作为基本教学例程32串行通信及串行通信及ADAD转换实验转换实验实验目的实验目的实验器材实验器材硬件接线硬件接线VBVB界面界面软件功能软件功能程序清单程序清单备注说明备注说明33实验目的实验目的:A/DA/D转换,转换,单片机
16、异步串行通信单片机异步串行通信 34实验器材实验器材:1.SD-1型在线编程实验仪型在线编程实验仪2.导线若干导线若干35硬件接线硬件接线:VCCPTC3PTA7PTA6PTA5PTA4PTA3PTA2PTA1PTA0PTC0PTC1PTC2MOTOROLA GP32 MCU PTC4PTB7PTB6PTB5PTB4PTB3PTB2PTB1PTB0VCC36VB界面:界面:37软件功能软件功能:由由PORTBPORTB口的模拟量输入,通过单片机的口的模拟量输入,通过单片机的A/DA/D转换器采集转换器采集8 8路数据,并放在路数据,并放在ADBUFADBUF开开始的地址中。始的地址中。再在再在
17、INBUFINBUF中放开关量。中放开关量。发发8686给给PCPC机作为握手信号,进行通信测机作为握手信号,进行通信测试,试,PCPC机判断后确认,发机判断后确认,发8686作为确认信作为确认信号,单片机收到号,单片机收到8686后,把模拟量后,把模拟量0-70-7和开和开关量送关量送PCPC机显示。机显示。38程序清单:程序清单:文件说明文件说明口地址定义口地址定义SCI寄存器寄存器A/D寄存器寄存器数据区定义数据区定义主程序主程序A/D转换转换串行通信输出串行通信输出串行通信输入串行通信输入从从PC机接收数据,机接收数据,并存储后送并存储后送PTA输输出出把在把在INBUF和和ADBUF
18、F的数据送的数据送PC机输出机输出中断矢量中断矢量39*-*-文件说明文件说明-*-*文件名:文件名:sci.assci.as*硬件连接:硬件连接:PORTAPORTA口输出它的口输出它的PTA7-0PTA7-0接接OUTOUT的的7-07-0号号*指示灯(指示灯(A0A0作为运行指示不受其它数据控制)作为运行指示不受其它数据控制)PORTBPORTB作为作为ADAD输入连接,输入连接,*PORTBPORTB口为模拟量输入口口为模拟量输入口,PORTCPORTC的的C0-4C0-4接接ININ的的5 5个拨位开关个拨位开关0-40-4作为开关作为开关*输入串行口与微机串行口相接(输入串行口与微
19、机串行口相接(96009600,N N,8 8,1 1)*程序描述:程序描述:1.1.由由PORTBPORTB口的模拟量输入,通过单片机的口的模拟量输入,通过单片机的A/DA/D转换器采集转换器采集8 8*路数据,并放在路数据,并放在ADBUFADBUF开始的地址中开始的地址中*2.2.再在再在INBUFINBUF中放开关量中放开关量*3.3.发发8686给给PCPC机作为握手信号,进行通信测试机作为握手信号,进行通信测试,PCPC机判断后确机判断后确*认认,发发8686作为确认信号,单片机收到作为确认信号,单片机收到8686后后,把模拟量把模拟量 0-7 0-7和和*开关量送开关量送PCPC
20、机显示机显示*目的:目的:A/DA/D转换,单片机异步串行通信转换,单片机异步串行通信 *-*-*40*-*-口地址定义口地址定义-PTA EQU$0000 PTA EQU$0000 ;A;A口数据寄存器口数据寄存器PTB EQU$0001 PTB EQU$0001 ;B;B口数据寄存器口数据寄存器PTC EQU$0002 PTC EQU$0002 ;C;C口数据寄存器口数据寄存器PTD EQU$0003 PTD EQU$0003 ;D;D口数据寄存器口数据寄存器DDRA EQU$0004 DDRA EQU$0004 ;A;A口数据方向寄存器口数据方向寄存器DDRB EQU$0005 DDRB
21、 EQU$0005 ;B;B口数据方向寄存器口数据方向寄存器DDRC EQU$0006 DDRC EQU$0006 ;C;C口数据方向寄存器口数据方向寄存器DDRD EQU$0007 DDRD EQU$0007 ;D;D口数据方向寄存器口数据方向寄存器DDRE EQU$0008 DDRE EQU$0008 ;E;E口数据寄存器口数据寄存器41*-*-SCISCI寄存器寄存器-SCS1 EQU$0016 SCS1 EQU$0016 ;SCI;SCI状态寄存器状态寄存器1 1B-SCTE EQU 7 B-SCTE EQU 7 ;发送缓冲区空标志位发送缓冲区空标志位B-TC EQU 6 B-TC E
22、QU 6 ;发送完成标志位发送完成标志位B-SCRF EQU 5 B-SCRF EQU 5 ;接收器满标志位接收器满标志位SCDR EQU$0018 SCDR EQU$0018 ;SCI;SCI数据寄存器数据寄存器*-*-A/DA/D寄存器寄存器-ADSCR EQU$003C ADSCR EQU$003C ;A/D;A/D转换状态和控制寄存器转换状态和控制寄存器B-COCO EQU 7 B-COCO EQU 7 ;转换完成标志位转换完成标志位ADR EQU$003D ADR EQU$003D ;A/D;A/D转换数据寄存器转换数据寄存器ADCLK EQU$003E ADCLK EQU$003E
23、 ;A/D;A/D转换输入时钟寄存器转换输入时钟寄存器RAMstartAddr equ$0040RAMstartAddr equ$0040;RAM;RAM的起始地址(因芯片不同可以更改)的起始地址(因芯片不同可以更改)FlashStartAddr equ$8000FlashStartAddr equ$8000;程序开始地址(因芯片不同可以更改)程序开始地址(因芯片不同可以更改)42*-*-数据区定义(变量定义)数据区定义(变量定义)-ORG RAMstartAddrORG RAMstartAddr ;RAM ;RAM的起始地址的起始地址INBUF RMB 1 INBUF RMB 1 ;1;1字
24、节存放字节存放5 5位开关量位开关量ADBUF RMB 8 ADBUF RMB 8 ;8;8字节存放字节存放8 8路路A/DA/D转换结果转换结果ONOFF RMB 1 ONOFF RMB 1 ;1;1字节存放从字节存放从PCPC的数据的数据 TMPVAR RMB 1 TMPVAR RMB 1 ;暂存使用暂存使用43*-*-主程序主程序-ORG ORG FlashStartAddr ;FlashStartAddr ;程序起始地址程序起始地址MainInit:MainInit:NOP NOP LDA#$3E LDA#$3E ;A/D;A/D初始化初始化2 2分频、使用内部总线时钟分频、使用内部总
25、线时钟 STA ADCLKSTA ADCLK LDA#$FF LDA#$FF ;定义定义PORTAPORTA输出输出 STA DDRASTA DDRA LDA#$00 LDA#$00 STA PTA STA PTA STA ONOFF STA ONOFF ;ONOFF=0;ONOFF=0 LDA#$00 LDA#$00 ;定义定义PORTBPORTB,PORTCPORTC作为输入作为输入 STA DDRBSTA DDRB STA DDRC STA DDRC44*-*-A/DA/D转换转换-Main:Main:NOP NOP ;循环获得循环获得8 8路路ADAD值值 LDHX#$0 LDHX#$
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 及其 嵌入式 应用 实验
限制150内