- 1、本文档共126页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[例9-5]用IAP15W4K58S4控制TLV5616输出正弦波 单片机的串行口工作于方式0,在RxD脚发送8位数据,同时TxD脚上送出同步时钟。 需要连续两次写入(两个字节)才能写一个完整的字到TLV5616。 输出到DAC的数据是正弦波数据(表格中), 一个周期的32个正弦波数据(双字节数) 保存在SINEVALS为首地址的单元中(共64个字节) 。 * [例9-5]用IAP15W4K58S4控制TLV5616输出正弦波 ROLL_PTR记录输出到DAC的一个正弦波波形数据(32字, 64字节)的字节偏移地址。 ROLL_PTR存储单元内的值就是输出到DAC的字节数个数 - 1。 * 1)SM0/FE: PCON寄存器中的SMOD0=1时,该位用于帧错误检测,当检测到一个无效停止位时,FE置1。它必须由软件清零。 PCON寄存器中的SMOD0=0时, SM0/FE位和SM1一起指定串行通信的工作方式。(如下表) 表中SYSclk为振荡器频率 (1)串口1控制寄存器SCON 位号 D7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 位名称 SM0/FE SM1 SM2 REN TB8 RB8 TI RI 8.2.1 单片机的串行接口 * (1)串口1控制寄存器SCON 表8-1 串行通信的工作方式 * M1 M0 工作方式 功能说明 0 0 0 16位自动装载的定时器/计数器 0 1 1 16位定时器/计数器 1 0 2 可自动装入的8位计数器 1 1 留作备用 1)M1和M0:方式选择控制位 表7-1 定时/计数器的方式选择 TMOD 定时器工作方式控制寄存器 位号 D7 D6 D5 D4 D3 D2 D1 D0 定时器名 定时器1 定时器0 位名称 GATE C/ M1 M0 GATE C/ M1 M0 * [例9-5]用IAP15W4K58S4控制TLV5616输出正弦波 MOV TH0, #0EEH ;T0做5毫秒定时 @11.0592MHz, 12T MOV TL0, #00H SETB T1 ;置FS=1, P3.5 SETB T0 ;置/CS=1, P3.4 SETB ET0 ;允许定时器0中断 SETB EA ;允许CPU中断 MOV ROLL_PTR, A ;循环计数器清“0” SETB TR0 ;启动定时器0 SJMP $ ;等待中断发生 头文件有定义: P3 DATA 0B0H ;P3口寄存器 T1 BIT 0B5H ;计数器1外输入端P3.5 T0 BIT 0B4H ;计数器0外输入端P3.4 ROLL_PTR存储单元(地址30H)内记录着输出到DAC的一个正弦波波形数据(32字, 64字节)的字节偏移地址。 还没传输数据到DAC转换 * 1) 中断允许寄存器IE 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 EA ELVD EADC ES ET1 EX1 ET0 EX0 7)ET0:定时器0中断允许控制位。 1:允许定时器0中断; 0:禁止定时器0中断。 1)EA:中断允许总控制位。 0:禁止中断系统,所有中断源的中断请求均被禁止,称为关中断。 1:允许中断系统,所有中断源的中断请求均可以被允许,称为开中断;某一个中断源的请求是否允许,还要由该中断源所对应的中断允许控制位决定。 6.2.1 中断源及其优先级管理 * [例9-5]用IAP15W4K58S4控制TLV5616输出正弦波 ;定时器0中断服务程序 T0_SER: PUSH PSW PUSH ACC CLR T0 ;将/CS置为低电平 CLR T1 ;将FS置为低电平 MOV A, ROLL_PTR ;将循环计数值装入累加器A MOVC A, @A+DPTR ;从数据表格中读高位字节 ORL A, #00H ;设置数据控制位(这里选择慢速正常非掉电方式) MOV SBUF, A ;送出高位字节 JNB TI, $ ;等待高位传输结束 CLR TI MOV A, ROLL_PTR ;将循环计数值装入累加器A INC A ;拟指向正弦波数据(字)的低位字节地址 MOVC A, @A+DPTR ;读取低位字节 MOV SBUF, A ;送出低位字节 启动数据传输过程 ROLL_PTR存着正弦波数据的偏移地址或本次中断时输出到DAC的一
文档评论(0)