-
/*--------- 8051內(nèi)核特殊功能寄存器 -------------*/
sfr ACC = 0xE0; //累加器
sfr B = 0xF0; //B 寄存器
sfr PSW = 0xD0; //程序狀態(tài)字寄存器
sbit CY = PSW^7; //進(jìn)位標(biāo)志位
sbit AC = PSW^6; //輔助進(jìn)位標(biāo)志位
sbit F0 = PSW^5; //用戶標(biāo)志位0
sbit RS1 = PSW^4; //工作寄存器組選擇控制位
sbit RS0 = PSW^3; //工作寄存器組選擇控制位
sbit OV = PSW^2; //溢出標(biāo)志位
sbit F1 = PSW^1; //用戶標(biāo)志位1
sbit P = PSW^0; //奇偶標(biāo)志位
sfr SP = 0x81; //堆棧指針寄存器
sfr DPL = 0x82; //數(shù)據(jù)指針0低字節(jié)
sfr DPH = 0x83; //數(shù)據(jù)指針0高字節(jié)
/*------------ 系統(tǒng)管理特殊功能寄存器 -------------*/
sfr PCON = 0x87; //電源控制寄存器
sfr AUXR = 0x8E; //輔助寄存器
sfr AUXR1 = 0xA2; //輔助寄存器1
sfr WAKE_CLKO = 0x8F; //時(shí)鐘輸出和喚醒控制寄存器
sfr CLK_DIV = 0x97; //時(shí)鐘分頻控制寄存器
sfr BUS_SPEED = 0xA1; //總線速度控制寄存器
/*----------- 中斷控制特殊功能寄存器 --------------*/
sfr IE = 0xA8; //中斷允許寄存器
sbit EA = IE^7; //總中斷允許位
sbit ELVD = IE^6; //低電壓檢測中斷控制位
8051
標(biāo)簽:
80C51
特殊功能寄存器
地址
上傳時(shí)間:
2013-10-30
上傳用戶:yxgi5
-
TLC2543是TI公司的12位串行模數(shù)轉(zhuǎn)換器,使用開關(guān)電容逐次逼近技術(shù)完成A/D轉(zhuǎn)換過程。由于是串行輸入結(jié)構(gòu),能夠節(jié)省51系列單片機(jī)I/O資源;且價(jià)格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應(yīng)用。
TLC2543的特點(diǎn)
(1)12位分辯率A/D轉(zhuǎn)換器;
(2)在工作溫度范圍內(nèi)10μs轉(zhuǎn)換時(shí)間;
(3)11個(gè)模擬輸入通道;
(4)3路內(nèi)置自測試方式;
(5)采樣率為66kbps;
(6)線性誤差±1LSBmax;
(7)有轉(zhuǎn)換結(jié)束輸出EOC;
(8)具有單、雙極性輸出;
(9)可編程的MSB或LSB前導(dǎo);
(10)可編程輸出數(shù)據(jù)長度。
TLC2543的引腳排列及說明
TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1
TLC2543電路圖和程序欣賞
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit clock=P1^0; sbit d_in=P1^1;
sbit d_out=P1^2;
sbit _cs=P1^3;
uchar a1,b1,c1,d1;
float sum,sum1;
double sum_final1;
double sum_final;
uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar wei[]={0xf7,0xfb,0xfd,0xfe};
void delay(unsigned char b) //50us
{
unsigned char a;
for(;b>0;b--)
for(a=22;a>0;a--);
}
void display(uchar a,uchar b,uchar c,uchar d)
{
P0=duan[a]|0x80;
P2=wei[0];
delay(5);
P2=0xff;
P0=duan[b];
P2=wei[1];
delay(5);
P2=0xff;
P0=duan[c];
P2=wei[2];
delay(5);
P2=0xff;
P0=duan[d];
P2=wei[3];
delay(5);
P2=0xff;
}
uint read(uchar port)
{
uchar i,al=0,ah=0;
unsigned long ad;
clock=0;
_cs=0;
port<<=4;
for(i=0;i<4;i++)
{
d_in=port&0x80;
clock=1;
clock=0;
port<<=1;
}
d_in=0;
for(i=0;i<8;i++)
{
clock=1;
clock=0;
}
_cs=1;
delay(5);
_cs=0;
for(i=0;i<4;i++)
{
clock=1;
ah<<=1;
if(d_out)ah|=0x01;
clock=0;
}
for(i=0;i<8;i++)
{
clock=1;
al<<=1;
if(d_out) al|=0x01;
clock=0;
}
_cs=1;
ad=(uint)ah;
ad<<=8;
ad|=al;
return(ad);
}
void main()
{
uchar j;
sum=0;sum1=0;
sum_final=0;
sum_final1=0;
while(1)
{
for(j=0;j<128;j++)
{
sum1+=read(1);
display(a1,b1,c1,d1);
}
sum=sum1/128;
sum1=0;
sum_final1=(sum/4095)*5;
sum_final=sum_final1*1000;
a1=(int)sum_final/1000;
b1=(int)sum_final%1000/100;
c1=(int)sum_final%1000%100/10;
d1=(int)sum_final%10;
display(a1,b1,c1,d1);
}
}
標(biāo)簽:
2543
TLC
上傳時(shí)間:
2013-11-19
上傳用戶:shen1230
-
#include<iom16v.h>
#include<macros.h>
#define uint unsigned int
#define uchar unsigned char
uint a,b,c,d=0;
void delay(c)
{ for for(a=0;a<c;a++)
for(b=0;b<12;b++);
};
uchar tab[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
標(biāo)簽:
AVR
單片機(jī)
數(shù)碼管
上傳時(shí)間:
2013-10-21
上傳用戶:13788529953
-
數(shù)字運(yùn)算,判斷一個(gè)數(shù)是否接近素?cái)?shù)
A Niven number is a number such that the sum of its digits divides itself. For example, 111 is a Niven number because the sum of its digits is 3, which divides 111. We can also specify a number in another base b, and a number in base b is a Niven number if the sum of its digits divides its value.
Given b (2 <= b <= 10) and a number in base b, determine whether it is a Niven number or not.
Input
Each line of input contains the base b, followed by a string of digits representing a positive integer in that base. There are no leading zeroes. The input is terminated by a line consisting of 0 alone.
Output
For each case, print "yes" on a line if the given number is a Niven number, and "no" otherwise.
Sample Input
10 111
2 110
10 123
6 1000
8 2314
0
Sample Output
yes
yes
no
yes
no
標(biāo)簽:
數(shù)字
運(yùn)算
上傳時(shí)間:
2015-05-21
上傳用戶:daguda
-
上下文無關(guān)文法(Context-Free Grammar, CFG)是一個(gè)4元組G=(V, T, S, P),其中,V和T是不相交的有限集,S∈V,P是一組有限的產(chǎn)生式規(guī)則集,形如A→α,其中A∈V,且α∈(V∪T)*。V的元素稱為非終結(jié)符,T的元素稱為終結(jié)符,S是一個(gè)特殊的非終結(jié)符,稱為文法開始符。
設(shè)G=(V, T, S, P)是一個(gè)CFG,則G產(chǎn)生的語言是所有可由G產(chǎn)生的字符串組成的集合,即L(G)={x∈T* | Sx}。一個(gè)語言L是上下文無關(guān)語言(Context-Free Language, CFL),當(dāng)且僅當(dāng)存在一個(gè)CFG G,使得L=L(G)。 *⇒
例如,設(shè)文法G:S→AB
A→aA|a
B→bB|b
則L(G)={a^nb^m | n,m>=1}
其中非終結(jié)符都是大寫字母,開始符都是S,終結(jié)符都是小寫字母。
標(biāo)簽:
Context-Free
Grammar
CFG
上傳時(shí)間:
2013-12-10
上傳用戶:gaojiao1999
-
The XML Toolbox converts MATLAB data types (such as double, char, struct, complex, sparse, logical) of any level of nesting to XML format and vice versa.
For example,
>> project.name = MyProject
>> project.id = 1234
>> project.param.a = 3.1415
>> project.param.b = 42
becomes with str=xml_format(project, off )
"<project>
<name>MyProject</name>
<id>1234</id>
<param>
<a>3.1415</a>
<b>42</b>
</param>
</project>"
On the other hand, if an XML string XStr is given, this can be converted easily to a MATLAB data type or structure V with the command V=xml_parse(XStr).
標(biāo)簽:
converts
Toolbox
complex
logical
上傳時(shí)間:
2016-02-12
上傳用戶:a673761058
-
漢諾塔!!!
Simulate the movement of the Towers of Hanoi puzzle Bonus is possible for using animation
eg. if n = 2 A→B A→C B→C
if n = 3 A→C A→B C→B A→C B→A B→C A→C
標(biāo)簽:
the
animation
Simulate
movement
上傳時(shí)間:
2017-02-11
上傳用戶:waizhang
-
一道程序編譯順序的考題,涉及到函數(shù)調(diào)用的先后順序及運(yùn)算符號(hào)的優(yōu)先級(jí)等問題。下面我展開給你講。
C的程序編譯總是從main函數(shù)開始的,這道題的重點(diǎn)在“fun((int)fun(a+c,b),a-c)) ”語句。
系統(tǒng)首先要確定最外層 fun()函數(shù)的實(shí)參,第一個(gè)參數(shù)的確定需要遞歸調(diào)用fun()函數(shù)(不妨稱其為內(nèi)層函數(shù))。內(nèi)層函數(shù)的兩個(gè)參數(shù)分別為x=a+b=2+8=10、y=b=5,執(zhí)行函數(shù)體x+y=10+5=15,于是得外層函數(shù)的參數(shù)x=15。其另一個(gè)參數(shù)y=a-c=2-b=-6,再次執(zhí)行函數(shù)體,得最終返回值x+y=15+(-6)=9。
標(biāo)簽:
程序編譯
上傳時(shí)間:
2014-12-03
上傳用戶:徐孺
-
本代碼為編碼開關(guān)代碼,編碼開關(guān)也就是數(shù)字音響中的
360度旋轉(zhuǎn)的數(shù)字音量以及顯示器上用的(單鍵飛梭開
關(guān))等類似鼠標(biāo)滾輪的手動(dòng)計(jì)數(shù)輸入設(shè)備。
我使用的編碼開關(guān)為5個(gè)引腳的,其中2個(gè)引腳為按下
轉(zhuǎn)輪開關(guān)(也就相當(dāng)于鼠標(biāo)中鍵)。另外3個(gè)引腳用來
檢測旋轉(zhuǎn)方向以及旋轉(zhuǎn)步數(shù)的檢測端。引腳分別為a,b,c
b接地a,c分別接到P2.0和P2.1口并分別接兩個(gè)10K上拉
電阻,并且a,c需要分別對(duì)地接一個(gè)104的電容,否則
因?yàn)榫幋a開關(guān)的觸點(diǎn)抖動(dòng)會(huì)引起輕微誤動(dòng)作。本程序不
使用定時(shí)器,不占用中斷,不使用延時(shí)代碼,并對(duì)每個(gè)
細(xì)分步數(shù)進(jìn)行判斷,避免一切誤動(dòng)作,性能超級(jí)穩(wěn)定。
我使用的編碼器是APLS的EC11B可以參照附件的時(shí)序圖
編碼器控制流水燈最能說明問題,下面是以一段流水
燈來演示。
標(biāo)簽:
代碼
編碼開關(guān)
上傳時(shí)間:
2017-07-03
上傳用戶:gaojiao1999
-
|- 第27周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共07章節(jié) - 0 B|- 第26周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共10章節(jié) - 0 B|- 第25周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共14章節(jié) - 0 B|- 第24周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共18章節(jié) - 0 B|- 第23周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共13章節(jié) - 0 B|- 第22周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共21章節(jié) - 0 B|- 第21周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共19章節(jié) - 0 B|- 第20周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共15章節(jié) - 0 B|- 第19周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共20章節(jié) - 0 B|- 第18周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共18章節(jié) - 0 B|- 第17周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共23章節(jié) - 0 B|- 第16周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共26章節(jié) - 0 B|- 第15周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共24章節(jié) - 0 B|- 第14周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共25章節(jié) - 0 B|- 第13周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共10章節(jié) - 0 B|- 第12周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共16章節(jié) - 0 B|- 第11周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共14章節(jié) - 0 B|- 第10周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共18章節(jié) - 0 B|- 第09周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共15章節(jié) - 0 B|- 第08周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共11章節(jié) - 0 B|- 第07周-Python3.5-零基礎(chǔ)-高級(jí)-完整項(xiàng)目剖析-共13章節(jié) - 0 B|- 第0...
標(biāo)簽:
python
上傳時(shí)間:
2022-06-05
上傳用戶:canderile