自制一臺ATMEL 89系列FLASH單片機(jī)編程器學(xué)習(xí)單片機(jī)最有用的恐怕是編程器和仿真機(jī),一臺商品化的編程器至少要幾百元,仿真機(jī)價(jià)格更高,往往讓初學(xué)者難以選擇。這里介紹的一款國外電子網(wǎng)站推出的廉價(jià)51編程器,能夠讀寫最常用的12種51單片機(jī),自己動(dòng)手裝配一臺,既能鍛煉自己的動(dòng)手能力,又能廉價(jià)地裝備一臺多用編程器,無論是學(xué)習(xí)單片機(jī)或業(yè)余時(shí)間搞開發(fā),都是一個(gè)非常好的選擇。筆者按照資料自制了一臺,十分好用,不敢獨(dú)享。特編譯了全部制作資料介紹給大家。這個(gè)編程器硬件使用標(biāo)準(zhǔn)的TTL系列器件而沒有使用特殊元件。它連接在計(jì)算機(jī)的并行端口,對PC的并口沒有特殊要求,所以配置很低的計(jì)算機(jī)也能用這個(gè)編程器。Atmel Flash 系列單片機(jī)是當(dāng)前最流行的單片機(jī),易于擦寫,不象OTP芯片容易造成浪費(fèi)。特別是89系列單片機(jī)與大家熟悉的INTEL51系列單片機(jī)完全兼容,這個(gè)編程器支持的單片機(jī)主要是Atmel flash系列。支持的器件: 這個(gè)編程器支持以下ATMEL單片機(jī)AT89C51,AT89C52,AT89C55,AT89S51,AT89S52,AT89S53,AT89C51RC,AT89C55WD,AT89S8252,AT89C1051U,AT89C2051,AT89C4051注意:20腳的單片機(jī)需要一個(gè)簡單的適配器。(圖 2 )
硬件: 圖1顯示了這個(gè)FLASH 編程器的電路圖,編程器和標(biāo)準(zhǔn)的計(jì)算機(jī)并口連接。電路圖中的u2是用于控制計(jì)算機(jī)和控制器之間的數(shù)據(jù)流,U4 鎖存低位地址字節(jié) ,U5 鎖存高位地址字節(jié) ,U3用于產(chǎn)生控制信號給被編程的單片機(jī)。IC U1用于產(chǎn)生編程脈沖給單片機(jī).當(dāng)U7提供編程電壓給控制器時(shí),電源部分用U8產(chǎn)生邏輯5v供給。IC U6用于產(chǎn)生5V或6.5V VDD 電源電壓給單片機(jī)。
標(biāo)簽:
ATMEL
FLASH
單片機(jī)編程器
上傳時(shí)間:
2013-10-18
上傳用戶:bakdesec
Digital Signature Algorithm (DSA)是Schnorr和ElGamal簽名算法的變種,被美國NIST作為DSS(DigitalSignature Standard)。算法中應(yīng)用了下述參數(shù):
p:L bits長的素?cái)?shù)。L是64的倍數(shù),范圍是512到1024;
q:p - 1的160bits的素因子;
g:g = h^((p-1)/q) mod p,h滿足h < p - 1, h^((p-1)/q) mod p > 1;
x:x < q,x為私鑰 ;
y:y = g^x mod p ,( p, q, g, y )為公鑰;
H( x ):One-Way Hash函數(shù)。DSS中選用SHA( Secure Hash Algorithm )。
p, q, g可由一組用戶共享,但在實(shí)際應(yīng)用中,使用公共模數(shù)可能會(huì)帶來一定的威脅。簽名及驗(yàn)證協(xié)議如下:
1. P產(chǎn)生隨機(jī)數(shù)k,k < q;
2. P計(jì)算 r = ( g^k mod p ) mod q
s = ( k^(-1) (H(m) + xr)) mod q
簽名結(jié)果是( m, r, s )。
3. 驗(yàn)證時(shí)計(jì)算 w = s^(-1)mod q
u1 = ( H( m ) * w ) mod q
u2 = ( r * w ) mod q
v = (( g^u1 * y^u2 ) mod p ) mod q
若v = r,則認(rèn)為簽名有效。
DSA是基于整數(shù)有限域離散對數(shù)難題的,其安全性與RSA相比差不多。DSA的一個(gè)重要特點(diǎn)是兩個(gè)素?cái)?shù)公開,這樣,當(dāng)使用別人的p和q時(shí),即使不知道私鑰,你也能確認(rèn)它們是否是隨機(jī)產(chǎn)生的,還是作了手腳。RSA算法卻作不到。
標(biāo)簽:
Algorithm
Signature
Digital
Schnorr
上傳時(shí)間:
2014-01-01
上傳用戶:qq521
function [alpha,N,U]=youxianchafen2(r1,r2,up,under,num,deta)
%[alpha,N,U]=youxianchafen2(a,r1,r2,up,under,num,deta)
%該函數(shù)用有限差分法求解有兩種介質(zhì)的正方形區(qū)域的二維拉普拉斯方程的數(shù)值解
%函數(shù)返回迭代因子、迭代次數(shù)以及迭代完成后所求區(qū)域內(nèi)網(wǎng)格節(jié)點(diǎn)處的值
%a為正方形求解區(qū)域的邊長
%r1,r2分別表示兩種介質(zhì)的電導(dǎo)率
%up,under分別為上下邊界值
%num表示將區(qū)域每邊的網(wǎng)格剖分個(gè)數(shù)
%deta為迭代過程中所允許的相對誤差限
n=num+1; %每邊節(jié)點(diǎn)數(shù)
U(n,n)=0; %節(jié)點(diǎn)處數(shù)值矩陣
N=0; %迭代次數(shù)初值
alpha=2/(1+sin(pi/num));%超松弛迭代因子
k=r1/r2; %兩介質(zhì)電導(dǎo)率之比
U(1,1:n)=up; %求解區(qū)域上邊界第一類邊界條件
U(n,1:n)=under; %求解區(qū)域下邊界第一類邊界條件
U(2:num,1)=0;U(2:num,n)=0;
for i=2:num
U(i,2:num)=up-(up-under)/num*(i-1);%采用線性賦值對上下邊界之間的節(jié)點(diǎn)賦迭代初值
end
G=1;
while G>0 %迭代條件:不滿足相對誤差限要求的節(jié)點(diǎn)數(shù)目G不為零
Un=U; %完成第n次迭代后所有節(jié)點(diǎn)處的值
G=0; %每完成一次迭代將不滿足相對誤差限要求的節(jié)點(diǎn)數(shù)目歸零
for j=1:n
for i=2:num
U1=U(i,j); %第n次迭代時(shí)網(wǎng)格節(jié)點(diǎn)處的值
if j==1 %第n+1次迭代左邊界第二類邊界條件
U(i,j)=1/4*(2*U(i,j+1)+U(i-1,j)+U(i+1,j));
end
if (j>1)&&(j u2=1/4*(U(i,j+1)+ U(i-1,j)+ U(i,j-1)+ U(i+1,j));
U(i,j)=U1+alpha*(u2-U1); %引入超松弛迭代因子后的網(wǎng)格節(jié)點(diǎn)處的值
end
if i==n+1-j %第n+1次迭代兩介質(zhì)分界面(與網(wǎng)格對角線重合)第二類邊界條件
U(i,j)=1/4*(2/(1+k)*(U(i,j+1)+U(i+1,j))+2*k/(1+k)*(U(i-1,j)+U(i,j-1)));
end
if j==n %第n+1次迭代右邊界第二類邊界條件
U(i,n)=1/4*(2*U(i,j-1)+U(i-1,j)+U(i+1,j));
end
end
end
N=N+1 %顯示迭代次數(shù)
Un1=U; %完成第n+1次迭代后所有節(jié)點(diǎn)處的值
err=abs((Un1-Un)./Un1);%第n+1次迭代與第n次迭代所有節(jié)點(diǎn)值的相對誤差
err(1,1:n)=0; %上邊界節(jié)點(diǎn)相對誤差置零
err(n,1:n)=0; %下邊界節(jié)點(diǎn)相對誤差置零
G=sum(sum(err>deta))%顯示每次迭代后不滿足相對誤差限要求的節(jié)點(diǎn)數(shù)目G
end
標(biāo)簽:
有限差分
上傳時(shí)間:
2018-07-13
上傳用戶:Kemin