欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
51單片機ADC分壓鍵盤源程序
[打印本頁]
作者:
zhangru961029
時間:
2017-7-6 10:19
標(biāo)題:
51單片機ADC分壓鍵盤源程序
設(shè)計程序,實現(xiàn)當(dāng)按下
ADC
分壓鍵盤時,將相應(yīng)的鍵號(
01-16
)通過兩片具有
SPI
接口的
74HC595
芯片驅(qū)動最右端兩個
7
段數(shù)碼管顯示,其余
6
個數(shù)碼管關(guān)閉
將adc分壓按鍵按下時的模擬輸入電壓值送數(shù)碼管顯示,比如4.995v時,顯示4.995
單片機源程序如下:
#include "reg51.h"
#define TIMS 65500
#define TIMS1 3036
#define SSIG 1
#define SPEN 1
#define DORD 0
#define MSTR 1
#define CPOL 1
#define CPHA 1
#define SPR1 0
#define SPR0 0
#define SPEED_4 0
#define SPEED_16 1
#define SPEED_64 2
#define SPEED_128 3
#define SPIF 0x80
#define WCOL 0x40
sfr SPSTAT =0xCD;
sfr SPCTL =0xCE;
sfr SPDAT =0xCF;
sfr AUXR =0x8E;
sfr AUXR1 =0XA2;
sfr CLK_DIV=0x97;
sfr P5=0xC8;
sbit HC595_RCLK=P5^4;
sbit EADC=IE^5;
#define ADC_POWER 0x80
#define ADC_FLAG 0x10
#define ADC_START 0x08
#define ADC_SPEEDLL 0x00
#define ADC_SPEEDL 0x20
#define ADC_SPEEDH 0x40
#define ADC_SPEEDHH 0x60
sfr ADC_CONTR =0xBC;
sfr ADC_RES =0xBD;
sfr ADC_RESL =0xBE;
sfr P1ASF =0x9D;
unsigned char ch=4;
unsigned int a, b, c, d, e;
float voltage=0;
unsigned char tstr=0;
unsigned char code t_display[16]={0x3F,0x06,0x5B,0x4F,
0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x77,0x7C,
0x39,0x5E,0x79,0x71
};
unsigned char code T_COM[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
unsigned char code Mant[6]={0xbf,0x86,0xdb,0xcf,0xe6,0xed};
bit flag=0;
unsigned m=0;
void SPI_SendByte(unsigned char dat)
{
SPSTAT=SPIF+WCOL;
SPDAT=dat;
while((SPSTAT & SPIF)==0);
SPSTAT=SPIF+WCOL;
}
void seg7scan(unsigned char index1,unsigned char index2)
{
SPI_SendByte(~T_COM[index1]);
SPI_SendByte(t_display[index2]);
HC595_RCLK=1;
HC595_RCLK=0;
}
void Mscan(unsigned char index1,unsigned char index2)
{
SPI_SendByte(~T_COM[index1]);
SPI_SendByte(Mant[index2]);
HC595_RCLK=1;
HC595_RCLK=0;
}
void timer_0() interrupt 1
{
flag=1;
}
void adc_int() interrupt 5
{
unsigned char i=0;
ADC_CONTR &=!ADC_FLAG;
voltage=((ADC_RES*4+ADC_RESL)*5.0)/1024;
e=voltage*1000;
a=e/1000;
b=(e%1000)/100;
c=e%100/10;
d=e%10;
ADC_CONTR=ADC_POWER |ADC_SPEEDLL | ADC_START | ch;
}
void main()
{
unsigned char i;
unsigned int j=0;
SPCTL=(SSIG<<7)+(SPEN<<6)+(DORD<<5)+(MSTR<<4)
+(CPOL<<3)+(CPHA<<2)+SPEED_4;
CLK_DIV=0x00;
TL0=TIMS;
TH0=TIMS>>8;
AUXR&=0x3F;
AUXR1=0X08;
TMOD=0x00;
TR0=1;
ET0=1;
P1ASF=0x10;
ADC_RES=0;
ADC_CONTR=ADC_POWER|ADC_SPEEDLL | ADC_START | ch;
for(j=0;j<10000;j++);
EADC=1;
EA=1;
while(1)
{
if(flag==1)
{
flag=0;
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
新建文件夾.rar
(29.92 KB, 下載次數(shù): 44)
2017-7-6 10:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2017-7-7 04:56
好資料,51hei有你更精彩
作者:
tt98
時間:
2017-7-7 08:44
看看是不是STC的
作者:
mervinol
時間:
2018-7-2 09:36
很棒很棒
作者:
mervinol
時間:
2018-7-2 09:43
特別棒的!
作者:
mervinol
時間:
2018-7-2 09:47
給力 很給力
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1