单片机原理应用_第1页
单片机原理应用_第2页
单片机原理应用_第3页
单片机原理应用_第4页
单片机原理应用_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理应用 2022/9/5單片機原理應用1第1页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用2IC引腳圖第2页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用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:基

2、本定时器双向输入/输出:P0, P1, P2, P3, P4, P5 TC0:自动装载定时/计数器/PWM0/Buzzer 输出唤醒功能:P0, P1 TC1:自动装载定时/计数器/PWM1/Buzzer 输出外部中断:P0 . 内置看门狗计数器上拉电阻:P0, P1, P2, P3, P4, P5P4 引脚和ADC 输入共享. 双时钟系统提供4 种操作模式外部高速时钟:RC,最大10MHz. 8 通道12 位AD 转换外部高速时钟:晶体,最大16MHz. 普通模式:高/低速时钟同时运行. 1 通道7 位DA 转换低速模式:只有低速时钟运行. 睡眠模式:高/低速时钟都停止. 串行通信SIO 绿

3、色模式:定时器T0 周期性唤醒. 60 条功能强大的指令. 封装(支持的芯片格式) 产品性能 第3页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用4引腳說明第4页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用5外部復位女鞋、女用皮包用户必须确保VDD 先于外部复位电压达到稳定状态(图6-2),否则复位无效。外部复位电路是一个简单的RC电路,如下图所示注:使用R2 可以避免外部干扰对MCU 复位的影响,建议R2 的值为100200。 第5页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應

4、用6復位電路改善掉特性少女服飾在某些情况下,通过在VCC 和复位引脚之间放置一个二极管可以改善掉电复位。 第6页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用7系统振荡器电路 外部振荡器的电源端和接地端必须和微控器的VDD 和VSS 相连,以提高整个系统的性能。 第7页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用8基本定时器基本定时器T0 是一个8 位二进制加一计数器,由寄存器T0M 选择T0C 的输入时钟。当T0 溢出 (从FFH 至00)时,产生一个信号触发T0 中断。T0 基本定时器的功能如下:8 位可编程定时

5、器:根据所选的时钟频率,定时发出中断请求信号。T0M 寄存器T0M 是一个8 位可读写的基本定时器模式控制寄存器。通过载入不同的值,用户可以在执行程序的过程中调整基本定时器的时钟。通过设置T0 的T0RATE0T0RATE2,定时器T0 提供了8 种可选择的时钟源频率,从fcpu/2 到fcpu/256。T0M的初始值为0,对应的时钟源频率为fcpu/256。T0M 的bit7 位T0ENB 位是T0 的启动控制位。它们共同决定了T0定时器的时钟源频率和定时间隔。 第8页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用9T0M寄存器廚房用品浴室用品家飾擺設第

6、9页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用10定時器初值計算T0C 是一个8 位定时计数器,只要T0ENB 置“1”就开启定时器。T0C 是加1 计数器,时钟源频率由T0RATE0T0RATE2 决定。当T0C 计数到“0FFH”后,若再加1 就会回到“00H”,产生溢出信号,T0 中断请求标志被置为“1”,如果T0 中断又同时被使能(T0IEN =1),那么系统将执行T0 的中断服务程序。T0 没有自动加载功能,T0C 溢出后,仍会继续计数,因此要得到精确的时钟,用户应该对T0C 重新赋值。第10页,共25页,2022年,5月20日,2点40分,

7、星期二2022/9/5單片機原理應用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页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用12初始化T0C 和T0M例:初始化T0C 和T0MB0BCLR FT0IEN ; 禁止 T0 中断B0BCLR FT0

8、ENB ; 停止 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页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用13ADC電路的連接注:模拟输入电压必须在AVREFH 和AVREFL 之间。注:ADC 设计时应注意: 设ADC 的输入引脚为输入模式。

9、禁止ADC 输入引脚的上拉电阻。 使能ADC(ADENB = 1)后延迟100us 等待ADC 电路准备好转换。 在进入睡眠模式前禁止ADC(设置ADENB = 0)以省电。 第13页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用14例程(變量定義)CHIP SN8P2708A ; 选择IC 型号;-; 常量定义;-; ONE EQU 1;-; 变量定义;-.DATAorg 0h ; 数据放在Bank 0 中从地址 0 x00 开始的地址Wk00B0 DS 1 ; 主循环用到的临时变量Iwk00B0 DS 1 ; 中断中用到的临时变量AccBuf DS 1

10、 ; 用来保存Acc 数据的寄存器PflagBuf DS 1 ; 用来保存PFLAG 数据的寄存器org 100h ; Bank 1 数据区BufB1 DS 20 ; Bank 1 中的临时变量;-; 标志位定义;-Wk00B0_0 EQU Wk00B0.0 ; Wk00B0 的第0 位Iwk00B0_1 EQU Iwk00B0.1 ; Iwk00 的第一位;- 第14页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用15.CODEORG 0 ; 代码开始位置jmp Reset ; 复位向量地址; 地址4 到7 系统保留ORG 8jmp Isr ; 中断向量

11、地址ORG 10hReset:mov A,#07Fh ; 初始化堆栈指针b0mov STKP,A ; 禁止中断clr RBANK ; 在bank0 初始化RAMclr RFLAG ; pflag = x,x,x,x,x,c,dc,zmov A,#00h ; 初始化系统模式,清看门狗b0mov OSCM,Amov A, #0 x5Ab0mov WDTR, A ; 清看门狗call ClrRAM ; 清 RAMcall SysInit ; 系统初始化程序 b0bset FGIE ; 使能总中断 例程(初始化)第15页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應

12、用16例程(主程序);-; 主程序循环区;-Main:mov A, #0 x5A ; 清看门狗计数器b0mov WDTR, Acall MnAppjmp Main;-; 主程序;-MnApp:; 在这里放置主程序ret 第16页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用17例程(主程序);-; 主程序循环区;-Main:mov A, #0 x5A ; 清看门狗计数器b0mov WDTR, Acall MnAppjmp Main;-; 主程序;-MnApp:; 在这里放置主程序Callkey_scan ;舉列在此調用程式。Calldisplay_led

13、;無內容ret 第17页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用18例程(檢查中斷)Isr:; 保存ACC 和工作寄存器的值b0 xch A,AccBuf ; 使用B0 xch 不会影响到 C,Z 标志push ; ; 保存80h 87h 的系统寄存器的值IntP00Chk: b0bts1 FP00IEN; 检查是否有中断发生jmp IntTc0Chk ;b0bts0 FP00IRQjmp P00isr; 如果需要,可以在这里插入其它的中断IntTc0Chk:b0bts1 FTC0IENjmp IsrExit ;b0bts0 FTC0IRQ ;jmp

14、 TC0isrIsrExit: ; 退出中断pop ; 恢复 80h 87h 的系统寄存器的值b0 xch A,AccBuf ; 使用B0 xch 不会影响到 C,Z 标志reti ; 中断返回 第18页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用19例程(中斷服務程序);-; INT0 中断服务程序;-P00isr:b0bclr FP00IRQ; 在这里处理外部中断jmp IsrExit;-; TC0 中断服务程序;-TC0isr:b0bclr FTC0IRQ; 在这里处理TC0 中断jmp IsrExit第19页,共25页,2022年,5月20日,2

15、点40分,星期二2022/9/5單片機原理應用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,#1b0mov Y,A ; 选择bank 1b0mov Z,#0 x

16、7f ; 设置 YZ 地址为17fhClrRAM20:clr YZ ; 清 YZdecms Z ; z = z 1,若z=0 则跳过下一条指令jmp ClrRAM20clr YZ ; 清0 x100RetENDP 代碼結束第20页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用21編譯器界面介紹第21页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用22指令集(轉移指令與算朮運算)第22页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用23指令集(邏輯運算與位處理)第23页,共25页,2

17、022年,5月20日,2点40分,星期二2022/9/5單片機原理應用24指令集第24页,共25页,2022年,5月20日,2点40分,星期二2022/9/5單片機原理應用25指令集(舉列)L1keyequp1.0P1.0腳為L1鍵L2keyequp2.0P2.0腳為L2鍵button1 equ 0 x10變量button1地址為0 x10button2 equ 0 x11變量button2地址為0 x11button3 equ 0 x12變量button3地址為0 x12button4 equ 0 x13變量button4地址為0 x13button5 equ 0 x14變量button5地

18、址為0 x14button6 equ 0 x15變量button6地址為0 x15b0bsetL1key; L1key=1,高電平B0bclrL2key; L2key=0,低電平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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论