矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: pdshyh

关于单片机c语言延时计算请教

[复制链接]
     
 楼主| 发表于 2023-1-11 11:43:35 | 显示全部楼层
闻太师 发表于 2023-1-10 19:16
增不增加寄存器看情况,比如你自己写汇编代码,你可以增加一个寄存器。或者你也可以现在低8位从ram或其他 ...

感谢闻太师的详细讲解,知道了,又在网上搜了单片机的相关信息,搜到单片机框图后面解说三部分1运算器(ALU部分框图附后),2控制器没搜到框图,3主要存储器,看运算器框图和单片机框图没有关联 又回到前面的问题,51是8位机,8位加法,数据从哪里来的,I/O输入数据到那个存储器,在到运算器进行运算。谢谢。
ALU.png
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-1-11 16:46:03 | 显示全部楼层
延时.png
delay(5)*2,循环数据类型int i ;结果15ms,选用unsigned char i;结果10ms,差别不小。
回复 支持 反对

使用道具 举报

     
发表于 2023-1-11 17:40:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-1-11 18:14:40 | 显示全部楼层
闻太师 发表于 2023-1-11 17:40
多之前说的有一些不够准确,借着这个机会修正一下。查一下51的ADD指令的用法可知,被加数必然放大累加器A ...

非常感谢闻太师老师,详细通俗易懂的讲解了单片机进行运算的数据存储的几种方式方法,单片机计算器框图在早先计算机工作原理就看到了,一知半解,看到单片机框图再看计算器框图有不搭边的感觉,受益匪浅,非常感谢。
-
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-1-11 18:20:58 | 显示全部楼层
本帖最后由 pdshyh 于 2023-1-11 18:35 编辑

阶梯信号.jpg
感谢各位老师的帮助阶单片机的梯信号和方波(准备用积分电路转换锯齿波)做出来了,发现问题,台阶数4个不够8个,而且第三台阶时宽时窄怎么回事。谢谢。
原理图.png
借用坛友老师的原理图
主程序.png
延时.png

jtxhao1.rar

28.81 KB, 下载次数: 12

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-1-11 20:31:02 | 显示全部楼层
本帖最后由 pdshyh 于 2023-1-11 20:32 编辑

少一行延时

少一行延时

修正后

修正后
第三台阶宽度变化查到了,有一行少了延时语句,已经修改,台阶数量还是有问题,是不是R2R网络电阻问题?
回复 支持 反对

使用道具 举报

     
发表于 2023-1-11 23:05:25 来自手机 | 显示全部楼层
pdshyh 发表于 2023-1-11 20:31
第三台阶宽度变化查到了,有一行少了延时语句,已经修改,台阶数量还是有问题,是不是R2R网络电阻问题?

这个直接用范例程序,复制粘贴就ok了,要么用示波器自己论证语句的执行返回时间

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-1-12 08:54:16 | 显示全部楼层
本帖最后由 pdshyh 于 2023-1-12 09:43 编辑
老坛友 发表于 2023-1-11 23:05
这个直接用范例程序,复制粘贴就ok了,要么用示波器自己论证语句的执行返回时间


感谢指点,通过少一个延时看,8个台阶都有了就是第5台阶回零了,测量R/2R网络电阻阻值也对。平台时间25ms和仿真10ms大了不少
DS1Z_QuickPrint4.png
示波器测量阶梯信号和P1^0~P1^2口信号发现P1^2口一直高电压,想象结果相近。
换了块单片机烧录结果一样,是不是单片机供电没有加去耦电容,还是单片机I/O口驱动能力差。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-1-14 17:10:48 | 显示全部楼层
O(∩_∩)O哈哈~发现P1^2在前面设置为OUT2=P2^2,已经修改为OUT2=P1^2, ,问题找到了。参照sjp老师的阶梯信号和方波信号基本完成,想用计时器+中断延时或只用计时器延时做阶梯信号和方波信号,网上搜了,2个实例,
中断.png
中断+计时器
计时器.png
只用计时器。TF0=1溢出CNT++累加1次,到100结束1S(定时器10ms)理解。
中断+计时器,

中断2.png
CNT++怎么加?定时器和中断设置文件名和CNT++文件名看不出有关联
请教这个中断信号怎么到CNT++,谢谢。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-1-15 10:33:35 | 显示全部楼层
pdshyh 发表于 2023-1-14 17:10
O(∩_∩)O哈哈~发现P1^2在前面设置为OUT2=P2^2,已经修改为OUT2=P1^2, ,问题找到了。参照sjp老师的阶梯信 ...

原来interrupt1是定时器0  ,前面函数名字随便写,过去也看过,没理解。
中断.jpg
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-1-15 17:04:18 | 显示全部楼层
本帖最后由 pdshyh 于 2023-1-15 17:47 编辑

DS1Z_QuickPrint6.png DS1Z_QuickPrint7.png
阶梯信号和方波一个是用延时函数,一个比葫芦画瓢还没太弄明白的定时器中断,计算的是一个台阶10ms,结果是100ms多,可能定时器初值算错了。
TL0 = (65536-54253)%256;                //设置定时初值
        TH0 = (65536-54253)/256;                //设置定时初值
运行.jpg
P0^3输出LED灯显示阶梯信号交替情况,忽略P0特性没有驱动源需要上拉电阻,又折腾才点亮。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-1-21 08:50:26 | 显示全部楼层
pdshyh 发表于 2023-1-11 11:43
感谢闻太师的详细讲解,知道了,又在网上搜了单片机的相关信息,搜到单片机框图后面解说三部分1运算器(A ...

还是单片机框图比较准确,又学习了知道寄存器也是RAM部分,寄存器是特殊功能寄存器区(SFR区)。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-28 07:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表