找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4999|回复: 2
打印 上一主题 下一主题
收起左侧

Proteus仿真ARM7 LPC2101 AD转换器源程序

[复制链接]
跳转到指定楼层
楼主
调试时首先观察待测电阻是否工作正常。在电阻的变化端插入电压探针,具体方式在
左边工具探针中选取电压探针(Voltage)运行仿真,点击电阻,观察探针电压是否在不断
变化。
调试流程


绘制 ADC 接口电路
1.在器件库中找到 ADC 转换芯片(ADC0801),如图连接 ADC0801 和总线信号。其中 ADC0801数据线连接数据总线最低字节(D0-D7),读写信号接总线读写信号(NRD,NWR)。其他信
号请按照下图进行连接。
2.片选信号 AD_CS 接译码电路输出(采用部分译码,对应地址为 0x03XXXXXX)。
3.连接模拟输入,在器件库找到可变电阻(POT-HG)。
完成 ADC0801 工作流程编程
现在我们需要用程序控制 ADC 正常工作。主要操作就是先写一次,作为 AD 转换触发信
号,再读取转换结果。为了保证结果能够显示在终端上,我们是使用的上节课设计的 8251
串行通信口。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


LPC2101源程序如下:
  1. area init,code,readonly
  2. entry
  3. ldr r3,=0x04000000 ;//芯片 8251 数据端口
  4. ldr r4,=0x04000004 ;//芯片 8251 控制、状态端口
  5. ldr r7,=0x03000000 ;//芯片 AD0801 的端口地址
  6. ldr r6,=0x0
  7. ;//8251 初始化 1. 首先向控制端发送 3 个 0
  8. ldr r1,=0x0
  9. strb r1,[r4]
  10. ldr r1,=0x0
  11. strb r1,[r4]
  12. ldr r1,=0x0
  13. strb r1,[r4]
  14. ;//2. 软件复位
  15. ldr r1,=0x40
  16. strb r1,[r4]
  17. ;//3. 方式控制字
  18. ldr r1,=0x4d ;//0b01001101 1 位停止位 无校验 8 位数据 波特率系数*1
  19. strb r1,[r4]
  20. ;//4. 命令控制字
  21. ldr r1,=0x01;//0b00000001 发送使能
  22. strb r1,[r4]
  23. ;//查询式输出
  24. lp
  25. ldr r1,[r4]
  26. tst r1,#0x01;//读状态,检查 TxRdy 是否准备好
  27. beq lp
  28. str r2,[r7]
  29. ldr r2,[r7]
  30. str r2,[r3]
  31. Delay
  32. add r6,#1
  33. cmp r6,#0x2000
  34. bne Delay
  35. ldr r6,=0x0
  36. b lp
  37. end
复制代码

所有资料51hei提供下载:
AD转换器.zip (106.29 KB, 下载次数: 39)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:396782 发表于 2020-4-3 19:46 | 只看该作者
有没有C语言版本
回复

使用道具 举报

板凳
ID:662566 发表于 2020-6-10 21:06 来自手机 | 只看该作者
程序很完整,但是仿真我有点不会用♀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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