这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机应用编程技巧100问(转)

共35条 4/4 |‹ 1 2 3 4 跳转至
工程师
2008-04-02 09:26:43     打赏
31楼
94. 单片机对modem要进行哪些初始化操作? 


答:一般单片机的MODEM通讯必须要有两个背景知识,一个是AT命令集,另
一个是通用非同步接收发送器(UART)。 

①AT命令集 

下面介绍我通讯程式例子中涉及到的AT命令。

Dn:拨号命令。该命令使MODEM立即进入摘机状态,并拨出跟在后面的
号码。D命令是基本的拨号命令,它受到其他命令的修饰可构成MODEM何时
拨号以及如何拨号等操作。 

T:音频拨号。例如,ATDT8886666,其中8886666为电话号码。 

P:脉冲拨号。例如,ATDP8886666,其中8886666为电话号码。 

,:标准暂停。我们常常碰到拨打外线电话时需要暂停一下,等听到二次拨
号音(外线)之后才能再拨后续的号码。缺省时暂停时间为2s(秒),它由S8寄存器
指定。 

Sn:表示MODEM内部的寄存器。 

S0:自动回应。如果要求MODEM具有自动回应特性,则应该预先将MODEM
的S0寄存器设置为非0。 

S8:逗号拨号修饰符的暂停时间。该寄存器决定了当MODEM在拨号中遇


到逗号(,)时应该暂停的时间。 

②通用非同步接收发送器UART 

深入理解UART内部结构以及内部寄存器各位的含义,详细了解资料发送
和接收的过程,有助于编写出高效、稳定的程式。一般介绍编写基本通讯程式需
要知道的寄存器。实际的ADDRESS由具体接线决定。 

<1>串列传输速率除数锁存器(LSB、MSB) 

在通讯之前要进行一些参数初始化,串列传输速率是首先应该考虑的一项。
该寄存器是一个16位的寄存器,分为低8位(LSB)和高8位(MSB)寄存器。 

另外单片机访问的是串列传输速率除数锁存器LSB/MSB。一般常用的工作
频率是1。8432MHz。这个频率除以16就是串列传输速率的时钟频率,用于控
制发送和接收资料的速度。 

下面给出串列传输速率除数锁存器值的计算公式: 

串列传输速率除数锁存器值=工作频率/(16×期望串列传输速
率)=1843200/(16×期望串列传输速率) 

<2>接收缓冲寄存器和发送保持寄存器(transmit and receive holding register) 

读操作单片机访问接收缓冲寄存器(RHR),写操作单片机访问发送保持寄存
器(THR)。 

<3>中断允许寄存器(interrupt enable register) 

<4>FIFO控制寄存器(FIFO control register) 

资料发送和接收模式的选择。常用的两种模式:FIFO和DMA。其中DMA
又有两种模式DMA的模式0、DMA的模式1可供选择。 


工程师
2008-04-02 09:27:36     打赏
32楼
95. 我使用的单片机是AT89C51,试过用弹出指令强行返回中断的方法,确
实能够返回主程序,具体做法是:首先将堆栈中的地址弹出,然后压入主程
序中新的地址,最后执行RETI指令就可以返回到该地址了。如果弹出指令
执行完后直接用跳转指令而不通过RETI指令也能返回到主程序,但下次中
断来时将不能再次响应。请问是从被嵌套的高优先级中断程序中怎样返回主
程序,是不是还必须得通过最低级中断才能返回。要是直接返回的话,是否
下次中断还能够正常响应? 


答:对于51系列的单片机而言,当中端响应发生时,会将相应的优先级有效触
发器职位;当退出中断时,执行RETI,单片机又自动将优先级有效触发器清0。
因此,如果直接使用跳转指令从中断子程序出来的话,单片机没有清0优先级有
效触发器,下一次中断发生时就不能响应了。 

如果要从高优先级中断程序返回主程序的话,必须执行两条RETI指令,才
可以清除高/低优先级有效触发器。具体的程序可以是: 

MOV DPTR, #LABLE1 

POP ACC ;将高优先级子程序返回地址出栈 

POP ACC 

PUSH DPL ;将LABLE1地址入栈 

PUSH DPH 

RETI 

LABLE1: 

POP ACC ;将低优先级子程序返回地址出栈 

POP ACC 


MOV DPTR, #LABEL2 

PUSH DPL ;将LABLE2,即需要返回的主程序地址入栈 

PUSH DPH 

RETI 


工程师
2008-04-07 18:00:51     打赏
33楼
很经典哦

工程师
2008-04-08 15:45:35     打赏
34楼
讲的非常系统啊!

菜鸟
2008-04-11 10:40:35     打赏
35楼



本开发板是针对C8051F020单片机(SOC)而开发的,实现了C8051F020单片机片上的全部资源,并集成了中文字库,USB主从通信,以太网通信,UCOS-II嵌入式系统移植源码。我们编写了所有功能的测试程序,使用方便。使用该开发板能使开发者迅速掌握C8051F020单片机的软硬件设计,缩短产品的开发周期。

软件例程简介:

 

(1) 软件延时例程,I/O操作LED闪灯例程;
(2) AT24C02读写例程,实时时钟设置显示例程;
(3) 串行通信例程;
(4) LCD显示例程;
(5) 812AD转换例程,88AD转换例程,212DA转换例程;
(6) 4*4 轻触键盘驱动例程;
(7) 中文字库下载例程,读取显示例程;
(8) CH372V USB从机通信例程;
(9) CH375V USB主机通信例程;
(10)CP2200 10M以太网通信例程;
(11)嵌入式操作系统UCOS-II 移植程序源码例程;

 

备注:

其他开发板:{ML-F020(工业控制板) 、ML-F020(C8051F020开发板)、ML-F120(C8051F120开发板) 、ML-040(C8051F040开发板) 、ML-F410(C8051F410开发板) 、ML-CP2200/F340(CP2200  C8051F340开发板) 、ML-F350EK(C8051F350学习板) 、ML-F320(C8051F320开发板) 、ML-F060(C8051F060评估板) 、ML-F310(C8051F310评估板)}其他详细息见www.mlarm.com 

 

联系方式:TEL:029-88223597;MOB:13572843597;QQ:26876523;MSN:mldzkj@hotmail.com MAIL:mldzkj@163.com 王小姐)

 

 


共35条 4/4 |‹ 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]