数码之家

 找回密码
 立即注册
搜索
查看: 2961|回复: 2

[C51] 单片机原理 C51 ,PROTUES仿真 ADC0808

[复制链接]
发表于 2021-1-13 22:52:14 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
03.jpg

01.jpg

例子
图像 051.jpg

PROTUES 搭好电路

图像 052.jpg

KEIL 录入代码

图像 055.jpg

图像 056.jpg

若干 BUG 后,运行起来了。

111.gif

GIF。
  1. #include <reg51.h>
  2. #define uchar unsigned char
  3.         uchar code dispcode[4]={0x08,0x04,0x02,0x00};
  4.         uchar code codevalue[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  5.        
  6.         uchar temp;
  7.         uchar dispbuf[4];
  8.         sbit ST=P3^0; // AD转换启动信号,输入 ;ALE 8路地址锁存  。
  9.         sbit OE=P3^1; //AD数据输出允许信号,输入
  10.         sbit EOC=P3^2; //AD转换结束信号,输出
  11.         sbit CLK=P3^7; // 时钟脉冲 ,输入
  12.         uchar count;
  13.         uchar getdata;
  14.        
  15.         void delay(uchar m)
  16.         {
  17.                 while(m--){}
  18.                 }
  19.        
  20.                 void main()
  21.                 {
  22.                         ET0=1;
  23.                         ET1=1;
  24.                         EA=1;  //  开中断
  25.                         TMOD=0X12; //定时器模式
  26.                         TH0=246;
  27.                         TL0=246;
  28.                         TH1=(65535-20000)/256;
  29.                         TL1=(65535-20000)%256;
  30.                         TR1=1;
  31.                         TR0=1;
  32.                         while(1)
  33.                         {
  34.                                 ST=0;
  35.                                 ST=1;
  36.                                 ST=0;  // 启动转换
  37.                                 while(EOC==0){;}  //等待AD 转换结束
  38.                                 OE=1;             //AD数据输出允许
  39.                                 getdata=P0;
  40.                                         OE=0;           //AD数据输出禁止
  41.                                        
  42.                                         temp=getdata;   // 数据转换
  43.                                        
  44.                                         dispbuf[2]=getdata/100;
  45.                                         temp=temp-dispbuf[2]*100;
  46.                                         dispbuf[1]=temp/10;
  47.                                         temp=temp-dispbuf[1]*10;
  48.                                         dispbuf[0]=temp;
  49.                                 }
  50.                        
  51.                         }
  52.                
  53.                         void T0clk() interrupt 1 //定时器0产生时钟脉冲,
  54.                         {
  55.                                 CLK=~CLK;
  56.                         }
  57.                        
  58.                         void T1disp() interrupt 3 //定时器1 刷新显示
  59.                         {
  60.                                 TH1=(65535-20000)/256;
  61.                           TL1=(65535-20000)%256;
  62.                                 for(count=0;count<=3;count++)
  63.                                 {
  64.                                         P2=dispcode[count];
  65.                                         P1=codevalue[dispbuf[count]];
  66.                                         delay(255);
  67.                                 }
  68.                         }
  69.                        
  70.                                 
复制代码
代码注释了下。

02.png

到STC 的官网看了下,
这页面好有世纪初配电脑的广告单风格啊。


打赏

参与人数 1家元 +20 收起 理由
ljlun + 20 牙膏终于来了

查看全部打赏

发表于 2021-1-13 22:55:09 | 显示全部楼层
STC最有名的就是官网,电线杆子上的小广告。
回复 支持 反对

使用道具 举报

发表于 2021-1-14 12:09:55 | 显示全部楼层
满篇都是图形文字哈,生怕漏点空白:titter:
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-24 05:43 , Processed in 0.187201 second(s), 16 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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