stm8串口接收中断程序理解及应用

stm8串口接收中断程序理解及应用,第1张

  STM8系列是意法半导体公司生产的8位的单片机。该型号单片机分为STM8A、STM8S、STM8L三个系列。

  STM8芯片特点

  内核

  高级STM8内核,具有3级流水线的哈佛结构

  扩展指令集

  存储器

  程序存储器:8K字节Flash;10K 次擦写后在55°C环境下数据可保存20年

  数据存储器:640 字节真正的数据

  EEPROM;可达30万次擦写

  RAM:1K字节

  中断控制器功能:

  ● 硬件中断的管理

  ─ 外设中断能力

  ● 软件中断的管理(TRAP)

  ● 具有灵活的优先级和中断等级管理,支持可嵌套的或同级中断管理:

  – 多达4个软件可编程的嵌套等级

  – 最多有32个中断向量,其入口地址由硬件固定

  – 2 不可屏蔽的事件: RESET, TRAP – 1个不可屏蔽的最高优先级的硬件中断

  串口接收中断程序:

  ;串口接收一个字符,并将其返回上位机

  BUF EQU 40H

  BUZZER EQU P3.4

  FLAGR EQU 20H.1

  ORG 8000H ; 实验板开始执行的第一条指令所处的地址

  LJMP MAIN ; 跳转到主程序

  ORG 8023H ;中断程序入口

  LJMP SINT ORG 8100H ; 主程序开始的地址;避开中断入口地址

  MAIN: MOV SP, #0D0H ;设置堆栈起始地址

  CLR FLAGR MOV BUF,#00H MOV SCON,#50H ;设置串口工作模式1,允许接受控制

  MOV PCON,#00H ;SMOD=0

  MOV TMOD,#20H ;设置定时器1工作模式2

  MOV TH1,#0FDH ;置定时器初值,设定比特率9600bps

  MOV TL1,#0FDH SETB ES ;允许串口中断

  SETB EA

  SETB TR1 ;启动定时器

  LOOP1: JNB FLAGR,$ ;等待接收字符

  LCALL RING ;接收到字符,响铃提示

  CLR FLAGR AJMP LOOP1

  ;========================================响铃

  RING: CLR BUZZER

  LCALL TMS1

  LCALL TMS1

  SETB BUZZER

  RET

  ;========================================延时100ms

  TMS1: MOV R6, #0F0H ; 给R6和R7赋初值,在12Hz晶振时延时时间为200(R7循环次数)× 250(R6循环次数)×2×1(us)

  MOV R7, #0C8H

  DELAY02: DJNZ R6, $ ; R6单元减1,非0继续执行当前指令,“$”指当前指令地址

  DJNZ R7, DELAY02 ; R7减1,非0跳转到标号DELAY01处执行

  RET

  STM8 UART接收中断程序:   系统功能

  使用STM8的USART进行自发自收(将发送引脚RXD短接到接收引脚TXD),发出数据:0,1,2。。。数据,能接收到自己发出的数据:0,1,2。。。使用LED作出简单指示!

  硬件设计 stm8串口接收中断程序理解及应用,stm8串口接收中断程序理解及应用,第2张

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2717304.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存