uia編程
❶ 急!基於單片機的數字示波器設計
首先根據輸出波形的頻率和幅值進行編碼,存儲在單片機的ROM里,
然後以一定的時間間隔依次將這些數字量送往D/A進行轉換輸出,這樣,只要循環送數,在D/A的雙極性輸出端就可以得到波形波形。
採用單片機片內的振盪器、上電復位和外部硬體看門狗電路。
至於波形編碼,網上資料很多,下面是硬體電路設計的描述(這個是網上找的):
輸出兩路幅值相等相位相差90°的正弦波形作為物體偏轉測量的基準波形;另一路輸出測角波形,該波形相對基準波形的相位反映角偏差的方向、幅值反映角偏差量。專用波形發生器就是模擬角位移輸出波形的裝置,用來進行後續解調電路以及功放電路的檢測。它以單片機為核心,經過D/A轉換和放大電路的處理,最後輸出反應彈體姿態的基準波形和測角波形。
軟體方面的編程:
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //共陰極0~9對應16進制數
//=============正弦波數據====================
uchar code sin_tab[256]=
{
0x80, 0x83, 0x86, 0x89, 0x8c, 0x8f, 0x92, 0x95, 0x98, 0x9c, 0x9f, 0xa2, 0xa5, 0xa8, 0xab, 0xae,
0xb0, 0xb3, 0xb6, 0xb9, 0xbc, 0xbf, 0xc1, 0xc4, 0xc7, 0xc9, 0xcc, 0xce, 0xd1, 0xd3, 0xd5, 0xd8,
0xda, 0xdc, 0xde, 0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xed, 0xef, 0xf0, 0xf2, 0xf3, 0xf4,
0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfc, 0xfd, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfd, 0xfc, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0xf7,
0xf6, 0xf5, 0xf3, 0xf2, 0xf0, 0xef, 0xed, 0xec, 0xea, 0xe8, 0xe6, 0xe4, 0xe3, 0xe1, 0xde, 0xdc,
0xda, 0xd8, 0xd6, 0xd3, 0xd1, 0xce, 0xcc, 0xc9, 0xc7, 0xc4, 0xc1, 0xbf, 0xbc, 0xb9, 0xb6, 0xb4,
0xb1, 0xae, 0xab, 0xa8, 0xa5, 0xa2, 0x9f, 0x9c, 0x99, 0x96, 0x92, 0x8f, 0x8c, 0x89, 0x86, 0x83,
0x80, 0x7d, 0x79, 0x76, 0x73, 0x70, 0x6d, 0x6a, 0x67, 0x64, 0x61, 0x5e, 0x5b, 0x58, 0x55, 0x52,
0x4f, 0x4c, 0x49, 0x46, 0x43, 0x41, 0x3e, 0x3b, 0x39, 0x36, 0x33, 0x31, 0x2e, 0x2c, 0x2a, 0x27,
0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1b, 0x19, 0x17, 0x15, 0x14, 0x12, 0x10, 0xf, 0xd, 0xc, 0xb ,
0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x3, 0x2, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0 ,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x2, 0x3, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8 ,
0x9, 0xa, 0xc, 0xd, 0xe, 0x10, 0x12, 0x13, 0x15, 0x17, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x23,
0x25, 0x27, 0x29, 0x2c, 0x2e, 0x30, 0x33, 0x35, 0x38, 0x3b, 0x3d, 0x40, 0x43, 0x46, 0x48, 0x4b,
0x4e, 0x51, 0x54, 0x57, 0x5a, 0x5d, 0x60, 0x63, 0x66, 0x69, 0x6c, 0x6f, 0x73, 0x76, 0x79, 0x7c,
};
//三角波信號數據表
uchar code thr_tab[32]=
{
0x00,0x0f,0x1f,0x2f,0x3f,0x4f,0x5f,0x6f,0x7f,0x8f,0x9f,0xaf,0xbf,0xcf,0xdf,0xef,
0xff,0xef,0xdf,0xcf,0xbf,0xaf,0x9f,0x8f,0x7f,0x6f,0x5f,0x4f,0x3f,0x2f,0x1f,0x0f
};
//-------------------------------------------------------------------------------------------------------
//鋸齒波信號數據表
uchar code jc_tab[33]=
{
0x00,0x08,0x0f,0x18,0x1f,0x28,0x2f,0x38,0x3f,0x48,0x4f,0x58,0x5f,0x68,0x6f,0x78,
0x7f,0x88,0x8f,0x98,0x9f,0xa8,0xaf,0xb8,0xbf,0xc8,0xcf,0xd8,0xdf,0xe8,0xef,0xf8,0xff
};
//數碼管位選控制口定義
sbit LED4=P2^7;
sbit LED3=P2^6;
sbit LED2=P2^5;
sbit LED1=P2^4;
//按鍵口申明
sbit S1=P2^3;
sbit S2=P2^2;
sbit S3=P2^1;
unsigned char tabArry[4]; //保存顯示數據
char flag=1; //按鍵標志,當flag=1時表示沒有按下,當flag=0時表示有按鍵按下
int keycount=0; //按鍵計數
unsigned char waveth,wavetl; //用於對定時器付值
unsigned int frecount=100; //頻率計數
unsigned int mbjs; //碼表計數,共采32個點
//毫秒延時程序
void delayms(int ms)
{
uchar i;
while(ms--)
{
for(i=250;i>0;i--);
}
}
//鍵盤掃描
void keyscan()
{
if(flag==1)
{
if(S3==0) //用S3切換波形
{
delayms(2); //延時去抖
if(S3==0) //按鍵計數,便於切換波形
{
flag=0;
keycount++;
if(keycount>=4) keycount=0; //四種波形計數4次
}
}
if(S2==0) //頻率加1 處理
{
delayms(2);
if(S2==0)
{
flag=0;
switch(keycount)
{
case 0: //正弦波頻率加1
frecount++;
if(frecount>1000) frecount=0;
break;
case 1: //三角波頻率加1
frecount++;
if(frecount>1000) frecount=0;
break;
case 2: //鋸齒波頻率加1
frecount++;
if(frecount>1000) frecount=0;
break;
case 3: //方波頻率加1
frecount++;
if(frecount>1000) frecount=0;
break;
}
waveth=(65536-57603/frecount)/256; //重新計算初值
wavetl=(65536-57603/frecount)%256;
}
}
if(S1==0) //頻率減1 處理
{
delayms(2);
if(S1==0)
{
flag=0;
switch(keycount)
{
case 0: //正弦波頻率減1
frecount--;
if(frecount<0) frecount=999;
break;
case 1: //三角波頻率減1
frecount--;
if(frecount<0) frecount=999;
break;
case 2: //鋸齒波頻率減1
frecount--;
if(frecount<0) frecount=999;
break;
case 3: //方波頻率減1
frecount--;
if(frecount<0) frecount=999;
break;
}
waveth=(65536-57603/frecount)/256; //重新計算初值
wavetl=(65536-57603/frecount)%256;
}
}
}
if(S1!=0 && S2!=0 && S3!=0) flag=1; //判斷按鍵是否彈起
}
//數據分位
void change(char wavetype,unsigned int frequency)
{
tabArry[0]=wavetype; //顯示字母,表示波形類型
tabArry[1]=frequency%1000/100; //百位
tabArry[2]=frequency%100/10; //十位
tabArry[3]=frequency%10; //個位
}
//顯示函數
void display()
{
switch(keycount)
{
case 0: //顯示A和正弦波的頻率
change(0x0a,frecount);
break;
case 1: //顯示b和三角波的頻率
change(0x0b,frecount);
break;
case 2: //顯示C和鋸齒波的頻率
change(0x0c,frecount);
break;
case 3: //顯示d和方波的頻率
change(0x0d,frecount);
break;
}
P0 = table[tabArry[0]]; //送最高位段碼
LED1=0; //打開對應的位選控制口
delayms(2); //顯示延時
LED1=1; //關閉對應的位選控制後顯示下一位
P0 = table[tabArry[1]];
LED2=0;
delayms(2);
LED2=1;
P0 = table[tabArry[2]];
LED3=0;
delayms(2);
LED3=1;
P0 = table[tabArry[3]];
LED4=0;
delayms(2);
LED4=1;
}
void Timerinit()
{
TMOD=0x01; //定時器0方式1
//定時器初值計算公式:X=65536-(T/T0)=65536-(f0/f/32)
TH0=waveth=(65536-57603/frecount)/256; //定時器初值 22.1184MHz
TL0=wavetl=(65536-57603/frecount)%256;
EA=1; //開總中斷
ET0=1; //開定時器0中斷
TR0=1; //定時器0開始計數
}
//主函數
void main()
{
Timerinit(); //定時器初始化
while(1)
{
keyscan(); //掃描按鍵
display(); //顯示程序
}
}
void Timer0() interrupt 1
{
TH0=waveth; //重新賦初值
TL0=wavetl;
if (keycount==0) //輸出正弦波
{
P1 = sin_tab[mbjs];
mbjs+=8; //256點,每隔8點輸出一個數據
if(mbjs>=256)
{
mbjs=0;
}
}
else if(keycount==1) //輸出三角波
{
P1 = thr_tab[mbjs];
mbjs++;
if(mbjs>=32)
{
mbjs=0;
}
}
else if(keycount==2) //輸出鋸齒波
{
P1 = jc_tab[mbjs];
mbjs++;
if(mbjs>=32)
{
mbjs=0;
}
}
else if(keycount==3) //輸出方波
{
mbjs++;
if(mbjs>=32)
{
mbjs=0;
}
else if(mbjs<16) P1=0xff;
else P1=0x00;
}
}
摘 要
函數信號發生器是一種能夠產生多種波形,如三角波、鋸齒波、矩形波(含方波)、正弦波的電路。函數信號發生器在電路實驗和設備檢測中具有十分廣泛的用途。通過對函數波形發生器的原理以及構成分析,可設計一個能變換出三角波、正弦波、方波的函數波形發生器。
本課題採用由集成運算放大器與晶體管差分放大器共同組成的方波—三角波—正弦波函數發生器的設計方法,先通過比較器產生方波,再通過積分器產生三角波,最後通過差分放大器形成正弦波。波形變換的原理是利用差分放大器傳輸特性曲線的非線性。
經過模擬得出了方波、三角波、正弦波、方波——三角波轉換及三角波——正弦波轉換的波形圖。
關鍵字:函數信號發生器、集成運算放大器、晶體管差分放
設計目的、意義
1 設計目的
(1)掌握方波—三角波——正弦波函數發生器的原理及設計方法。
(2)掌握遲滯型比較器的特性參數的計算。
(3)了解單片集成函數發生器8038的工作原理及應用。
(4)能夠使用電路模擬軟體進行電路調試。
2 設計意義
函數發生器作為一種常用的信號源,是現代測試領域內應用最為廣泛的通用儀器之一。
在研製、生產、測試和維修各種電子元件、部件以及整機設備時,都學要有信號源,由它產生不同頻率不同波形的電壓、電流信號並加到被測器件或設備上,用其他儀器觀察、測量被測儀器的輸出響應,以分析確定它們的性能參數。信號發生器是電子測量領域中最基本、應用最廣泛的一類電子儀器。它可以產生多種波形信號,如正弦波,三角波,方波等,因而廣泛用於通信、雷達、導航、宇航等領域。
設計內容
1 課程設計的內容與要求(包括原始數據、技術參數、條件、設計要求等):
1.1課程設計的內容
(1)該發生器能自動產生正弦波、三角波、方波。
(2)函數發生器以集成運放和晶體管為核心進行設計
(3)指標:
輸出波形:正弦波、三角波、方波
頻率范圍:1Hz~10Hz,10Hz~100Hz
輸出電壓:方波VP-P≤24V,三角波VP-P=8V,正弦波VP-P>1V;
(4)對單片集成函數發生器8038應用接線進行設計。
1.2課程設計的要求
(1)提出具體方案
(2)給出所設計電路的原理圖。
(3)進行電路模擬,PCB設計。
2 函數波形發生器原理
2.1函數波形發生器原理框圖
圖2.1 函數發生器組成框圖
2.2函數波形發生器的總方案
函數發生器一般是指能自動產生正弦波、三角波、方波及鋸齒波、階梯波等電壓波形的電路或儀器。根據用途不同,有產生三種或多種波形的函數發生器,使用的器件可以是分立器件 (如低頻信號函數發生器S101全部採用晶體管),也可以採用集成電路(如單片函數發生器模塊8038)。為進一步掌握電路的基本理論及實驗調試技術,本課題採用由集成運算放大器與晶體管差分放大器共同組成的方波—三角波—正弦波函數發生器的設計方法。
產生正弦波、方波、三角波的方案有多種,如首先產生正弦波,然後通過整形電路將正弦波變換成方波,再由積分電路將方波變成三角波;也可以首先產生三角波—方波,再將三角波變成正弦波或將方波變成正弦波等等。本課題採用先產生方波—三角波,再將三角波變換成正弦波的電路設計方法[3]。
由比較器和積分器組成方波—三角波產生電路,比較器輸出的方波經積分器得到三角波,三角波到正弦波的變換電路主要由差分放大器來完成。差分放大器具有工作點穩定,輸入阻抗高,抗干擾能力較強等優點。特別是作為直流放大器時,可以有效地抑制零點漂移,因此可將頻率很低的三角波變換成正弦波。波形變換的原理是利用差分放大器傳輸特性曲線的非線性。
2.3函數波形發生器各組成部分的工作原理
2.3.1方波發生電路的工作原理
此電路由反相輸入的滯回比較器和RC電路組成。RC迴路既作為延遲環節,又作為反饋網路,通過RC充、放電實現輸出狀態的自動轉換。設某一時刻輸出電壓Uo=+Uz,則同相輸入端電位Up=+Ut。Uo通過R3對電容C正向充電,如圖2.3中實線箭頭所示。反相輸入端電位n隨時間t的增長而逐漸增高,當t趨於無窮時,Un趨於+Uz;但是,一旦Un=+Ut,再稍增大,Uo從+Uz躍變為-Uz,與此同時Up從+Ut躍變為-Ut。隨後,Uo又通過R3對電容C反向充電,如圖中虛線箭頭所示。Un隨時間逐漸增長而減低,當t趨於無窮大時,Un趨於-Uz;但是,一旦Un=-Ut,再減小,Uo就從-Uz躍變為+Uz,Up從-Ut躍變為+Ut,電容又開始正相充電。上述過程周而復始,電路產生了自激振盪[4]。
2.3.2方波——三角波轉換電路的工作原理
圖2.2方波—三角波產生電路
工作原理如下:
若a點斷開,整個電路呈開環狀態。運算發大器A1與R1、R2及R3、RP1組成電壓比較器,C1為加速電容,可加速比較器的翻轉。運放的反相端接基準電壓,即U-=0,同相輸入端接輸入電壓Uia,R1稱為平衡電阻。比較器的輸出Uo1的高電平等於正電源電壓+Vcc,低電平等於負電源電壓-Vee(|+Vcc|=|-Vee|), 當比較器的U+=U-=0時,比較器翻轉,輸出Uo1從高電平跳到低電平-Vee,或者從低電平Vee跳到高電平Vcc。設Uo1=+ Vcc,則
(2.1)
將上式整理,得比較器翻轉的下門限單位Uia_為
(2.2)
若Uo1=-Vee,則比較器翻轉的上門限電位Uia+為
(2.3)
比較器的門限寬度:
(2.4)
由以上公式可得比較器的電壓傳輸特性,如圖2.3所示。
a點斷開後,運放A2與R4、RP2、C2及R5組成反相積分器,其輸入信號為方波Uo1,則積分器的輸出Uo2為:
(2.5)
時,
(2.6)
時,
(2.7)
可見積分器的輸入為方波時,輸出是一個上升速度與下降速度相等的三角波,其波形關系如圖2.4所示。
a點閉合,即比較器與積分器形成閉環電路,則自動產生方波-三角波。三角波的幅度為:
(2.8)
方波-三角波的頻率f為:
(2.9)
由以上兩式(2.8)及(2.9)可以得到以下結論:
(1) 電位器RP2在調整方波-三角波的輸出頻率時,不會影響輸出波形的幅度。若要求輸出頻率的范圍較寬,可用C2改變頻率的范圍,PR2實現頻率微調。
(2) 方波的輸出幅度應等於電源電壓+Vcc。三角波的輸出幅度應不超過電源電壓+Vcc。
電位器RP1可實現幅度微調,但會影響方波-三角波的頻率[3]。
圖2.3比較器的電壓傳輸特性
圖2.4方波與三角波波形關系
2.3.3三角波---正弦波轉換電路的工作原理
如圖2.5三角波——正弦波的變換電路主要由差分放大電路來完成。
差分放大器具有工作點穩定,輸入阻抗高,抗干擾能力較強等優點。特別是作為直流放大器,可以有效的抑制零點漂移,因此可將頻率很低的三角波變換成正弦波。波形變換的原理是利用差分放大器傳輸特性曲線的非線性[1]。
圖2.5 三角波——正弦波的變換電路
分析表明,傳輸特性曲線的表達式為:
(2.10)
(2.11)
式中
——差分放大器的恆定電流;
——溫度的電壓當量,當室溫為25oc時, ≈26mV。
如果Uid為三角波,設表達式為
(2.12)
式中 Um——三角波的幅度;
T——三角波的周期。
為使輸出波形更接近正弦波,由圖2.6可見:
(1)傳輸特性曲線越對稱,線性區越窄越好。
(2)三角波的幅度Um應正好使晶體管接近飽和區或截止區。
(3)圖2.7為實現三角波——正弦波變換的電路。其中RP1調節三角波的幅度,RP2調整電路的對稱性,其並聯電阻RE2用來減小差分放大器的線性區。電容C1,C2,C3為隔直電容,C4為濾波電容,以濾除諧波分量,改善輸出波形[2]。
圖2.6三角波—正弦波變換原理
圖2.7三角波—正弦波變換電路
2.4電路的參數選擇及計算
2.4.1方波-三角波中電容C1變化(關鍵性變化之一)
實物連線中,我們一開始很長時間出不來波形,後來將C2從10uf(理論時可出來波形)換成0.1uf時,順利得出波形。實際上,分析一下便知當C2=10uf時,頻率很低,不容易在實際電路中實現。
2.4.2三角波—正弦波部分的計算
比較器A1與積分器A2的元件計算如下:
由式(2.8)得
即
取 ,則 ,取 ,RP1為47KΩ的點位器。取平衡電阻
由式(2.9)
即
當 時,取 ,則 ,取 ,為100KΩ電位器。當 時 ,取 以實現頻率波段的轉換,R4及RP2的取值不變。取平衡電阻 。
三角波—正弦波變換電路的參數選擇原則是:隔直電容C3、C4、C5要取得較大,因為輸出頻率很低,取 ,濾波電容 視輸出的波形而定,若含高次斜波成分較多, 可取得較小, 一般為幾十皮法至0.1微法。RE2=100歐與RP4=100歐姆相並聯,以減小差分放大器的線性區。差分放大器的靜態工作點可通過觀測傳輸特性曲線,調整RP4及電阻R*確定。
2.5 總電路圖
先通過比較器產生方波,再通過積分器產生三角波,最後通過差分放大器形成正弦波。如圖2.5.1所示,
圖2.5.1三角波-方波-正弦波函數發生器實驗電路
2.6 8038單片集成函數發生器
2.6.1 8038的工作原理
8038由恆流源I1、I2,電壓比較器C1、C2和觸發器①等組成。其內部原理電路框圖和外部引腳排列分別如圖2.8和圖2.9所示。
圖2.8 8038原理框圖
圖2.9 8038管腳圖(頂視圖)
1. 正弦波線性調節;2. 正弦波輸出;3. 三角波輸出;4. 恆流源調節;5. 恆流源調節;6. 正電源;7. 調頻偏置電壓;8. 調頻控制輸入端;9. 方波輸出(集電極開路輸出); 10. 外接電容;11. 負電源或接地;12.正弦波線性調節;13、14. 空腳
在圖2.8中,電壓比較器C1、C2的門限電壓分別為2VR/3和VR/3( 其中VR=VCC+VEE),電流源I1和I2的大小可通過外接電阻調節,且I2必須大於I1。當觸發器的Q端輸出為低電平時,它控制開關S使電流源I2斷開。而電流源I1則向外接電容C充電,使電容兩端電壓vC隨時間線性上升,當vC上升到vC=2VR/3 時,比較器C1輸出發生跳變,使觸發器輸出Q端由低電平變為高電平,控制開關S使電流源I2接通。由於I2>I1 ,因此電容C放電,vC隨時間線性下降。當vC下降到vC≤VR/3 時,比較器C2輸出發生跳變,使觸發器輸出端Q又由高電平變為低電平,I2再次斷開,I1再次向C充電,vC又隨時間線性上升。如此周而復始,產生振盪。若I2=2I1 ,vC上升時間與下降時間相等,就產生三角波輸出到腳3。而觸發器輸出的方波,經緩沖器輸出到腳9。三角波經正弦波變換器變成正弦波後由腳2輸出。當I1<I2<2I1 時,vC的上升時間與下降時間不相等,管腳3輸出鋸齒波。因此,8038能輸出方波、三角波、正弦波和鋸齒波等四種不同的波形。
圖2.8中的觸發器,當R端為高電平、S端為低電平時,Q端輸出低電平;反之,則Q端為高電平。
2.6.2 8038構成函數波形發生器
由圖2.9可見,管腳8為調頻電壓控制輸入端,管腳7輸出調頻偏置電壓,其值(指管腳6與7之間的電壓)是(VCC+VEE/5) ,它可作為管腳8的輸入電壓。此外,該器件的方波輸出端為集電極開路形式,一般需在正電源與9腳之間外接一電阻,其值常選用10k左右,如圖2.10所示。當電位器Rp1動端在中間位置,並且圖中管腳8與7短接時,管腳9、3和2的輸出分別為方波、三角波和正弦波。電路的振盪頻率f約為0.3/[C(R1+RP1/2)] 。調節RP1、RP2可使正弦波的失真達到較理想的程度。
在圖2.10中,當RP1動端在中間位置,斷開管腳8與7之間的連線,若在+VCC與-VEE之間接一電位器,使其動端與8腳相連,改變正電源+VCC與管腳8之間的控制電壓(即調頻電壓),則振盪頻率隨之變化,因此該電路是一個頻率可調的函數發生器。如果控制電壓按一定規律變化,則可構成掃頻式函數發生器。
圖2.10 8038接成波形產生器阿
3電路模擬
3.1電路模擬
3.1.1方波——三角波發生電路的模擬
圖3.1 方波
圖3.2 三角波
圖3.3 方波——三角波
3.1.2三角波---正弦波轉換電路的模擬
圖3.4 三角波——正弦波
參考文獻
[1]王 遠.模擬電子技術(第二版)[M].北京:機械工業出版社,2000
[2]謝自美.電子線路設計實驗測試(第二版)[M].武昌:華中科技大學出版社,2000
[3]路 勇.電子電路實驗及模擬[M].清華大學出版社,2003
[4]胡宴如.模擬電子技術[M].北京:高等教育出版社,2000
[5]周躍慶.模擬電子技術基礎教程[M].天津大學出版社, 2001
[6]曾建唐.電工電子實踐教程[M].北京:機械工業出版社,2002
❷ 你有自創語言嗎
你有自創語言嗎?
個人認為需要完成3件大事情:
1、設計符號,並設計每個符號對應的發音(表音語言)或含義(表意語言)(可以使用已知語言的符號)。
2、設計語法(這個得先對語法進行分類(相當於設計編程語言的格式))。
3、定義詞彙對應的符號組合(這個得對詞彙分類(相當於定義編程語言的關鍵詞)),我自己已經從韓文中找到靈感設計了一套比韓文字元復雜一些的符號集(主要是為了能支持更多發音),現在差語法和詞彙。
禮貌用語:
1、siπ lrAp nahreWi rje yUd'y vom zaweF bou L'sa Y'ء hOл,它比較貼切於漢語語序。
2、你好:li'wo'ha,再見:soi'kenn,謝謝:se'li'wa'o,對不起:teinchi。
3、動詞:11個,固有名詞:30個,重新簡化字(目前)50個,自造子音103個將來時:無變化(對於現在時來說),過去時:一種(句末加tu,有時候在動詞後面加變成「已知,見到過「的意思,不影響句末的變化),至於時間之類的按照中文來說就好了。
4、Batium ower rje Fortyaw Ziongigo Yamp'Lial Yamp suwCzЛ,自己覺得很快樂吧。
5、Лo,wiK rje yUd ower siaQiy'Lial Tayler.,不過也只有平時沒有事干自創一下。
❸ 使用 python 輕松創建自製 RPA
使用 Python 和 pywinauto 創建簡易 RPA
在無需依賴專業 RPA 工具的情況下,通過 Python 編程以及 pywinauto 庫,可以輕松實現業務自動化。本文將指導您使用 Python 和 pywinauto 自動操作 Windows 應用程序。
准備工作
首先安裝 Python,推薦從非官方頁面下載並確保安裝時勾選「Add Python 3.x to PATH」選項。安裝後,使用命令提示符運行 python --version 來驗證 Python 已正確安裝。
其次,使用 pipenv 安裝 Python 包管理工具,通過命令行執行 pipenv 安裝。接下來,創建工作目錄並使用 pipenv 初始化,確保在文件夾中生成 Pipfile 文件。
安裝 pywinauto 庫,通過 pipenv install pywinauto 命令進行。
編寫自動執行計算器程序
創建一個名為 calc.py 的文件,內含代碼以啟動 Windows 計算器並計算指定數值。
運行程序
使用 python calc.py 命令運行程序。計算器將自動啟動並計算輸入值。
理解 pywinauto 技術背景
使用 pywinauto 時需了解其技術基礎。兩種元素識別方法:Win32 API 和 UI 自動化。Win32 API 更易識別元素,而 UI 自動化在識別現代桌面應用元素上更有效。
使用 Win32 API 啟動應用的代碼如下:
若使用 UI 自動化,代碼示例如下:
默認使用 Win32 API。
屬性解析魔術
pywinauto 使用屬性解析魔術技術標識操作元素。例如,計算程序中標識數字 1 的按鈕如下編寫:
或使用內部結構描述符,如「Button24」來標識。若使用拼寫錯誤或符號差異,pywinauto 會使用「最佳匹配」演算法進行查找。
使用 print_control_identifiers() 方法查看元素標識詳情,以獲取「1」按鈕的表示方式。
了解 pywinauto 類結構
通過查看與「1」按鈕對應的 pywinauto 對象所屬類,可以進一步了解可用的操作方法。在 Windows 應用程序上下文中,該按鈕屬於 uia_controls.ButtonWrapper 類。
了解類結構,有助於執行特定操作。查閱文檔以獲取每個類實例可使用的具體方法。
如有興趣學習 RPA 技術,可關注公眾號【RPA業務流程自動化】,獲取更多業務咨詢時請添加微信。