请问在单片机C语言编程中,用delay延迟的话,1秒程序是什么?单片机晶振为12MHZ 20

voiddelay(){for(x=0;x<A;x++)for(y=0;y<110;y++);}如果这个程序是延迟1秒,请问A是多少?单片机晶振为12MHZ,怎么算的?最... void delay()
{
for(x=0;x<A;x++)
for(y=0;y<110;y++);
}
如果这个 程序是延迟1秒,请问A是多少?单片机晶振为12MHZ,怎么算的?最好能详细说明。
谢谢!!!
展开
 我来答
意法半导体(中国)投资有限公司 2020-01-15
展开全部
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
聚耍狠真元22
推荐于2017-12-16 · TA获得超过487个赞
知道小有建树答主
回答量:322
采纳率:0%
帮助的人:98.9万
展开全部
在Keil里仿真的话,在配置里把晶振调成12MHz,然后在调用delay函数的地方设置一个断点,开始调试程序,运行到断点处,注意程序左边有一个记录当前寄存器和一些状态的窗口,其中,里面有一个是专门记录当前运行了多少时间的变量,记下当前时间T1,然后按F10(不进入子函数)调试,再记录当前时间T2,则延时=T2-T1。多试几个A,差不多调到1s就够了。我一般都这么调。
你要想明白其中原理,想自己算的话,你就看看delay的汇编代码段自己算吧。
追问
但是我不会keil软件仿真调试,你可以教我算的方法吗?晶振12M,谢谢!!
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
dong20dong10
2011-06-21 · 超过15用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:0
展开全部
一条指令需要由12个振荡周期(既晶振振荡周期)组成,即晶振频率12分频,也就是执行一条指令的最高频率1MHz,则对应周期为1us。延时程序执行一次循环的时间为1us,则延迟1s需要循环1000*1000次。所以你这样写是做不到延迟1s的,可以让A=1000,再第二个for循环1000次。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
VegetablesXs
2011-06-21
知道答主
回答量:6
采纳率:0%
帮助的人:3.7万
展开全部
这个还得跟单片机有关系的,比如用的是CISC的单片机和RISC的算法就不太一样,你首先要确定一个指令周期的时间,比如PIC的单片机,一个指令周期一般为T=1/(晶振频率/4),然后再系统无中断程序的情况下,那你上面的 A = 1/(T*110)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fy1012025375
2011-06-20 · TA获得超过115个赞
知道答主
回答量:224
采纳率:0%
帮助的人:105万
展开全部
用keil仿真 调试一下 如果要求精确就用中断
追问
但是我不会keil软件仿真调试,你可以教我算的方法吗?晶振12M,谢谢!!
追答
编译连接  过后   点击工具栏中的  像放大镜一样的按钮     
然后 设置断点 就是双击那一排 变为红色就是正确了 断点就是 程序运行到那就停了 设置好了 第一个 复位 全速运行 暂停 跟踪单步
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式