4-10 STM Timer/Counter 與比較吻合輸出

Slides:



Advertisements
Similar presentations
苏少版《音乐》教材分析与 教学研究 江苏省中小学教研室 戴海云. 提 纲 第一部分 《音乐》教材分析 编写思路 主要特点 第二部分. 《音乐》教学实验与研究 教学研究 案例分析.
Advertisements

課程名稱:多變的聲音 編授教師: 中興國中 楊秉鈞.
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
单片机应用技术 项目一 循环彩灯装置 第7讲 Keil软件的使用 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
勞保年金制度及軍教人員 退休制度改革規劃 行政院年金制度改革小組 102年1月30日.
“国培计划(2012)”—幼儿园骨干教师远程培目
第10章 DOS功能调用与BIOS中断调用.
2017/3/22 如何用C 来完成SN8系列芯片的程序设计 2017/3/22.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
邵阳学院 信息工程系电子实践教学中心 江世明
5-3 8x8矩陣LED控制實習.
8051 指令.
題目:LED電子數位時鐘 第 二組 組員: 陳柏霖 李育昇.
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
公務人員年金改革法案介紹 (總統公布) 銓敍部退撫司 民國106年8月.
单片机原理与应用.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
PIC16F1827介紹 以微控器為基礎之電路設計實務-微處理器實驗室.
Timer & KEYPAD 11/24.
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
Chapter 5 Verilog硬體描述語言
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
CH5 數位訊號 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月05日.
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
8051's UART mode0 output 通訊二甲 B 洪紹凱.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
Introduction to Multimedia Coding
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
第二週 記譜法.
電子音樂 通訊系 B 楊穎穆.
第5章 循环与分支程序设计 学习目标: 了解并掌握循环程序的构造方法,尤其是对循环控制条件的设置以及可能出现的边界情况的考虑。掌握起泡排序算法这种多重循环程序设计中的常用方法。交换标志位的设置在此算法中更能提高效率。学会在数组排序算法中采用折半查找法来提高查找效率。学会使用跳跃表法实现CASE结构。
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
合泰半导体股份有限公司 技术讲座 - Holtek V3 C Compiler介绍 主讲人:王幼端 2017/06/15.
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程.
4-15 WDT HT66F50.
Holtek C Compiler V3--advanced
通訊實驗 實驗三 遙控車程式流程圖 姓名:顏得洋 學號:B
5-6 串列埠模式0輸出埠擴充實習.
单片机原理与应用 主讲人:张荣刚 福建师范大学福清分校.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
4-10 STM Timer/Counter 與比較吻合輸出
4-9 Timer/Counter 控制七段速度
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
4-9 CTM Timer/Counter Moded 控制實驗
4-12 外部中斷 HT66F70A.
羊樂多笛笛 作者:吳滋錕、劉智昇.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
利用HT66F50 SIM模組單元中PCK腳位輸出特性 控制speaker 發聲 SIM 串列界面模組
人民音乐出版社 七年级.
4.11 ADC.
FPPA 程式設計 這一章開始正式進入FPPA程式設計的世界,我會從一個簡單的程式開始解說,一邊介紹專案開發時最常應用的技巧還有程式控制的手段,一邊把系統規畫的概念導入給大家,讓大家對專案的規畫能有一個初步的概念。
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
4-13 ETM輸出PWM HT66F50.
13-1 電腦可以協助解決哪些問題 13-2 電腦解題簡介 13-3 電腦解題規劃-演算法 13-4 認識資料結構
2-4 中斷.
Presentation transcript:

4-10 STM Timer/Counter 與比較吻合輸出 HT66F50

STM 內部結構

STM (Standard type TM)提供5種模式 Compare match Timer/Counter PWM Input Capture Single pulse output

STM 模組編號 HT66F50 為TM2 STM寬度16bit TM輸入腳位 TCK2 TM輸出腳位 TP2_0, TP2_1 透過特殊功能暫存器TMnC1 , TMnC2 設定

STM寬度16bit , TMnD[15:0] 藉由TnCK[2:0]選擇七種不同計數時脈 與TMnA[15:0] 或TNRP[7:0]比較

INT0F INT0E EMI [中斷名稱 INT0] INCT0 (fig 4-10-3) INT0F INT0E EMI [中斷名稱 INT0] INT1F INT1E EMI [中斷名稱 INT1] CP0F CP0E EMI [中斷名稱 Comparator 0] INCT1 CP1F CP1E EMI [中斷名稱 Comparator 1] MF0F MF0E EMI [中斷名稱 Multi-function 0] MF1F MF1E EMI [中斷名稱 Multi-function 1] ADF ADE EMI [中斷名稱 A/D]

MFIO (fig 4-10-3) T0PF TOPE [中斷名稱 TM0P] T0AF T0AE [中斷名稱 TM0A] T2PF T2PE [中斷名稱 TM2P] T2AF T2AE [中斷名稱 TM2A]

INCT1 特殊功能暫存器 ADF MF1F MF0F CP1F ADE MF1F MF0E CP1E Bit 7 6 5 4 3 2 1 0 MF0E 為致能複功能中斷 enable bits 對應 enable bits : T0PE, T0AE, T2PE, T2AE 與 STM CCRA 比對吻合中斷

MFI0 特殊功能暫存器 T2AF T2PF T0AF T0PF T2AE T2PE T0AE T0PE Bit 7 6 5 4 3 2 1 0

TM2C0 控制暫存器(表2-5-18) Bit 7 6 5 4 3 2 1 0 Bit [7] ; TnPAU = 1, 暫停計數 n=2 for HT66F50 TnPAU TnCK2 TnCK1 TnCK0 TnON TnRP2 TnRP1 TnRP0 Bit 7 6 5 4 3 2 1 0 Bit [7] ; TnPAU = 1, 暫停計數 = 0, 繼續計數 Bit [6 5 4] ; TnCK2 TnCK1 TnCK0 = 000 , fINT= fsys/4 =100, fINT= fINT = 001 , fINT= fsys =101 ,保留 = 010 , fINT= fsys/16 =110 , fINT=TCKn = 011 , fINT= fsys/64 =111 , fINT= TCKn’ Bit [3] ;TnON =1 ,開始計數 =0,停止計數

TM2C0 控制暫存器 TnPAU TnCK2 TnCK1 TnCK0 TnON - - - Bit 7 6 5 4 3 2 1 0

TM2C1 控制暫存器 Bit [7 6] ; TnM1 TnM0 = 00 , STM為比對吻合輸出模式 TnM1 TnM0 TnIO1 TnIO0 TnOC TnPOL TnDPX TnCCLR Bit 7 6 5 4 3 2 1 0 Bit [7 6] ; TnM1 TnM0 = 00 , STM為比對吻合輸出模式 = 01 , STM為輸入補捉模式 = 10 , STM為PWM / single pulse mode = 11 , STM為計時/計數

TM2C1 控制暫存器 Bit [5 4] ; TnIO[1:0]: TP2_0, TP2_1 為功能選擇位元 TnM1 TnM0 TnIO1 TnIO0 TnOC TnPOL TnDPX TnCCLR Bit 7 6 5 4 3 2 1 0 Bit [5 4] ; TnIO[1:0]: TP2_0, TP2_1 為功能選擇位元 若STM為比對吻合輸出 T2M[1:0]=00 TP2_0, TP2_1 為輸出 00: 比對吻合時,輸出不變 10: 比對吻合時,輸出高態 01: 比對吻合時,輸出低態 11: 比對吻合時,輸出轉態 若STM為比對輸入補捉 T2M[1:0]=01 TP2_0, TP2_1 為輸入 00: 在TP2_0, TP2_1輸入為正緣時,記錄TM2D 01: 在TP2_0, TP2_1輸入為負緣時,記錄TM2D 10: 在TP2_0, TP2_1輸入為負緣及正緣時,記錄TM2D 11: 停止輸入補捉功能 若STM為PWM/Single Pulse Mode, T2M[1:0]=10 00: 強制輸出為非啟動 10: PWM輸出 01: 強制輸出為啟動 11: Single Pulse Mode 若STM為計時/計數, T2M[1:0]=11 無作用

TM2C1 控制暫存器 TnM1 TnM0 TnIO1 TnIO0 TnOC TnPOL TnDPX TnCCLR Bit 7 6 5 4 3 2 1 0 Bit [3] ; TnOC 輸出準位控制位元 若STM為比對吻合輸出 TP2M[1:0]=00 1: 首次比對吻合前,輸出維持在1 0:首次比對吻合前,輸出維持在0 若STM為PWM/Single Pulse Mode, T2M[1:0]=10 1: 輸出啟動準位為1 0: 輸出啟動準位為0 Bit [2] ; TnPOL 輸出極性控制位元 1: 輸出反向 0: 輸出不反向 Bit [0] ; TnCCLR =1, 當比較器A 比對吻合時清除計數器 =0,當比較器p 比對吻合時或計數器溢位清除計數器

4-10.ASM (fig 4-10-2) ;PROGRAM : 4-10.ASM ;FUNCTION: GENERATE TONE DO-DO BY TIME INTERRUPT SKILL OF STM #INCLUDE HT66F50.INC #INCLUDE 4-10.INC ;=========================================================== MY_DATA .SECTION 'DATA' ;==DATA SECTION== DEL1 DB ? ;DELAY LOOP COUNT1 DEL2 DB ? ;DELAY LOOP COUNT2 DEL3 DB ? ;DELAY LOOP COUNT3 COUNT DB ? ;PITCH COUNT STACK_A DB ? ;STACK BUFFER FOR ACC STACK_STATUS DB ? ;STACK BUFFER FOR PSW

STM is 16 bit timer MY_CODE .SECTION 'CODE' ;==PROGRAM SECTION== ORG 00H ;HT-66FX0 RESET VECTOR JMP INIT ORG 14H ;HT-66FXX STM INTERRUPT VECTOR JMP ISR_STM INIT: CLR SPK_PORTC ;CONFIG SPK_PORT AS OUTPUT MODE SET MF0E ;ENABLE [STM] INTERRUPT SET T2AE ;ENABLE T2CCRA COMPARE INTERRUPT CLR TM2C0 ;fINT=fSYS/4=1MHz ;Bit [6 5 4] ; TnCK2 TnCK1 TnCK0 ;= 000 , fINT= fsys/4 MOV A,11000001B ;STM IS IN THE TIMER/COUNTER MODE, ;Bit[7 6]=11 , STM為計時/計數 MOV TM2C1,A ; Bit[0]=1, 當比較器A 比對吻合時清除計數器 ;AND TP2CNT IS CLEARED BY TP2CCRA ; COMPARE MATCH CLR T2AF ;清除MF0F 與T2AE 中斷旗標 CLR MF0F SET EMI ;中斷總開關

MAIN: MOV A,TAB_PITCH MOV TBLP,A ;INITIAL TABLE POINTER MOV A,15 MOV COUNT,A ;SET COUNTER FOR PITCH TABLE NEXT_PITCH: TABRDL TM2AL ;LOAD PITCH TO TP2CCRA PE-LOAD REGISTER MOV A,TBLH MOV TM2AH,A ;PERLOAD TP2CCRA FOR HIGH 8-BIT SET T2ON ;START GTPU COUNTING MOV A,40 ;DELAY 0.4 SEC FOR EACH TONE CALL DELAY CLR T2ON ;STOP STM COUNTING INC TBLP ;UPDATE TABLE POINTER SDZ COUNT ;WERE ALL PITCH PLAYER? JMP NEXT_PITCH ;NO,NEXT PITCH JMP MAIN ;YES,RESTART

;=================================================================== ; STM INTERRUPT SERVICE ROUTINE ISR_STM: MOV STACK_A,A ;PUSH A MOV A,STATUS MOV STACK_STATUS,A ;PUSH STATUS CLR T2AF MOV A,00010000B XORM A,SPK_PORT ;CONPLEMENT PC.4 MOV A,STACK_STATUS MOV STATUS,A ;POP STATUS MOV A,STACK_A ;POP A RETI

;======================================================================================== ; PROC : DELAY ; FUNC : DEALY ABOUT ACC*10mS @fSYS=4MHz ; PARA : ACC : DELAY FACTOR ; REG : DEL1,DEL2,DEL3 DELAY PROC MOV DEL1,A ;SET DEL1 COUNTER DEL_1: MOV A,30 MOV DEL2,A ;SET DEL2 COUNTER DEL_2: MOV A,110 MOV DEL3,A ;SET DEL3 COUNTER DEL_3: SDZ DEL3 ;DEL3 DOWN COUNT JMP DEL_3 SDZ DEL2 ;DEL2 DOWN COUNT JMP DEL_2 SDZ DEL1 ;DEL1 DOWN COUNT JMP DEL_1 RET DELAY ENDP

ORG LASTPAGE ;DEFINE LASTPAGE TAB_PITCH: ;PITCH CONSTANT FOR fINT=fSYS/4 DC fSYS/(523*2*4) ;DO TONE TIME COUNSTANT DC fSYS/(587*2*4) ;RE TONE TIME COUNSTANT DC fSYS/(659*2*4) ;MI TONE TIME COUNSTANT DC fSYS/(698*2*4) ;FA TONE TIME COUNSTANT DC fSYS/(785*2*4) ;SO TONE TIME COUNSTANT DC fSYS/(880*2*4) ;LA TONE TIME COUNSTANT DC fSYS/(998*2*4) ;TI TONE TIME COUNSTANT DC fSYS/(523*2*2*4) ;DO. TONE TIME COUNSTANT DC fSYS/(587*2*2*4) ;RE. TONE TIME COUNSTANT DC fSYS/(659*2*2*4) ;ME. TONE TIME COUNSTANT DC fSYS/(698*2*2*4) ;FA. TONE TIME COUNSTANT DC fSYS/(785*2*2*4) ;SO. TONE TIME COUNSTANT DC fSYS/(880*2*2*4) ;LA. TONE TIME COUNSTANT DC fSYS/(998*2*2*4) ;TI. TONE TIME COUNSTANT DC fSYS/(523*2*4*4) ;DO. TONE TIME COUNSTANT END

當CPU執行DELAY副程式時 STM仍繼續計數 待其計數值與TM2A暫存器所設定之參數產生比對吻合時 以中斷方式讓CPU跳至014h執行