4-9 Timer/Counter 控制七段速度

Slides:



Advertisements
Similar presentations
天水圍的體育設施.
Advertisements

藥物濫用 華德學校上午校 黃秀雯.
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
单片机应用技术 项目一 循环彩灯装置 第7讲 Keil软件的使用 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
勞保年金制度及軍教人員 退休制度改革規劃 行政院年金制度改革小組 102年1月30日.
2017/3/22 如何用C 来完成SN8系列芯片的程序设计 2017/3/22.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
A B C D E F 5-2 七段數字顯示控制實習 Input 0H 1H 2H 3H 4H 5H 6H 7H 8H 9H 0AH 0BH
5-3 8x8矩陣LED控制實習.
CH.2 Introduction to Microprocessor-Based Control
題目:LED電子數位時鐘 第 二組 組員: 陳柏霖 李育昇.
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
4-10 STM Timer/Counter 與比較吻合輸出
公務人員年金改革法案介紹 (總統公布) 銓敍部退撫司 民國106年8月.
单片机原理与应用.
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第一章 C语言概述.
Timer & KEYPAD 11/24.
第2章 MCS-51单片机指令系统与汇编语言程序设计
计算机文化基础 第一章 计算机的基础知识.
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
Chapter 5 Verilog硬體描述語言
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月05日.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
8051's UART mode0 output 通訊二甲 B 洪紹凱.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
Introduction to Multimedia Coding
A B C D E F 5-2 七段數字顯示控制實習 Input 0H 1H 2H 3H 4H 5H 6H 7H 8H 9H 0AH 0BH
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
DHT11 溫溼度感測器 林品成 月.
4-13 ETM輸出PWM HT66F70A.
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
第十章 人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片.
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
第六章 安全衛生工作守則 6-1 前 言  6-2 訂定依據相關法令規定  6-3 工作守則製作程序及製作前應注意事項  6-4 如何訂定適合需要之安全衛生工作守則  6-5 結 論.
4.1 汇编语言程序格式 4.2 MASM中的表达式 4.3 伪指令语句 4.4 DOS系统功能调用和BIOS中断调用
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
合泰半导体股份有限公司 技术讲座 - Holtek V3 C Compiler介绍 主讲人:王幼端 2017/06/15.
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程.
4-15 WDT HT66F50.
Holtek C Compiler V3--advanced
通訊實驗 實驗三 遙控車程式流程圖 姓名:顏得洋 學號:B
5-6 串列埠模式0輸出埠擴充實習.
单片机原理与应用 主讲人:张荣刚 福建师范大学福清分校.
通訊實驗 實驗三 遙控車程式流程圖 姓名:顏得洋 學號:B
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
4-10 STM Timer/Counter 與比較吻合輸出
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
4-9 CTM Timer/Counter Moded 控制實驗
4.19 Fsys _ SLOW MODE HT66F70A.
4-12 外部中斷 HT66F70A.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
利用HT66F50 SIM模組單元中PCK腳位輸出特性 控制speaker 發聲 SIM 串列界面模組
4.11 ADC.
FPPA 程式設計 這一章開始正式進入FPPA程式設計的世界,我會從一個簡單的程式開始解說,一邊介紹專案開發時最常應用的技巧還有程式控制的手段,一邊把系統規畫的概念導入給大家,讓大家對專案的規畫能有一個初步的概念。
微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.
通訊實驗 實驗三 遙控車程式流程圖 姓名:顏得洋 學號:B
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
4-13 ETM輸出PWM HT66F50.
2-4 中斷.
Presentation transcript:

4-9 Timer/Counter 控制七段速度 HT66F50 Revised 2014/11/12

TM 計時模組 (2.5) 三大類 CTM精簡型 / STM 標準型 / ETM 增強型 五個功能 計時器/計數器 輸入補捉 比對吻合輸出 單脈衝輸出 PWM

CTM 內部結構 (fig 4-9-2) 10位元上數計數器TMnD 兩個內部暫存器TMnA(10 bit) TnRP (3bit) TMnC0 TMnC1 特殊功暫存器 控制計數時脈源 操作模式 輸出特性

CTM 內部結構

CTM是所有家族成員具備的計時模組,具備三種操作模式仍可以應付一般需求。 三種操作模式為:1.比較吻合輸出、2.計時/計數、3.脈波調變輸出模式,同時可搭配一支外部輸入腳位,以及一、兩支的輸出腳位進行運作。

CTM內部構造:以10-BIT上數型計數器為核心 搭配兩個內部暫存器-CCRP(3-BIT)與CCRA(10-BIT)所組成。 由TnCK[2:0]位元的設定,可以選擇七種不同的時脈信號作為10-BIT上數計數器之計數時脈源

當啟動計數時(設定TnON=「1」),上數計數器會先清除為零,接著根據所選擇的時脈開始往上遞增。 計數過程中,比較器A與P會將其數值分別與CCRP(3-BIT)、CCRA(10-BIT)的設定值進行比較,不同的工作模式在比對吻合時會產生不同的動作。 HT66F50有兩組CTM計時模-TM0、TM3。

CTM 輸出入腳位 TH66F50 計時模組: TM0, TM3 TM 輸入腳位: TCK0, TCK3 TM輸出腳位: TP0_0, TP0_1, TP3_0, TP3_1

TMnC0 控制暫存器(表2-5-12) Bit 7 6 5 4 3 2 1 0 Bit [7] ; TnPAU = 1, 暫停計數 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,停止計數

TMnC0 控制暫存器 Bit [2 1 0 ] ; TnRP2 TnRP1 TnRP0 TnPAU TnCK2 TnCK1 TnCK0 TnON TnRP2 TnRP1 TnRP0 Bit 7 6 5 4 3 2 1 0 Bit [2 1 0 ] ; TnRP2 TnRP1 TnRP0 = 000 , 週期= 1024x fINT-1 =100,週期= 512x fINT-1 = 001 ,週期= 128x fINT-1 =101 ,週期= 640x fINT-1 = 010 ,週期= 256x fINT-1 =110 ,週期= 768x fINT-1 = 011 ,週期= 384x fINT-1 =111 ,週期= 896x fINT-1

TMnC1 控制暫存器 Bit [7 6] ; TnM1 TnM0 = 00 , 比對吻合輸出模式 = 01 , 未定義 TnM1 TnM0 TnIO1 TnIO0 TnOC TnPOL TnDPX TnCCLR Bit 7 6 5 4 3 2 1 0 Bit [7 6] ; TnM1 TnM0 = 00 , 比對吻合輸出模式 = 01 , 未定義 = 10 , PWM = 11 , 計時/計數 Bit [0] ; TnCCLR =1, 當比較器A 比對吻合時清除計數器 =0,當比較器p 比對吻合時或計數器溢位清除計數器

TMnC1 控制暫存器 操作於 compare match, 比對吻合輸出模式時 TnM[1:0]=00) TnM1 TnM0 TnIO1 TnIO0 TnOC TnPOL TnDPX TnCCLR Bit 7 6 5 4 3 2 1 0 Bit [5 4] ; TnIO1 TnIO0 : Tpn_0,Tpn1 (輸出功能) 操作於 compare match, 比對吻合輸出模式時 TnM[1:0]=00) 00: 當比對吻合 輸出不變 10 ,當比對吻合 輸出 1 01: 當比對吻合 輸出 0 11 ,當比對吻合 輸出 轉態 操作於 PWM 模式時 TnM[1:0]=10) 00: 強制為非啟動, 01強制為啟動, 10 PWM輸出, 11未定義 操作於 Timer/Counter 模式時 TnM[1:0]=11, 無作用)

TMnC1 控制暫存器 操作於 compare match, 比對吻合輸出模式時 TnM[1:0]=00) TnM1 TnM0 TnIO1 TnIO0 TnOC TnPOL TnDPX TnCCLR Bit 7 6 5 4 3 2 1 0 Bit [3] TnOC : Tpn_0,Tpn1 (輸出功能) 操作於 compare match, 比對吻合輸出模式時 TnM[1:0]=00) 1: 在首次比對吻前 輸出維持1 0: 在首次比對吻前 輸出維持0 操作於 PWM 模式時 TnM[1:0]=10) 1: 啟動準位1 0: 啟動準位0 Bit [2] ; TnPOL =1, 反向後再輸出 =0, 直接輸出

計數時脈源由系統本身TnCK[2:0] 稱為Timer 計數時脈源由外部輸入TnCK[2:0] 稱為Counter 啟動TMnD 計數 (1) 若TnCCLR=1, 當TMnD=TMnA, CTM 會設定TNAF=1, 並將TMnD歸零後繼續計數 (2) 若TnCCLR=0, 當TMnD=TMnA, CTM 會設定TNAF=1,並繼續計數,當TMnD[9:7]計數值與TnPF=1,將TMnD歸零後繼續計數

MFIO暫存器 Bit7 Bit0 T2AF T2PF T0AF T0PF E2AE T2PE T0AE T0PE

4-9.ASM ;PROGRAM : 4-9.ASM ;FUNCTION: DISPLAY 0~9 FOR 7 SEG USING TMR CONTROL #INCLUDE HT66F50.INC ;-------------------------------------------------------------------- MY_DATA .SECTION 'DATA' ;== DATA SECTION == DEL1 DB ? COUNT DB ? SEG_PORT EQU PD ;DEFINE 7-SEG PORT SEG_PORTC EQU PDC ;DEFINE 7-SEG PORT ; CONTROL REG.

MY_CODE .SECTION AT 0 'CODE' ;== PROGRAM SECTION == ORG 00H ;HT-46RXX RESET VECTOR CLR SEG_PORTC ;CONFIG SEG_PORT AS OUTPUT MOV A,00100000B ;STOP CTM, T0CK[2:0]=010 MOV TM0C0,A ;fINT=fSYS/16 (4MHz/16) ;TOON=0: Timer 不計數 MOV A,11000001B ;Config. CTM in Timer/counter mode MOV TM0C1,A ;TM0D in cleared by TM0CCRA match ;TM0CCRA=1, 計數至 TM0D=TM0A ;清除計數器 MOV A,LOW 1000 ;4 ms (1000/fINT) MOV TM0AL,A ;SET TM0CCRA value low byte MOV A,HIGH 1000 ; [TM0A] is 10 bit MOV TM0AH,A ; SET TM0CCRA value high byte

MAIN: MOV A,OFFSET TAB_7_SEG MOV TBLP,A ;INITIAL POINTER START ADDRESS MOV A,10 MOV COUNT,A ;SET DATA COUNT OF TAB_7_SEG LOOP: TABRDL SEG_PORT ;READ TABLE AND SEND TO SEG_PORT CALL DELAY ;DELAY TBLH*10mS INC TBLP ;UPDATE TABLE POINTER SDZ COUNT ;COUNT DOWN BY 1 JMP LOOP ;JUMP IF NOT TABLE END JMP MAIN ;RESTART

;******************************************************************** ; Delay 1 sec [1/ fINT x DEL1(250) x TM0A DELAY PROC SET TOON; START COUNTING DEL_1: MOV A,250; 250*4ms MOV DEL1,A; DEL_2 SNZ T0AF; Compare Match TM0CCRA [bit 5 of MFIO] JMP DEL_2; NO, wait CLR T0AF; Yes, 4ms is over SDZ DEL1; Is 1 sec over JMP DEL_2; No CLR TOON; yes, stop STPU RET; DELAY ENDP ORG LASTPAGE; TAB_7_SEG: DC 03Fh,006h,05Bh,04Fh,066h; 7 SEG CODE for COMMON CODE DC 06Dh,07Dh,007h,07Fh,067h; END