非常感恩有此论坛,经常在开发遇到问题,在百度搜索每次都是51hei,帮我解决了问题,其它论坛好像都是非常含糊,而51hei里面的内容都是真实,而实用的,在此非常感谢,也非常感恩,我也要经常分享给大家,希望对于刚需的朋友得到帮助!
/*一款测试架程序,MCU采用宏晶STC12C5204AD,
电压表与电流表驱动采用两片74HC595,其次蜂鸣器与两个
LED分别占用3个IO口,电压表AD输入口为P1.6,电流表为P1.7,
其次分别用八个IO口来控制电压表电流表的位,主要通过AD转
换后结果来检测电流与电压,然后判断被测产品电压,当它于
小一定电压值或超出一定电压值时,它都会报警,并且红LED
闪烁亮起,当它在一定电压范围内时,绿LED闪烁亮起!*/
#include <reg52.h>//头文件
#include <intrins.h>
#define uchar unsigned char//宏定义
#define uint unsigned int//宏定义
sbit sdata=P1^1;//74HC595数据输出端
sbit sclk=P1^6;//74HC595移位脉冲
sbit clk=P1^0;//74HC595移位锁存端
uchar code table[]={
0x03,0x9f,0x25,0x0d,0x99,
0x49,0x41,0x1f,0x01,0x09,0x11,0xc1,0x63,0x85,0x61,0x71};//数码管显示代码
uchar num,dii;//定义数码显示结果变量
uchar shu;
void delay(uint z)//延时
{
uint x,y;
for(x=230;x>0;x--)
for(y=z;y>0;y--);
}
void song()
{
uchar shu2;
for(shu2=0;shu2<8;shu2++)
{
if(num&0x01==1)
sdata=1;
else
sdata=0;
sclk=1;
sclk=1;
sclk=0;
sclk=0;
sclk=1;//移位脉冲
sclk=1;//移位脉冲
num>>=1;
}
clk=1;
clk=0;
clk=1;
}
void xian()
{
num=table[shu];//同理
song();
delay(6500);
shu++;
if(shu>=16)
shu=0;
}
void main()
{
while(1)
{
xian();
}
}
下面是固定显示
/*一款测试架程序,MCU采用宏晶STC12C5204AD,
电压表与电流表驱动采用两片74HC595,其次蜂鸣器与两个
LED分别占用3个IO口,电压表AD输入口为P1.6,电流表为P1.7,
其次分别用八个IO口来控制电压表电流表的位,主要通过AD转
换后结果来检测电流与电压,然后判断被测产品电压,当它于
小一定电压值或超出一定电压值时,它都会报警,并且红LED
闪烁亮起,当它在一定电压范围内时,绿LED闪烁亮起!*/
#include <reg52.h>//头文件
#include <intrins.h>
#define uchar unsigned char//宏定义
#define uint unsigned int//宏定义
sbit sdata=P1^1;//74HC595数据输出端
sbit sclk=P1^6;//74HC595移位脉冲
sbit clk=P1^0;//74HC595移位锁存端
uchar code table[]={
0x03,0x9f,0x25,0x0d,0x99,
0x49,0x41,0x1f,0x01,0x09,0x11,0xc1,0x63,0x85,0x61,0x71};//数码管显示代码
uchar num,dii;//定义数码显示结果变量
uchar shu=4;
void delay(uint z)//延时
{
uint x,y;
for(x=230;x>0;x--)
for(y=z;y>0;y--);
}
void song()
{
uchar shu2;
num=table[shu];//同理
for(shu2=0;shu2<8;shu2++)
{
if(num&0x01==1)
sdata=1;
else
sdata=0;
sclk=1;
sclk=1;
sclk=0;
sclk=0;
sclk=1;//移位脉冲
sclk=1;//移位脉冲
num>>=1;
}
clk=1;
clk=0;
clk=1;
}
void main()
{
while(1)
{
song();
}
}
|