找回密码
 立即注册

QQ登录

只需一步,快速开始

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

adc0809模数转换单片机源码

[复制链接]
跳转到指定楼层
楼主
ID:294143 发表于 2018-3-19 17:27 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
adc0809模数转换设计,学课设计,自己写的
单片机源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. //各数字的数码管段码(共阴)
  5. uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  6. sbit CLK=P3^3;   //时钟信号
  7. sbit ST=P3^0;   //启动信号
  8. sbit EOC=P3^7;   //转换结束信号
  9. sbit OE=P3^6;  //输出使能
  10. sbit a=P2^0;
  11.         sbit b=P2^1;
  12.                 sbit c=P2^2;



  13. //延时
  14. void DelayMS(uint ms)
  15. {
  16. uchar i;
  17. while(ms--) for(i=0;i<50;i++);
  18. }
  19. //显示转换结果
  20. void Display_Result(uchar f)
  21. {
  22. uchar d=(f-57)/4;
  23. a=1;
  24. b=1;
  25. c=0;

  26.   
  27.    P0=DSY_CODE[d/100];
  28. DelayMS(1);
  29.            a=1;
  30. b=0;
  31. c=1;
  32.    

  33. P0=DSY_CODE[d%100/10];
  34. DelayMS(1);
  35. a=0;
  36. b=1;
  37. c=1;
  38. P0=DSY_CODE[d%10];
  39. DelayMS(1);
  40.             }
  41. //主程序
  42. void main()
  43. {
  44. TMOD=0x02; //T1 工作模式 2
  45. TH0=0x14;
  46. TL0=0x00;
  47. IE=0x82;
  48. TR0=1;

  49. while(1)
  50. {
  51. ST=0;ST=1;ST=0;    //启动 A/D 转换
  52. while(EOC==0);     //等待转换完成
  53. OE=1;

  54. Display_Result(P1);
  55. OE=0;
  56. }
  57. }
  58. //T0 定时器中断给 ADC0808 提供时钟信号
  59. void Timer0_INT() interrupt 1
  60. {
  61. CLK=~CLK;
  62. }
复制代码

所有资料51hei提供下载:
ad转换数码管显示.zip (789 Bytes, 下载次数: 13)


评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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