打印
[国产单片机]

Proteus仿真NTC测温(义隆单片机)

[复制链接]
10490|35
手机看帖
扫描二维码
随时随地手机跟帖
沙发
谈的元| | 2007-11-16 18:26 | 只看该作者

加油啊

使用特权

评论回复
板凳
aolin| | 2007-11-17 09:31 | 只看该作者

自己做的EM78 VSM?

没发现PROTEUS有支持义隆,兄弟自己做的吗?
厉害!

使用特权

评论回复
地板
McuPlayer|  楼主 | 2007-11-17 10:12 | 只看该作者

义隆的VSM是自己做的

但是现在的器件设定是TTL的,要改CMOS的。
另外义隆core的这个单片是随手定义的,P6是8个Output,P5是3个IO

这个可以跟我们开发的IDE联机调试,就像Keil+Proteus那样

使用特权

评论回复
5
McuPlayer|  楼主 | 2007-11-17 14:50 | 只看该作者

初步OK了,现附上:原理图+ASM文件+VSM模型

数码管闪动的两个字节分别是标准电阻和热敏电阻(用可调电阻模拟),充电循环次数。
通过这两个数查表,就可以测得温度。

P6是8个Output,P5是3个IO
目前这个版本只可运行CDS文件,不可以源代码级调试。

附件在本楼首层下载!

使用特权

评论回复
6
McuPlayer|  楼主 | 2007-11-17 18:34 | 只看该作者

看谁能猜对

示波器的两个波形是分别是P50和P52的波形
猜下为什么P50每隔一个负脉冲就有一个电容充电的波形?
我困惑了一个下午的,刚弄明白,可以踏实的吃晚饭了。

使用特权

评论回复
7
谈的元| | 2007-11-17 23:58 | 只看该作者

不错

使用特权

评论回复
8
etual| | 2007-11-18 19:35 | 只看该作者

多手注释了一下,楼主来看看俺猜的对不对?

PC    equ    0x02
kk    equ    0x08
LCDAddr    equ    0x0A
LCDDate    equ    0x0B
P5    equ    0x05
P6    equ    0x06
;;=================================================================================================
TestBegin:

Loop:
    mov    A,kk            ; 数码管显示
    mov    P6,A
    mov    A,@0xF0
    call    delay

    mov    A,@0xFB         ; 放电
    iow    P5
    clr    P5              ; P52为输出口,然后置低电平,可以非常快速的放电

    mov    A,@0x10         ; 延时一下保证充分放电
    call    delay

    mov    A,@0xFE         ; 切换P50口为输出口,准备充电(这个是参考用的标准电阻,一般用5环)
    iow    P5
    mov    A,@0x01         ; 置1,高电平,对电阻R1充电
    mov    P5,A
/*
不断的读端口,因为RC充电需要时间,所以不同电阻充电时间不同,这个就是普通端口测NTC的原理
不过这里我有问题问一下,如果这个过程发生中断怎么办?误差会相当的大
另外,KK只是一个 8位的计数器,如果计数溢出怎么办?
如果两次测试数据位于 255 两侧,例如,这次是 260 ,则因为溢出而重置为 5
而下一次测出为 250 ,那么这两个数据就“囧”了
*/
    clr    kk
LL:    jbc    P5,2            
    jmp    Loop1           
    inc    kk
    jmp    LL

Loop1:
    mov    A,kk            ; 数码管显示
    mov    P6,A
    mov    A,@0xF0
    call    delay

    mov    A,@0xFB         ; 放电,跟上面一样
    iow    P5
    clr    P5
    mov    A,@0x10
    call    delay

    mov    A,@0xFD         ; 这次轮到 P51 为输出口了,因为我们需要对代测电阻充电
    iow    P5
    mov    A,@0x03         ; P51高电平,RV 立刻充电,然而楼主顺便将P50也置1了,
                                ; 所以示波器会看到立刻变成高电平,而不是充电
    mov    P5,A

    clr    kk
LL1:
    jbc    P5,2            ; 跟上面一样,等待高电平,计数。
    jmp    Loop
    inc    kk
    jmp    LL1

delay:
    mov    kk,A
delay_L:
    djz    kk
    jmp    delay_L
    ret

使用特权

评论回复
9
etual| | 2007-11-18 19:40 | 只看该作者

另外多口一下

0.1uF 的电解电容误差很大的。
建议用 104 或者 103 的独石电容,效果不错 ^_^
这个只是测试,实际用的话,后面还有很大堆乘法除法运算哦~~
另外
这个东西原理简单,但是做起来很郁闷的哦,用仿真器也能让你晕
几天,hoho~~

使用特权

评论回复
10
McuPlayer|  楼主 | 2007-11-19 12:06 | 只看该作者

确实有很多运算

我这里只是测了两个计数值,没有运算。

另,P50一个半方波一个充电波形的原因如下:
“顺便将P50也置1”在此之前把P50设置为Input,也就是高阻了。
P50实际不受单片机控制了,P50和P52通过R1相连,P50高阻后就跟随P52了,所以是充电的波形。
而P50输出的时候,波形与单片机的P50输出是一致的

使用特权

评论回复
11
figoxwm| | 2007-11-19 12:55 | 只看该作者

强人~~~不会加那个DLL.....

强人~~~我不会加那个DLL.....仿真不了

使用特权

评论回复
12
McuPlayer|  楼主 | 2007-11-19 15:34 | 只看该作者

直接仿真就可以了

DLL就在原理图的目录下,不用专门设定
不过,我是在Proteus6.9SP4下测试的

使用特权

评论回复
13
figoxwm| | 2007-11-20 08:43 | 只看该作者

怪不得,我是7.1版本的....

这版本可能有问题吧

使用特权

评论回复
14
kixh| | 2007-11-20 19:54 | 只看该作者

PROTEUS就是好

好用啊~~谢谢提供

使用特权

评论回复
15
bob.xue| | 2007-12-21 18:13 | 只看该作者

厉害啊

其他单片机也能这样做吗?

使用特权

评论回复
16
McuPlayer|  楼主 | 2007-12-22 15:16 | 只看该作者

是的

其它型号的单片机后续也可以支持

使用特权

评论回复
17
gtw| | 2008-2-28 20:39 | 只看该作者

有位伙计编的一款单片机的dll在7.x下就行

只是不支持单步调试,不知道为什么支持地这么好?

郁闷,我以前编的一个简单的dll在7.x下都不行了。

不知道mcuplayer有没有解决?

使用特权

评论回复
18
hn04| | 2008-10-7 14:16 | 只看该作者

怎么下载不下来呀?

使用特权

评论回复
19
大金| | 2009-9-7 10:37 | 只看该作者
请楼主提供下载,我这里下不了,我的email:hykiing311@126.com

使用特权

评论回复
20
大金| | 2009-9-7 10:39 | 只看该作者
写错了email:hyking311@126.com
楼主有QQ吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

338

主题

7307

帖子

26

粉丝