




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章应用范例中断程式本章介绍以C 语言程式处理微控制器的中断事件第四章 4.7 中断服务函式中说明如何撰写中断服务函式以及注意事项必须遵照下列的规则来定义中断服务函式t 函式的返回值型态必须是void in terruptt 函式不可有参数(argume nt)t 设定中断服务函式的中断向量(interrupt vector)使用 指定中断向量t 最好不要从程式的其他地方呼叫中断服务函式t 不要在中断服务函式内做开启本中断功能(interrupt reentrance)相同的中断不要重复进入格式void in terrupt ISR_Timer(void) 0x08/定义:返回值的型态,没有
2、参数,设定中断向量为0x08C编译器会根据中断服务函式对暂存器的需要,在进入中断服务函式后,将这些暂存器的内容储存等执行完中断服务函式的工作后,再恢复先前所储存的暂存器内容最后回要被中断的地方继续执行,同时中断功能也打开,允许中断产生如果为了节省程式编码 的大小,在中断服务函式中也可不要保存某些暂存器,例如 BP, MP0, MP1.可参考第四章的4.9节关于#pragma的说明及使用.在中断服务函式中不要将自身的中断功能再打开,避免重复进入同一个中断服务函式.但是可以打开其他的中断功能,只是要特别注意两个中断服务函式有无呼叫到相同函式的状态,以致发生变数共用造成资料错误的风险.7.1.用时钟
3、控制 LED的亮与灭7.1.1目的本范例是使用时钟控制LED亮与灭的时间.亮灭的时间相同并且固定 .是以C语言撰写中断服务函式.盛群半导体股份有限公司HOLTEK SEMICONDUCTOR INCC50微电脑工具事业处部撰写人:文 件编号 程式语言及应用范例(三) 版 别 1.10日期 2007/11/14103页 共189 页7.1.2周边元件使用单颗LED 接到微控制器 HT48R10A-1 的埠A, PAO 引脚需要使用微控制器HT48R10A-1 的暂存器INTC, TMRC 与TMR 等,定义如下TMRC (Timer Con trol Register)时钟控制暂存器控制时钟的功
4、能与启动,Bit No.Lb*lFuntilon0*2PSCO-PSC2Ta define l 展 prescaker slaves, PSC2 PSCl. PS CO 000; *叶001: f|=f品如4 Or Irtc OiO.$ 62 ) / 每16 毫秒(ms) 增加一毫秒, 一秒/ 超过 16*62 = 992101112sec_count = 0 ;_pa0 A= 0x01 ;/重开始/ toggle LED,每一秒,轮流亮灭void main (void)盛群半导体股份有限公司13HOLTEK SEMICONDUCTOR INCC50微电脑工具事业处部 撰写 文件编号程式语言及
5、应用范例第106页共189 页人:(三)版别 1.10日期2007/11/142 定义变数_ton为时钟控制暂存器TMRC 的位元4, TON 控制时钟的开始或停止3 定义变数sec_cou nt记录秒数412 定义时钟中断服务函式ISR_TIMER(void)放置于位址 0x08 处6 每16 毫秒(ms) 增加一7 如果累计的毫秒数超过62次(超过16*62 = 992 毫秒,一秒)9 sec_count重设为0, 重开始计数10 toggle LED,每一秒会轮流为亮灭1223 主程式 main(void)15 将PA0 设为为输出型态,PA0 接到LED16 设定PA0 为1,熄灭LE
6、D17 设定中断控制暂存器(INTC) 的EMI及ETI,让中断致能18 设定时钟控制暂存器(TMRC), fint=fsys/256, timer mode, fsys = 4MHz, 1 clock=64us时钟频率=4M /256, clock = 1/时钟频率 =64 us19 设定时钟每隔250 clock, 产生一次时钟中断.250 * 64us = 16ms20 设定初始值21 设定 _ton = 1 ,启动时钟开始计时22 无限回圈 while(1)盛群半导体股份有限公司HOLTEK SEMICONDUCTOR INCC50微电脑工具事业处部撰写人:文 件编号 程式语言及应用范
7、例(三)版另U 1.10日期 2007/11/14第107页 共189 页7.2类比/数位转换(ADC) 的应用7.2.1目的本范例利用 HT46R63 微控制器的类比/数位转换电路(analog to digital con verter)将外界的类比讯号转换为数位,并从LCD 面板显示其值.以C语言撰写ADC 中断服务函式(ISR) 及LCD 显示程式7.2.2 周边元件LCD 可使用盛群公司HT-IDE3000 所附之LCD Simulator的液晶模拟面板档LcdDemo.lcd 及LCD各段码图案以方便调试,参阅第六章 6.7节的LCD显示HT46R63 的类比/数位转换电路,包含下
8、列的暂存器,使用前必须先设定t ADR 暂存器(22H)Bit7Bit6BitSBit4Bi口Bit2BillBitOD7D6D5D4D3D2DIDO类比讯号转换为数位的数值会储存在ADR 暂存器中.转换的数值从 0 255.t ACSR 暂存器(23H)设定A/D转换的速度Bit No.LabelFunctions01ADCSOADCSIADCSI.ADCS0:選取A/D轉換器的時鏈來源(clocksource)0,0 : fsys/20,1 : fsys/81,0 ; fsvs/32IJ 1 unsdefined2CMPLComparator control (this bit is 0
9、druing reset) 0 : disable1 : enable3-6-未使用,若葫此位元會得到“旷7TEST只在測試時使用t ADCR 暂存器(22H)选定A/D转换的输入通道,埠B 的设定及启动转 换的控制盛群半导体股份有限公司HOLTEK SEMICONDUCTOR INCC50微电脑工具事业处部撰写人:文 件编号 程式语言及应用范例(三)版 别 1.10日期 2007/11/14第108页 共189 页Bit No+LubelFunttiorts0ACSOACS2, ACSl, ACSO :選定A D的輪入通道1ACSl0,0,0; ANO2ACS20.0,1 : AN J0,1
10、,0: AN20,1 J : AN31,0,0: AN4UOJ : AN51J.0: AN6; AN73PCROPCR2, PCRl, PCRO:設定 PB7-PBO 的功能4PCRl5PCR20,0,1 :0,1,0: PB7PB6PB5,PB4tPB3PB2lANlfAN00,lft : PB71PB6tPB5TB4hFJB3,AN2tANl,AN0LQO; PB7,PB6.PB5iPB4,AN3,AN2.ANl.AN0 0J : PEi7R&PB量AN4,AN3、AN2,AN】、AN0 lJ,0: PB7,PB6tAN5,AN4tAN31AN2TANl1AN01,1,1 : /N7TAN
11、6,AN5tAN4,AN3TAN2,AN 1TAN06EOCBA/D轉換的指標(-0代表轉換結束)每當變更位元37的設定後,應該發出一個STARTKM以便 將A Dm器重铁住始匕 石盟3(礫EOUB會在不確定的狀態START啓動A/D轉換(卜1亠0啓斷4亠1 7車置A/Di?換器而且將EOCB設爲1当要做A/D 转换时,需要先选定转换通道,埠B 的设定及时钟选取之 后要将ADCR 暂存器(22H) 的位元 7 (START) 设为 0 - 1 - 0,贝U A/D 转换 器就开始做转换的动作当转换完成时,ADCR 暂存器的位元 6 (EOCB)会被清为 0, 若A/D转换的中断功能是致能的(e
12、 nable),则同时会产生中断盛群半导体股份有限公司HOLTEK SEMICONDUCTOR INCC50微电脑工具事业处部撰写人:文 件编号 程式语言及应用范例(三)版 别 1.10日期 2007/11/14第109页 共189 页如果变更转换通或埠B 的设定,则需对A/D 做初始化的动作,如下在变更埠B 设定的10 个指令周期内将 ADCR 暂存器的位元 7 (START) 设为1再清为0即可为了要利用 HT46R62 A/D 转换器的中断功能,也需要设定中断向量及中断 控制t INTC0 暂存器Bit NO.LabelFuoclien0EMICofilruls lhe山理曲偉obaii
13、 InlErrup仁 1: enabltri. 01EEIOConlruls Iheexternal Interrupt 0(1= enaWed. 0- disabled2EEI1Conibrols Ihe exkemal interrupt 11 (1 eriabled. 0 disabled3EDCentroid 伽 iinvywnt count orlntnupt |1-enabtad; 0= disabled)4EIFQExiernal tnlwrupt 0 raqul Hag (1 kDvh. 0 mac live)5EIF1EKiernal ini emu pt 1 requ&mM
14、旳(1= acve. 0= inactive)6TFTime花veM Counter erfow request flag (1= anzlive. 0= in已ctivej7Fm tuta&A cniyMusi be wTitlen as 0. olherwise mtn result In unpredictable ope ration.INTCO Register位元0 (EMI) 需要设为1,打开中断的总开关t INTC1 暂存器Bit gLabalFunctloinaETBIControl呂 the lirra base intenupt (1= enabled, 0B disab
15、ted)1EACHOohlrols the AJD oonrvetler interrupt (1= enaUed; 0= disableci)2ERT1Con td b tho ro al time clock 1 nlnr rupl (1 enabl&dl. 0 dit abled |i3Unused bl. read as P4TBFTimst*ns-oul intnupl 0 request11 act)Y 0: inactive5ADFEndof AD convwrkinkitenupt request Iteg (1* acNw; 0= tnscSw)6RTFRTC tirmfr-
16、oulinterrupt raquestactive. 0二 inactive)7Unussd bi. read a tINTCl (1EH) Regksler位元1需要设为1,将A/D 转换器的中断功能致能(enable) 盛群半导体股份有限公司HOLTEK SEMICONDUCTOR INCC50微电脑工具事业处部撰写人:文 件编号 程式语言及应用范例(三)版另U 1.10日期 2007/11/14第110页 共189 页723 电路图r Mg尸woin 二osc& right nidi*77TJj-VDOCOMO-COM3 SEGO-StiGlSV1CDVSSmmPACHPA7OSC1P
17、BCFANUPB7/AM7O9C2PCOPCZPDiWMJPDiPA-M:lOSC3PCM JNTO Ptfe IMTI PD6HMRPO7OSC4OWPN CUPP CMPO CH GOHT6RBiHT4:63OVaoiLCDPAfCL7.2.4 微控制器的架构设定(Co nfigurati on Optio ns)HT46R63 的 configuration option 设定WDT clock source : disableOSC : Ext. CrystalFsys = 4MLCD duty: 3 COMLCD segme nt: 20 segme ntsSEG7-SEG10: L
18、CD outputSEG11-SEG14:Logical outputSEG15-SEG18:Logical outputComparator : disable盛群半导体股份有限公司HOLTEK SEMICONDUCTOR INCC50微电脑工具事业处部撰写人:文 件编号 程式语言及应用范例(三)版另U1.10日期 2007/11/14第111页 共189 页7.2.5程式流程7.2.6原始程式1 #include“ ht46r63.h”2 / 标头档中定义有变数_emi =ntc0.0 , _eadi = _1e_1 (INTC1 bit1),3 / A/D转换器的暂存器_adr (0x2
19、1), _adcr (0x22), _acsr (0x23)4#defi ne adc_start_22_7/ bit 7 (START) of ADCR 暂存器5#define FSYS80x01/ ADC时钟来源及 fsys/86#defi ne CH_AN00/ ADC 转换通道7#defi ne ADC_2CH2/ ADC 总通道个数 :2, AN0 (PB0), AN1 (PB1)8char in tflag = 0 ;/ ADC 中断旗标9un sig ned char adcvalue = 0 ;/ ADC 转换后的数值10 void interrupt ADC_ISR(void
20、) 0x14/ ADC 中断服务函式,中断向量为0x1411 12intflag = 1 ;/ 设定ADC 中断旗标LCD RAM清为0,不显示打开ADC中断及总中断功能设定ADC 时钟频率,转换通道,总通道数,启动AD转换将转换完成的数值显示在LCD面板上盛群半导体股份有限公司HOLTEK SEMICONDUCTOR INCC50微电脑工具事业处部撰写人:文件编 第号 程式语言及应用范例(二)版另U1.10 日期2007/11/14112页共189 页13adcvalue =_adr ;/读取转换后的数值1415/ 启动ADC转换功能16 / adc_clk = clock source o
21、f ADC, fsys/2, fsys/8, fsys/32 (bit01 of ACSR)17 / cha nnel = channel number of AN, 0 7 (bit 02 of ADCR)18 / port_cfg = port B sett ing (bit 35 of ADCR)19 void StartADCTra ns(char adc_clk, un sig ned char cha nn el, un sig ned char port_cfg)2021_acsr = adc_clk ;/ 设疋时钟来源及频率22adcr = (port_cfg 25634 35
22、 while( count != 0 )cou nt-;36 37 /addr (IN) = LCD RAM 位址 =Ox14O+x38 / datal = 写入 LCD RAM 的资料,bit02 写入 addr, bit35 写入 addr+139 /bit 6 写入 addr+2 的 bit240 void DisplayLcd( un sig ned char addr, un sig ned char datal)41 42 LcdRamaddr - 0x140 = datal & 0x7 ;/ 取位元 0 243 LcdRamaddr - 0x140+1 = (data1 3) &
23、 0x7 ;/ 取位元 3544 LcdRamaddr -0x140+2 = (data 6) & 0x7) 2 ; / 取位元 6, 在左移 2 位盛群半导体股份有限公司HOLTEK SEMICONDUCTOR INCC50微电脑工具事业处部撰写人:文 件编号 程式语言及应用范例(三)版 别 1.10日期 2007/11/14第113页 共189 页46/主函式47void1mai n(void)4849int k ;5051for( k=0 ; k 20 ; k+ )LcdRamk = 0 ;/将LCD记忆体清为52_emi = 0 ;/停止所有中断的发生53_eadi = 1 ;/ AD
24、C 中断功能生效54_emi = 1 ;/所有中断功能生效55in tflag = 0 ;/ ADC 中断旗标56StartADCTrans(FSYS8, CH_AN0, ADC_2CH) ;/ 开始 ADC57while(1)/无限回圈,等候ADC中断产生5859if( in tflag =:=1 ) break ;/ ADC中断产生,跳出回圈450, LCD 不显示转换606162636465666768/将转换好的数字显示于k = adcvalue / 100 ;DisplayLcd(0x146, digitk); k = (adcvalue / 10) % 10 ;DisplayLcd(0x143, digitk); k = adcvalue % 10 ;/DisplayLcd(0x140, digitk
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 荆州理工职业学院《中医养生康复学》2023-2024学年第二学期期末试卷
- 山东省临沂市莒南县市级名校2024-2025学年初三模拟考试(二)英语试题试卷含答案
- 南宁学院《书法艺术》2023-2024学年第一学期期末试卷
- 江苏农牧科技职业学院《中医典籍导读》2023-2024学年第一学期期末试卷
- 2025年图书馆信息学专业考试试题及答案
- 2025年营销专员职业能力考试试题及答案
- 2025年数字媒体艺术专业入学考试试卷及答案
- 四川传媒学院《景观设计方法Ⅰ》2023-2024学年第二学期期末试卷
- 内蒙古科技大学《资源加工工程设计》2023-2024学年第一学期期末试卷
- 天津海运职业学院《英语新闻选读》2023-2024学年第一学期期末试卷
- 室间质评不合格原因分析及纠正措施表
- 浙江省第二批重点监控合理用药药品目录
- 语言文化探索智慧树知到答案章节测试2023年华东理工大学
- 泰勒斯威夫特英文介绍演示文稿
- 通信机房气体灭火系统解决方案(机房消防工程)
- 建构主义理论课件
- 超星尔雅学习通《带您走进西藏》章节测试答案
- 施工监理投标报价单
- 大学本科毕业设计毕业论文-网上药店管理系统的设计与实现
- DBJ∕T 13-264-2017 福建省石砌体结构加固技术规程
- ISO22000和ISO9001食品质量安全管理体系文件管理手册及程序文件合集(2020年版)
评论
0/150
提交评论