Freescale HCS12 微控制器.

Slides:



Advertisements
Similar presentations
葡萄糖 糖原 ( 动物细胞的储能物质 ) 肝糖原较多 肌糖原较多. 糖与人体健康 低血糖 症状 : 1 、饥饿感、软弱无力、面色苍白、头晕、心 慌、脉快、出冷汗、肢体颤抖等。 2 、精神激动、恐惧、幻觉、狂躁、惊厥、抽 搐、嗜睡甚至昏迷死亡。
Advertisements

厅直属单位卫生科技工作 座谈会 卫生高级专业技术资格申报评审 政策解读和工作要求
财务管理 利 润 分 配 利 润 分 配 嘉善中专 杨晓燕. 二、利润分配的项目及顺序 第三节 利润分配 一、利润分配的原则 财务管理 >> 第六章 >> 第三节 三、利润分配政策及影响因素.
2015年工作总结及2016年工作计划 建筑环境与能源应用工程系 2015年1月6日.
现代电子技术实验 ——综合实验之单片机部分
這是來自中南海的健康長壽讀本 不管你有多忙,這個讀本都應該讀一下,因為這是一位科學 家給國家領導人的忠言。日理萬機的領導人曾放下手頭工
你的简历既反映了你的过去,又标志着你的未来……
                                                 伊朗 的今生 与前世 (2)
农学院 学年 工作总结及下学年重点工作.
研究生公共基础课程 佛 学.
客家文化的內涵與傳播 潘朝陽 臺灣師大國際與僑教學院院長 臺灣師大東亞系、地理系教授 臺灣師大全球客家文化研究中心主任
第一节 两者之间的差异分析 第二节 总体内部的差异分析 第三节 计算器的使用
法務部財產申報查核平臺 規劃說明.
─視覺藝術的元素.
上海交通大学附属中学 李由 晏敏宽 刘华典 指导老师:朱乔荣 徐忠惠 制作:李由
MARCH 2015 撰寫獨立專題探究報告 工作坊 (上半).
第四章 從分裂到統一 第一節 漢唐之際的大變動
第四章 從分裂到統一 第一節 漢唐之際的大變動
第一章 绪论 于丽丽 山东中医药高专护理系.
人 因 工 程 四室一B 黃雅勤 四室一B 黃曉楓 四室一B 鄭羽真 四室一B 張起順.
為什麼要讀書?.
建筑业2007年年报 2008年定报培训会 及 工交城建科 蔡婉妮
成功的招聘 一、明确用人需求 二、做好面试前的准备 三、行为事例STAR法 四、在面试中恰当的提问 五、做出正确的选聘决定.
2013年临床科室述职报告.
透過教學鷹架引導 三年級學生形成科學議題 高雄市復興國小 李素貞 102年3月20日
中国博士后科学基金 交流体会.
荆楚理工学院 申请学士学位授权单位 自 评 报 告 荆楚理工学院:吴麟章
主講人:臺中市政府警察局 交通警察大隊 行政組組長簡仁照
超声医学 第六章 脾脏疾病的诊断.
湖北省,简称“鄂”,为中华人民共和国省级行政区。湖北在中国中部、长江中游、洞庭湖以北,介于北纬29°05′至33°20′,东经108°21′至116°07′;北接河南省,东连安徽省,东南和南邻江西、湖南两省,西靠重庆市,西北与陕西省为邻。东西长约740公里,南北宽约470公里,面积18.59万平方公里,占全国总面积的1.95%,居全国第13位。省会是中部地区唯一的副省级城市--武汉市。
现代社会生活中的压力症,是人们身心疾患 发生的根源。在学习企业管理培训课程的时候, 明白了当人们遇上"压力"时,最初的反应便是"
「但圣灵降临在你们身上,你们就必得着能力,
计算机导论 第4讲 微型计算机硬件系统 1.
拟动力试验 伪动力试验,计算机加载器联机试验 地震发生和传播的随机性 周期性加载的加载历程是假定的,与实际地震的非周期反应有很大差别
新时代的劳动者 杜蒙绮.
重整的概述 重整计划 重整程序的终止.
臺北科技大學 新進人員研習  研究發展處 宣導資料.
指導老師:藍日昌 組長: 謝佳君 組員: 陳昱翔 林保任 王俊元 孫韻恩 陳宣伶
新約概論 台中生命之道靈糧堂 2007年3月4日.
社会调查辅导 适用于电大开放教育行政管理本科专业.
寫 作 教 學 6 電腦與我 時代改變,科技進步,電腦成為日常生活不可或缺的設備。我是二十一世紀的E世代少年,一隻滑鼠在手,樂趣無窮。
早期的阿拉伯半島 地理環境: 生活情形 (一)三面環海,大多為荒涼貧瘠的沙漠,不利農耕
單晶片原理與應用 魏兆煌 整理 南台科技大學 電機系 Sep
Timer & KEYPAD 11/24.
课程:《单片机原理及应用》 教材:《单片机原理及应用》 学时:理论32+实验32=64 教学内容与要求:见教学大纲
組長: 劉瀚元 組員: 黃靖、鄧靖蓉、林亮佑 指導教授: 林得裕
第5章 智能汽车设计基础—微控制器.
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
动手玩转Arduino (五) RF数据通信
高雄醫學大學個人申請不分系招生(薪火A~D組) 助學措施說明
Freescale HCS12 微控制器.
「前世的五百次回眸換得今生的一次擦肩而過」~席慕蓉 有緣千里來相聚 歡迎學弟妹來到經國建研所
Freescale HCS12 微控制器.
桃李春风结子完,到头谁似一盆兰?如冰水好空相妒,枉与他人作笑谈。
亞伯拉罕 摩西 猶太教徒 割禮 + 律法 成為神子民 的記號 神子民的 行為規範 結婚戒指 婚姻守則.
物理實驗水火箭活動 水火箭製作.
保羅在腓立比的宣教 使徒行傳16:9-34.
四川工商学院 单片机原理及应用 刘 强
新约拱门 1 提前 提后 多 门 教牧书信 帖后 帖前 西 腓 弗 加 林后 林前 罗 启 犹 约叁 约贰 约壹 彼后 彼前 雅 来 希伯来
第六章 記憶體.
新約拱門 1 提前 提後 多 門 教牧書信 帖後 帖前 西 腓 弗 加 林後 林前 羅 啟 猶 約叁 約貳 約壹 彼後 彼前 雅 來 希伯來
春雨 (晚雨) 秋雨 (早雨) 雨季 旱季 雨季 陽曆 逾 越 節 五 旬 節 住 棚
第7章 智能汽车设计实践—— 摄像头型设计.
第二节 海水的运动.
「但圣灵降临在你们身上,你们就必得着能力,
「但聖靈降臨在你們身上,你們就必得著能力,
安全保密产品检测申请书 材料准备介绍.
全方位起動通識 戴偉森 沙田循道衛理中學 4/7/2009.
保羅的臨別贈言 使徒行傳20:16 – 21:14.
第六章 直接成本法.
Presentation transcript:

Freescale HCS12 微控制器

A/D转换模块 Star12 CPU Internal Bus SCI 1 SCI 1 ATD 1 ATD 12K SRAM 12K SRAM 256K FLASEEPROM Internal Bus SPI 2 or PWM CH 4-7 SPI 1 or PWM CH 0-3 SPI 0 BKP INT MMI PWM 8 CHAN Star12 CPU SIM CM BDM MEBI PIM PLL PIT msCAN 4 or IIC msCAN 3 msCAN 2 msCAN 1 BDLC or msCAN ECT 8 CHAN 4K BYTES EEPROM

Freescale Corporate Template User Guide AD转换模块 March 2005 特点: 8/10 位精度 • 7 us, 10-位单次转换时间. • 采样缓冲放大器 • 可编程采样时间 • 左/右 对齐, 有符号/无符号结果数据 • 外部触发控制 • 转换完成中断 • 模拟输入8通道复用 • 模拟/数字输入引脚复用 • 1到8转换序列长度 • 连续转换模式 • 多通道扫描方式 © Freescale Semiconductor, Inc. 2005

A/D 寄存器 控制寄存器 状态寄存器 转换结果寄存器

A/D 控制寄存器2 ETRIGLE ETRIGP ETRIGE SCAN 描述 x 忽略外部触发,执行一次转换后停止 1 ADPU - A/D 电源使能/禁止 1 = A/D模块上电 0 = 禁止A/D,以减少功耗 AWAI - A/D 等待模式 1 = 等待模式下,转换 0 = 等待模式下,禁止转换 ASCIE - A/D 顺序完成中断使能 ASCIF - A/D 顺序完成标志位 ATDCTRL2 Address offset $0002 AFFC - A/D 快速转换完成标志位清零 1 = 快速标志位清零顺序 每次读取结果寄存器自动清零 0 = 正常标志位清零顺序 需要手动对状态标志位清零 ETRIGLE ETRIGP ETRIGE SCAN 描述 x 忽略外部触发,执行一次转换后停止 1 忽略外部触发,执行连续转换后 X 下降沿触发,每次触发,执行一次转换 上升沿触发,每次触发,执行一次转换 低电平触发,每次触发,执行连续转换 高电平触发,每次触发,执行连续转换

A/D 控制寄存器3 FIFO – 结果寄存器 FIFO 1 = 结果寄存器没有映射到转换序列 0 = 结果寄存器没有映射到转换序列 Address offset $0003 ATDCTRL3 FIFO – 结果寄存器 FIFO 1 = 结果寄存器没有映射到转换序列 0 = 结果寄存器没有映射到转换序列 转换序列长度 转换序列长度就是需要转换的通道数 比如: 通道0,1,2作为AD采集通道 则转换序列为3,即S2C=1,S1C=1 在控制寄存器5 ATD0CTL5中: 设CC CB CA = 0 0 0,转换序列从通道0开始;ATD0DR0,ATD0DR1,ATD0DR2存放转换结果 设CC CB CA = 0 1 0,转换序列从通道2开始。 仍然是ATD0DR0,ATD0DR1,ATD0DR2存放转换结果

A/D 时钟选择/ 预分频 采样时间选择 • 最大 A/D 时钟 = 2.0 MHz (最小 A/D CLOCK = 0.5 MHz) ATDCTL4(HI) - A/D 控制寄存器 Address offset $0004 采样时间选择 SRES8 - A/D 精度选择 1 = 8 位 0 = 10位 SMP [1:0] 采样时间 00 2 A/D时钟周期 01 4 A/D时钟周期 10 8 A/D时钟周期 11 16 A/D时钟周期 5位 模数计数器预分频器 - 由A/D控制寄存器中的PRS[4:0]控制 - 分频系数从2到64 - 如果 PRS[4:0] = 0, 预分频不起作用 注: 设置PRS[4:0]时, A/D Clock 不能大于 2 MHz. PRS0-PRS4 除2 5位 模数计数器 预分频器 系统时钟 A/D 时钟

转换时间 A/D 时钟 转换时间计算举例: (假设 2MHZ A/D 时钟频率) 例 1: 总是2 个时钟周期 CCF标志位置位,如果在8通道模式下,序列结束 2, 4, 8, 16 时钟周期 转换时间计算举例: (假设 2MHZ A/D 时钟频率) 例 1: 转换时间 = Initial Sample Time + Programmed Sample Time + Resolution Period = 2 + 2 + 10 = 14 A/D Clocks = 7uSec 例 2: 转换时间= Initial Sample Time + Programmed Sample Time + Resolution Period = 2 + 16 + 10 = 28 A/D Clocks = 14uSec

A/D控制寄存器5 注意:对这个寄存器写操作时,将会中断当前的转换,然后重新启动新的转换序列 DJM – 对齐方式 Address offset $0005 ATDCTRL5 通道选择 0 0 0 = Chan 0 - 1 1 1 = Chan 7 SCAN – 连续转换模式 1 = 连续转换模式 0 = 单次转换 DJM – 对齐方式 1 = 右对齐 0 = 左对齐 DSGN – 符号选择 1 = 有符号 0 = 无符号 MULT – 多通道采样模式 1 = 多通道转换 0 = 单通道转换 注意:对这个寄存器写操作时,将会中断当前的转换,然后重新启动新的转换序列

Freescale Corporate Template User Guide A/D 状态寄存器 March 2005 ATDSTAT0 Address Offset $0006 ATDSTAT1 $0007 SCF – 转换序列完成标志 - 在单次转换模式时,当转换完成后置位 (SCAN = 0) 在连续转换模式时,当第一次转换完成后置位 (SCAN = 1). 当 (AFFC = 0) ,写1清零. ETORF - 外部触发覆盖标志 - 如果在转换过程中高/低电平出现,置位 FIFOR – 当结果寄存器在读出之前已经被写入时,置位 ( CCF没有清零) CC[2:0] – 转换计数器 3-位计数器指向下一个将要转换的通道 CCF7 -CCF0 – 独立通道转换完成标志位 每个相应的通道转换结束后置位, 当相应的A/D结果寄存器被读出时,清零 © Freescale Semiconductor, Inc. 2005

转换结果寄存器 左对齐数据存放格式 右对齐数据存放格式 Address Offset $0010 - $0011 - $001E - $001F //假设左对齐10位精度 Word AD_wValue; AD_wValue = ATD0DR0>>6; 右对齐数据存放格式 Address Offset $0010 - $0011 - $001E - $001F

A/D口寄存器 A T D P 注意:任何一个引脚可以用作A/D或数字输入 ATDDIEN - ATD 数字输入使能 PORTAD1 Address Offset $000F ADA7 ADA6 ADA5 ADA4 ADA3 ADA2 ADA1 ADA0 A T D P ATDDIEN - ATD 数字输入使能 注意:任何一个引脚可以用作A/D或数字输入

AD使用示例-查询方式 void AD_Init(void) //初始化 { ATD0CTL2=0xC0; //AD模块上电, 快速清零, 无等待模式, 禁止外部触发, 中断禁止 ATD0CTL3=0x20; // 每个序列4次转换, No FIFO, Freeze模式下继续转换 ATD0CTL4=0x83; // 8位精度, 2个时钟, ATDClock=[BusClock*0.5]/[PRS+1] ; PRS=3, divider=8 ATD0CTL5=0xA0; //右对齐无符号,单通道采样,通道0 ATD0DIEN=0x00; // 禁止数字输入 } void AD_GetValue(word *AD_wValue) //读取AD转换结果 *AD_wValue = ATD0DR0; //Read out the Result Register word AD_wValue; void main(void) { word i; AD_Init(); //AD初始化 DDRB = 0xFF; PORTB = 0x00; EnableInterrupts; for(;;) { while(!ATD0STAT1_CCF0); //等待转换结束 AD_GetValue(&AD_wValue); //读取转换结果 PORTB = (byte)AD_wValue; //在B口显示转换值 }

AD使用示例-中断方式 word AD_wData = 0; void main(void) { word i; AD_Init(); DDRB = 0xFF; PORTB = 0x00; EnableInterrupts; for(;;) { PORTB = (byte)AD_wData; } void AD_Init(void) { ATD0CTL2=0xC2; //AD模块上电, 快速清零, 无等待模式, 禁止外部触发, 中断开放 ATD0CTL3=0x20; ATD0CTL4=0x83; ATD0CTL5=0xA0; ATD0DIEN=0x00; } #pragma CODE_SEG NON_BANKED void interrupt 22 Int_AD0(void) AD_wData = ATD0DR0; //Read out the Result Register

AD使用例程 void AD_Init(void) //AD初始化 { //控制寄存器2: 上电,标志位快速清零,开中断 //控制寄存器2: 上电,标志位快速清零,开中断 ATD0CTL2 = (ATD0CTL2_ADPU_MASK|ATD0CTL2_AFFC_MASK|ATD0CTL2_ASCIE_MASK); //控制寄存器3:转换序列长度为3,FIFO模式 ATD0CTL3 = (ATD0CTL3_S2C_MASK|ATD0CTL3_S1C_MASK|ATD0CTL3_FIFO_MASK); //控制寄存器4: ATD0CTL4 = (ATD0CTL4_SRES8_MASK|ATD0CTL4_PRS1_MASK|ATD0CTL4_PRS0_MASK); //控制寄存器5: ATD0CTL5 = (ATD0CTL5_DJM_MASK|ATD0CTL5_SCAN_MASK|ATD0CTL5_MULT_MASK); ATD0DIEN=0x00; // 禁止数字输入缓冲 } #pragma CODE_SEG NON_BANKED //中断服务程序 void interrupt 22 Int_AD0(void) AD_wData[0] = ATD0DR0; //将结果寄存器中的值存放到数组中 AD_wData[1] = ATD0DR1; //将结果寄存器中的值存放到数组中 AD_wData[2] = ATD0DR2; //将结果寄存器中的值存放到数组中 #pragma CODE_SEG DEFAULT_ROM

word AD_wData[3]; //全局变量存放 AD0,AD1,AD2的结果 void main(void) { dword i; AD_Init(); //AD 初始化 DDRB = 0xFF; PORTB = 0x00; AD_wData[0] = 0; //全局变量初始化 AD_wData[1] = 0; AD_wData[2] = 0; EnableInterrupts; for(;;) { if(ATD0CTL2_ASCIE == 0) //采用查询方式 while(!ATD0STAT1_CCF0); //等待通道0转换结束 AD_wData[0] = ATD0DR0; //读通道0的转换结果 while(!ATD0STAT1_CCF1); //等待通道1转换结束 AD_wData[1] = ATD0DR1; //读通道1的转换结果 while(!ATD0STAT1_CCF2); //等待通道2转换结束 AD_wData[2] = ATD0DR2; //读通道2的转换结果 } PORTB = (byte)AD_wData[0]; //用PORT B来显示AD0的值 for(i=0;i<0xFFFFF;i++); //delay PORTB = (byte)AD_wData[1]; //用PORT B来显示AD1的值 PORTB = (byte)AD_wData[2]; //用PORT B来显示AD1的值