找回密码
 立即注册

QQ登录

只需一步,快速开始

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

用学习板随便写的,大家交流下。

[复制链接]
跳转到指定楼层
楼主
ID:18761 发表于 2009-12-16 19:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

/************************************************
跳线设置:J2的23端插上跳线帽,双排针除PSEN外全部插上,J7拔掉
晶振:11.0592M
显示效果:
         1,在Q9上插入光敏或者热敏电阻,在数码管上显示数字量
        如用手遮住Q9上的光,则可看到数字的变化
相关知识点:
         1,类似ADC0804数模转换的操作
************************************************/

#include"AT89x52.h" 
#define uint unsigned int
#define uchar unsigned char

sbit ADC0804_SC=P2^0;
sbit ADC0804_RD=P3^7;
sbit ADC0804_WR=P3^6;


sbit DUAN=P2^6;     //74HC573的LE端    LED的段选端
sbit WEI=P2^7;      //74HC573的LE端    LED的位

void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}

void adc0804_start()           //AD0804的启动函数
{
 ADC0804_WR=1;
 ADC0804_WR=0;
 ADC0804_WR=1;
}


main()
{
 uchar ADC0804_data;
 ADC0804_SC=0;                 //让SC一直为低    
          WEI=1;
          P0=0xff;
 WEI=0;            
 while(1)
 {
  adc0804_start();          //启动ADC0804
  delay(5);                 //延时 
  ADC0804_RD=0;             //RD为低
  delay(5);                 //延时
  ADC0804_data=P1;          //将ADC0804的数据传出
  delay(5);                 //延时
  ADC0804_RD=1;              //RD为高
  delay(5);                 //延时
  P0=ADC0804_data;
  
   }                            //这个函数在原来的动态扫描中直接调用就行了
}


[此贴子已经被作者于2009-12-16 19:32:41编辑过]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:18761 发表于 2009-12-16 19:35 | 只看该作者
以前程序是将光灭电阻返回的值给数码管。我把他给发光二极管。一会把数据给1602液晶看行不?先焊几个脚。哈哈

[此贴子已经被作者于2009-12-16 19:43:37编辑过]
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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