|
例子
PROTUES 搭好电路
KEIL 录入代码
若干 BUG 后,运行起来了。
GIF。
- #include <reg51.h>
- #define uchar unsigned char
- uchar code dispcode[4]={0x08,0x04,0x02,0x00};
- uchar code codevalue[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
-
- uchar temp;
- uchar dispbuf[4];
- sbit ST=P3^0; // AD转换启动信号,输入 ;ALE 8路地址锁存 。
- sbit OE=P3^1; //AD数据输出允许信号,输入
- sbit EOC=P3^2; //AD转换结束信号,输出
- sbit CLK=P3^7; // 时钟脉冲 ,输入
- uchar count;
- uchar getdata;
-
- void delay(uchar m)
- {
- while(m--){}
- }
-
- void main()
- {
- ET0=1;
- ET1=1;
- EA=1; // 开中断
- TMOD=0X12; //定时器模式
- TH0=246;
- TL0=246;
- TH1=(65535-20000)/256;
- TL1=(65535-20000)%256;
- TR1=1;
- TR0=1;
- while(1)
- {
- ST=0;
- ST=1;
- ST=0; // 启动转换
- while(EOC==0){;} //等待AD 转换结束
- OE=1; //AD数据输出允许
- getdata=P0;
- OE=0; //AD数据输出禁止
-
- temp=getdata; // 数据转换
-
- dispbuf[2]=getdata/100;
- temp=temp-dispbuf[2]*100;
- dispbuf[1]=temp/10;
- temp=temp-dispbuf[1]*10;
- dispbuf[0]=temp;
- }
-
- }
-
- void T0clk() interrupt 1 //定时器0产生时钟脉冲,
- {
- CLK=~CLK;
- }
-
- void T1disp() interrupt 3 //定时器1 刷新显示
- {
- TH1=(65535-20000)/256;
- TL1=(65535-20000)%256;
- for(count=0;count<=3;count++)
- {
- P2=dispcode[count];
- P1=codevalue[dispbuf[count]];
- delay(255);
- }
- }
-
-
复制代码 代码注释了下。
到STC 的官网看了下,
这页面好有世纪初配电脑的广告单风格啊。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|