《单片机原理应用优秀PPT.ppt》由会员分享,可在线阅读,更多相关《单片机原理应用优秀PPT.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机原理应用2023/2/19單片機原理應用1第1页,本讲稿共25页2023/2/19單片機原理應用2IC引腳圖第2页,本讲稿共25页2023/2/19單片機原理應用3 1.1 2700A 特性.存储器配置.8 个中断源OTP ROM:4K*16 位5 个内部中断源:T0,TC0,TC1,SIO,ADCRAM:256*8 位(bank 0 和bank 1)3 个外部中断源:INT0,INT1,INT2.8 层堆栈缓存器.3 个8 位定时/计数器.I/O 引脚配置(共36 pins)T0:基本定时器双向输入/输出:P0,P1,P2,P3,P4,P5 TC0:自动装载定时/计数器/PWM0/Bu
2、zzer 输出唤醒功能:P0,P1 TC1:自动装载定时/计数器/PWM1/Buzzer 输出外部中断:P0.内置看门狗计数器上拉电阻:P0,P1,P2,P3,P4,P5P4 引脚和ADC 输入共享.双时钟系统提供4 种操作模式外部高速时钟:RC,最大10MHz.8 通道12 位AD 转换外部高速时钟:晶体,最大16MHz.普通模式:高/低速时钟同时运行.1 通道7 位DA 转换低速模式:只有低速时钟运行.睡眠模式:高/低速时钟都停止.串行通信SIO 绿色模式:定时器T0 周期性唤醒.60 条功能强大的指令.封装(支持的芯片格式)产品性能第3页,本讲稿共25页2023/2/19單片機原理應用4
3、引腳說明第4页,本讲稿共25页2023/2/19單片機原理應用5外部復位女鞋、女用皮包用户必须确保VDD 先于外部复位电压达到稳定状态(图6-2),否则复位无效。外部复位电路是一个简单的RC电路,如下图所示注:使用R2 可以避免外部干扰对MCU 复位的影响,建议R2 的值为100200。第5页,本讲稿共25页2023/2/19單片機原理應用6復位電路改善掉特性少女服飾在某些情况下,通过在VCC 和复位引脚之间放置一个二极管可以改善掉电复位。第6页,本讲稿共25页2023/2/19單片機原理應用7系统振荡器电路外部振荡器的电源端和接地端必须和微控器的VDD 和VSS 相连,以提高整个系统的性能。
4、第7页,本讲稿共25页2023/2/19單片機原理應用8基本定时器基本定时器T0 是一个8 位二进制加一计数器,由寄存器T0M 选择T0C 的输入时钟。当T0 溢出(从FFH 至00)时,产生一个信号触发T0 中断。T0 基本定时器的功能如下:8 位可编程定时器:根据所选的时钟频率,定时发出中断请求信号。T0M 寄存器T0M 是一个8 位可读写的基本定时器模式控制寄存器。通过载入不同的值,用户可以在执行程序的过程中调整基本定时器的时钟。通过设置T0 的T0RATE0T0RATE2,定时器T0 提供了8 种可选择的时钟源频率,从fcpu/2 到fcpu/256。T0M的初始值为0,对应的时钟源频
5、率为fcpu/256。T0M 的bit7 位T0ENB 位是T0 的启动控制位。它们共同决定了T0定时器的时钟源频率和定时间隔。第8页,本讲稿共25页2023/2/19單片機原理應用9T0M寄存器廚房用品浴室用品家飾擺設第9页,本讲稿共25页2023/2/19單片機原理應用10定時器初值計算T0C 是一个8 位定时计数器,只要T0ENB 置“1”就开启定时器。T0C 是加1 计数器,时钟源频率由T0RATE0T0RATE2 决定。当T0C 计数到“0FFH”后,若再加1 就会回到“00H”,产生溢出信号,T0 中断请求标志被置为“1”,如果T0 中断又同时被使能(T0IEN=1),那么系统将执
6、行T0 的中断服务程序。T0 没有自动加载功能,T0C 溢出后,仍会继续计数,因此要得到精确的时钟,用户应该对T0C 重新赋值。第10页,本讲稿共25页2023/2/19單片機原理應用11對T0控制的流程1 置T0C 初始值,设置定时器中断间隔时间;2 T0ENB 置为“1”,T0 计数开始;3 根据T0M 选择时钟源频率,每个周期T0C 加1;4 如果T0 从“FFH”增至“00H”,T0 溢出;5 当T0 发生溢出,T0IRQ 通过硬件设为“1”;6 执行中断服务程序;7 用户复位T0C,重新开始T0C 定时器操作。第11页,本讲稿共25页2023/2/19單片機原理應用12初始化T0C
7、和T0M例:初始化T0C 和T0MB0BCLR FT0IEN;禁止 T0 中断B0BCLR FT0ENB;停止 T0 计数MOV A,#00H;B0MOV T0M,A;设置T0 定时模式 Fcpu/64MOV A,#74HB0MOV T0C,A;设置T0 初始值=74H(定时中断为10 ms)B0BCLR FT0IRQ;清T0 中断请求标志B0BSET FT0IEN;使能 T0 中断B0BSET FT0ENB;开始T0 计数第12页,本讲稿共25页2023/2/19單片機原理應用13ADC電路的連接注:模拟输入电压必须在AVREFH 和AVREFL 之间。注:ADC 设计时应注意:设ADC 的
8、输入引脚为输入模式。禁止ADC 输入引脚的上拉电阻。使能ADC(ADENB=1)后延迟100us 等待ADC 电路准备好转换。在进入睡眠模式前禁止ADC(设置ADENB=0)以省电。第13页,本讲稿共25页2023/2/19單片機原理應用14例程(變量定義)CHIPSN8P2708A;选择IC型号;-;常量定义;-;ONEEQU1;-;变量定义;-.DATAorg0h;数据放在Bank0中从地址 0 x00开始的地址Wk00B0DS1;主循环用到的临时变量Iwk00B0DS1;中断中用到的临时变量AccBufDS1;用来保存Acc数据的寄存器PflagBufDS1;用来保存PFLAG数据的寄存
9、器org100h;Bank1数据区BufB1DS20;Bank1中的临时变量;-;标志位定义;-Wk00B0_0EQUWk00B0.0;Wk00B0的第0位Iwk00B0_1EQUIwk00B0.1;Iwk00的第一位;-第14页,本讲稿共25页2023/2/19單片機原理應用15.CODEORG 0;代码开始位置jmp Reset;复位向量地址;地址4 到7 系统保留ORG 8jmp Isr;中断向量地址ORG 10hReset:mov A,#07Fh;初始化堆栈指针b0mov STKP,A;禁止中断clr RBANK;在bank0 初始化RAMclr RFLAG;pflag=x,x,x,x
10、,x,c,dc,zmov A,#00h;初始化系统模式,清看门狗b0mov OSCM,Amov A,#0 x5Ab0mov WDTR,A;清看门狗call ClrRAM;清 RAMcall SysInit;系统初始化程序 b0bset FGIE;使能总中断例程(初始化)第15页,本讲稿共25页2023/2/19單片機原理應用16例程(主程序);-;主程序循环区;-Main:mov A,#0 x5A;清看门狗计数器b0mov WDTR,Acall MnAppjmp Main;-;主程序;-MnApp:;在这里放置主程序ret第16页,本讲稿共25页2023/2/19單片機原理應用17例程(主程序
11、);-;主程序循环区;-Main:mov A,#0 x5A;清看门狗计数器b0mov WDTR,Acall MnAppjmp Main;-;主程序;-MnApp:;在这里放置主程序Callkey_scan;舉列在此調用程式。Calldisplay_led;無內容ret第17页,本讲稿共25页2023/2/19單片機原理應用18例程(檢查中斷)Isr:;保存ACC 和工作寄存器的值b0 xch A,AccBuf ;使用B0 xch 不会影响到 C,Z 标志push;保存80h 87h 的系统寄存器的值IntP00Chk:b0bts1 FP00IEN;检查是否有中断发生jmp IntTc0Chk;
12、b0bts0 FP00IRQjmp P00isr;如果需要,可以在这里插入其它的中断IntTc0Chk:b0bts1 FTC0IENjmp IsrExit;b0bts0 FTC0IRQ;jmp TC0isrIsrExit:;退出中断pop;恢复 80h 87h 的系统寄存器的值b0 xch A,AccBuf;使用B0 xch 不会影响到 C,Z 标志reti;中断返回第18页,本讲稿共25页2023/2/19單片機原理應用19例程(中斷服務程序);-;INT0 中断服务程序;-P00isr:b0bclr FP00IRQ;在这里处理外部中断jmp IsrExit;-;TC0 中断服务程序;-TC
13、0isr:b0bclr FTC0IRQ;在这里处理TC0 中断jmp IsrExit第19页,本讲稿共25页2023/2/19單片機原理應用20例程(上電清RAM);系统初始化程序 ;初始化 I/O,定时器,中断等SysInit:ret;清RAM 使用 YZ 寄存器清 RAM(00h7Fh)ClrRAM:;RAM Bank 0clr Y;选择bank 0b0mov Z,#0 x7f;设置 YZ 地址为7fhClrRAM10:clr YZ;清 YZdecms Z;z=z 1,若z=0 则跳过下一条指令jmp ClrRAM10clr YZ;清0 x00;RAM Bank 1mov A,#1b0mo
14、v Y,A;选择bank 1b0mov Z,#0 x7f;设置 YZ 地址为17fhClrRAM20:clr YZ;清 YZdecms Z;z=z 1,若z=0 则跳过下一条指令jmp ClrRAM20clr YZ;清0 x100RetENDP代碼結束第20页,本讲稿共25页2023/2/19單片機原理應用21編譯器界面介紹第21页,本讲稿共25页2023/2/19單片機原理應用22指令集(轉移指令與算朮運算)第22页,本讲稿共25页2023/2/19單片機原理應用23指令集(邏輯運算與位處理)第23页,本讲稿共25页2023/2/19單片機原理應用24指令集第24页,本讲稿共25页2023/
15、2/19單片機原理應用25指令集(舉列)L1keyequp1.0P1.0腳為L1鍵L2keyequp2.0P2.0腳為L2鍵button1 equ0 x10變量button1地址為0 x10button2equ0 x11變量button2地址為0 x11button3 equ0 x12變量button3地址為0 x12button4equ0 x13變量button4地址為0 x13button5 equ0 x14變量button5地址為0 x14button6equ0 x15變量button6地址為0 x15b0bsetL1key;L1key=1,高電平B0bclrL2key;L2key=0,
16、低電平MOVA,#0X80A=0 x80MOVbutton1,A;button1=A=0 x80ADDbutton2,A;button2=button2+A=button2+0X80ADDbutton3,#0X05;button3=button3+0X05ADDA,button3;A=A+button3=0X05+button3+0X05MOVA,#0X0F;A=0X0FSUBA,#0X05;A=A-0X05=0X0ASUBA,button4;A=A-button4SUBbutton5,A;button5=button5AANDA,button5;A=Aandbutton5ANDbutton5,A;button5=button5andARRCbutton5;A=RRCbutton5RRCMbutton5;button5=RRCbutton5RLCbutton5;A=RLCbutton5RLCMbutton5;button5=RLCbutton5第25页,本讲稿共25页