freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

課程設(shè)計(jì)-基于at89c51單片機(jī)的簡(jiǎn)易函數(shù)發(fā)生器設(shè)計(jì)-在線瀏覽

2025-03-02 18:55本頁(yè)面
  

【正文】 )DGND:數(shù)字信號(hào)地LED數(shù)碼管由7個(gè)發(fā)光二極管組成,此外,還有一個(gè)圓點(diǎn)型發(fā)光二極管(在圖中以dp表示),用于顯示小數(shù)點(diǎn)。本設(shè)計(jì)采用共陰極接法:把發(fā)光二極管的陰極連在一起構(gòu)成公共陰極。各數(shù)字及部分字母代碼表如下:字型共陰極字形代碼字型共陰極字形代碼字型共陰極字形代碼03FH67DHC39H106H707Hd5EH25BH87FHE79H34FH96FHF71H466HA77H滅00H56DHb7CH 8255AIntel 8086/8088 系列的可編程外設(shè)接口電路簡(jiǎn)稱 PPI,型號(hào)為8255(改進(jìn)型為8255A及8255A5),具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。8255A的通用性強(qiáng),使用靈活,通過(guò)它CPU可直接與外設(shè)相連接。方式0 :基本的輸入輸出方式,即無(wú)須聯(lián)絡(luò)就可以直接進(jìn)行的 I/O方式。方式1 :選通I/O,此時(shí)接口和外圍設(shè)備需聯(lián)絡(luò)信號(hào)進(jìn)行協(xié)調(diào),只有A口和B口可以工作在方式1,此時(shí)C口的某些線被規(guī)定為A口或B口與外圍設(shè)備的聯(lián)絡(luò)信號(hào),余下的線只有基本的I/O功能,即只工作在方式0.方式2: 雙向I/O方式,只有A口可以工作在這種方式,該I/O線即可輸入又可輸出,此時(shí)C口有5條線被規(guī)定為A口和外圍設(shè)備的雙向聯(lián)絡(luò)線,C口剩下的三條線可作為B口方式1的聯(lián)絡(luò)線,也可以和B口一起方式0的I/O線。A口可以設(shè)置為方式0、方式方式2,B口與C口只能設(shè)置為方式0或方式1.晶振電路使用12MHZ的晶體振蕩器,30PF的電容。波形指示區(qū)采用四個(gè)綠色LED燈。波形信號(hào)的放大電路上采用了兩個(gè)放大器。首先是輸入模塊,為節(jié)省引腳,此處設(shè)計(jì)為44矩陣鍵盤。此功能由P1口控制。P0口分時(shí)復(fù)用,控制數(shù)碼管顯示后對(duì)數(shù)模轉(zhuǎn)換器DAC0832輸出波形數(shù)據(jù),信號(hào)經(jīng)放大電路放大,然后送至示波器顯示。如圖所示,單片機(jī)P口采用總線的連接形式。復(fù)位電路中,電容C3的作用是在按鈕按下時(shí)儲(chǔ)存電能,電阻R11用作在按鈕斷開(kāi)時(shí)保護(hù)電路。為節(jié)省接口,鍵盤設(shè)計(jì)為4*4矩陣鍵盤,通過(guò)P1口的高四位和低四位分別對(duì)鍵盤的行和列進(jìn)行掃描,從而檢測(cè)出按下的鍵。為了解決接口不足的問(wèn)題,本設(shè)計(jì)中使用8255A芯片對(duì)P0口進(jìn)行擴(kuò)展,它采用工作方式0即最基本的輸入輸出方式。頻率顯示此處采用3個(gè)共陰極的數(shù)碼管顯示波形頻率,顯示方式為靜態(tài)顯示。次設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單又能實(shí)現(xiàn)所要求的功能,同時(shí)也是設(shè)計(jì)要求外的創(chuàng)新點(diǎn)。圖示狀態(tài)為:三角波正在顯示。輸入的信號(hào)經(jīng)功率放大器放大后送至示波器顯示第五章 軟件設(shè)計(jì)本設(shè)計(jì)采用簡(jiǎn)單方便的C語(yǔ)言編寫(xiě)程序。按照思路,程序進(jìn)入主函數(shù)后需先對(duì)要用到的外部中斷和定時(shí)計(jì)數(shù)器進(jìn)行初始化,然后進(jìn)入波形輸出的無(wú)限循環(huán)中,在此過(guò)程中由中斷系統(tǒng)對(duì)輸出進(jìn)行控制,首先程序控制P1口掃描鍵盤,重新輸入波形和頻率的信息,輸入的數(shù)據(jù)經(jīng)程序處理后輸出數(shù)據(jù)送至LED波形指示燈和數(shù)碼管頻率顯示器對(duì)輸入信息進(jìn)行顯示。開(kāi)始初始化周期計(jì)算,定時(shí)計(jì)數(shù)器賦初值數(shù)碼管頻率顯示LED指示燈顯示調(diào)用顯示程序程序分析掃描鍵盤中斷顯示波形、頻率主函數(shù)void main() { chushihua()。 break。 break。break。 break。//8255A控制寄存器初始化 IT0=1。//外部中斷0中斷允許 EA=1。//外部中斷0優(yōu)先 TMOD=0x20。// }延時(shí)程序:因?yàn)镃語(yǔ)言編寫(xiě)的程序必須經(jīng)過(guò)編譯才能應(yīng)用于單片機(jī),而不同的語(yǔ)句編譯后指令的周期不確定,故延時(shí)函數(shù)不宜使用簡(jiǎn)單的for語(yǔ)句或while語(yǔ)句。void delay()//延時(shí) { while(!TF1)。 } void delayms(uint j)//{uchar mm。mm216。} } 顯示程序:此處的顯示程序?yàn)閿?shù)碼管頻率顯示提供數(shù)據(jù)。顯示子程序設(shè)置了三個(gè)不同的參數(shù),通過(guò)總程序的調(diào)用及賦值,在數(shù)組中調(diào)用不用的數(shù)字對(duì)應(yīng)的代碼進(jìn)行顯示。 sled2=smg[m]。 }void xsh()//總顯示 { if(k==3) xshz(a[0],a[1],a[2])。 if(k==1) xshz(12,12,a[0])。 }鍵盤輸入程序:本處使用鍵盤的掃描方法為反轉(zhuǎn)法,其原理是給端口賦值兩次,通過(guò)檢測(cè)兩次的結(jié)果而得到按鍵的信息。 由此我們便得到了按下第一個(gè)鍵時(shí)所對(duì)應(yīng)的數(shù)值0xee,以此類推可得出其他15個(gè)按鍵對(duì)應(yīng)的數(shù)值,有了這種對(duì)應(yīng)關(guān)系,矩陣鍵盤編程問(wèn)題也就解決了,也就是程序的算法已經(jīng)有了。 rr=0。 if((P1amp。 if((P1amp。0xf0。 lie=P1amp。 rr=hang+lie。//對(duì)不同掃描結(jié)果返回不同的值 else if(rr==table[1]) return(44)。 else if(rr==table[5]) return(2)。 else if(rr==table[3]) return(66)。 else if(rr==table[7]) return(0)。 else if(rr==table[9]) return(5)。 else if(rr==table[11]) return(11)。 else if(rr==table[13]) return(8)。 else if(rr==table[15]) return(22)。 } 波形函數(shù):方波void fang(){ uchar i。 for(i=0。i++) delay()。 for(i=0。i++) delay()。 for(x=0。x++) {DAC0832=x。}}三角波void tran()//三角波 { unsigned char y。y128。 delay()。y0。 delay()。 for(mm=0。mm++) {DAC0832=table2[mm]。}}中斷函數(shù):void zhongduan() interrupt 0 //中斷 { uchar e,f=0。 k=0。 a[0]=input()。p31=1。p34=1。} else if(a[0]==44) {p31=0。p33=1。old=a[0]。p31=1。p34=1。} else if(a[0]==66) {p34=0。p31=1。old=a[0]。e3。 a[e]=input()。 k++。 delayms(100)。 TL1=256(1000000/f)/256。uint f。sbit p31=P3^1。sbit p34=P3^4。sbit p36=P3^6。uchar old。uchar k=0。 uchar code table[]={0xe7,0xeb,0xed,0xee,0xd7,0xdb,0xdd,0xde,0xb7,0xbb,0xbd,0xbe,0x77,0x7b,0x7d,0x7e}。void chushihua()//初始化{ sled=0x80。 EX0=1。 PX0=1。 TR1=1。 TF1=0。 while(j) {for(mm=0。mm++)。 sled2=smg[m]。 }void xsh()//顯示 { if(k==3) xshz(a[0],a[1],a[2])。 if(k==1) xshz(12,12,a[0])。 }uchar input() //輸入 { uchar hang,lie,rr。 P1=0xf0。0xf0)!=0xf0) {delayms(20)。0xf0)!=0xf0) { hang=P1amp。 P1=0x0f。0x0f。 } } if(rr==table[0]) return(33)。 else if(rr==table[4]) return(1)。 else if(rr==table[2]) return(55)。 else if(rr==table[6]) return(3)。 else if(rr==table[8]) return(4)。 else if(rr==table[10]) return(6)。 else if(rr==table[12]) return(7)。 else if(rr==table[14]) return(9)。 else return(12)。 DAC0832=0。i128。 DAC0832=0xff。i128。 }void jvchi()//鋸齒波{ unsigned char x。x255。 delay()。 for(y=0。y++) {DAC0832=y。 } for(y=128。y) { DAC0832=y。 }}void sin()//正弦波 { unsigned char mm。mm255。 delay()。 f=0。 while(input()==12)。 if(a[0]==33) {p30=0。p33=1。old=a[0]。p30=1。p34=1。} else if(a[0]==55) {p33=0。p30=1。old=a[0]。p30=1。p33=1。} else{ for(e=0。e++) { while(input()9)。 f=10*f+a[e]。 i
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1