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

正文內(nèi)容

led顯示屏控制器的設計與實現(xiàn)(文件)

2025-07-25 11:56 上一頁面

下一頁面
 

【正文】 word+1][64+disrow*4+2]。BUFFDOWN[10]=Table[word+2][64+disrow*4+2]。BUFFDOWN[14]=Table[word+3][64+disrow*4+2]。uchar TEMP0,TEMP1,i,inc。amp。col24) inc=2。for(s=0+inc。for(i=0。 //取出最4 / 47高位e2=~(TEMP0i)amp。CLK=0。i0。} } void PWM_LIGHT(uchar p) //亮度調(diào)整{OE=0。}void UART() interrupt 4{ EA=1。} //主函數(shù)入口void main(void){uchar i。 TH1 = 0xE6。 ES = 1。 //串口中斷優(yōu)先R1=0。col++)//循環(huán) 32 次,點亮并移動一個漢字,步進是一位,{coll=col%8。disrow16。 STB=1。0x02。0x08。//移動完 NUMBER 個漢字后重新開始} }}E2: 下位機接收程序includeincludedefine uchar unsigned chardefine uint unsigned intsbit sda=P2^0。void stop()。void delay()。uchar read_date(uchar add)。uchar table[32]。 sbit HC138_C=P1^2。 6 / 47sbit HC595_CLK=P1^7。unsigned char r_data[8], g_data[8]。 while(1) {if(flag==1){ for (t=0。HC595_CLK=0。r_data[2*k+1]=0xffread_date(k*32+t*2)。 HC595_STB=1。HC138_OE=1。0x02。0x08。 } }}}}void c64_init(){scl=1。 scl=1。}void stop(){ sda=0。 sda=1。delay()。scl=0。 scl=1。}void write(uchar date){ uchar i。i++) { if(dateamp。 delay()。 delay()。scl=0。 for(i=0。 temp=1。 }return temp。 ack()。 ack()。 delay_ms(5)。write(0xa0)。write(add%256)。ack()。return temp。_nop_()。}void delay_ms(uchar z) { uchar i,j。j120。date1=SBUF。if(temp==128){temp=0。TMOD|=0x20。ES=1。i++){HC595_RD=rddamp。0x80。}}。HC595_CLK=1。rdd=rdd1。for (i=0。TR1=1。}}if(TI){TI=0。SBUF=date1。 }}9 / 47void chuan() interrupt 4{uint temp,date1。i4。_nop_()。_nop_()。noack()。start()。write(add/256)。c64_init()。 ack()。 ack()。 start()。} scl=0。i++) { scl=1。sda=1。 delay()。 delay()。}else { sda=0。 for(i=0。 scl=0。}void noack(){ sda=1。amp。}void ack(){uchar i。 scl=1。 sda=0。}void start(){ sda=1。k8。0x04。0x01。 HC595_CLK=0。g_data[2*k+1]=0xffread_date(k*32+t*2)。k4。t++) { HC138_OE=0。void main(){ uchar k。 sbitHC595_RD=P1^5。 sbit HC138_OE=P0^1。sbit HC138_A=P1^0。void writeto()。void write_date(uchar add,uchar date)。void noack()。void start()。}}}word=word+1。0x04。0x01。//裝載上下兩屏各一線點陣數(shù)據(jù)Send_one_line()。iSPEED。while(1){ //循環(huán) 16 次,點亮并移動一個漢字,步進是一位for(col=0。 // 開總中斷 TR1=1。效驗位無 (12M) TL1 = 0xE6。 //REN=1 允許串行接受狀態(tài),串口工作模式 1 TMOD|= 0x20。 //清除 RI 接受中斷標志Recive=SBUF。OE=1。j0。 //移位時鐘} }}void delay(unsigned int i){unsigned int j。 //取出最高位//R1=e1。i++){e1=~(TEMP1i)amp。s++) {TEMP0=Combine_2byte(BUFFDOWN[s],BUFFDOWN[s+1])。amp。if(16=colamp。if(col8) inc=0。BUFFDOWN[16]=Table[word+4][64+disrow*4+3]。BUFFDOWN[12]=Table[word+3][64+disrow*4+0]。BUFFDOWN[8]=Table[word+2][64+disrow*4+0]。BUFFDOWN[4]=Table[word+1][64+disrow*4+0]。BUFFDOWN[0]=Table[word][64+disrow*4+0]。BUFF__UP[13]=Table[word+3][disrow*4+1]。BUFF__UP[9]=Table[word+2][disrow*4+1]。BUFF__UP[5]=Table[word+1][disrow*4+1]。//裝載上半屏一線點陣數(shù)據(jù)BUFF__UP[1]=Table[word][disrow*4+1]。tempcol=coll。sbit STB=P1^6。sbit D=P1^3。 //上半屏顯示緩2 / 47沖 上下緩沖字節(jié)數(shù)取值=[2*板點陣寬度/8]+1 比較保險,即兩倍板的點陣字節(jié)數(shù).uchar BUFFDOWN[17]。雖然設計結束了,但學習還在繼續(xù)。這些經(jīng)驗和教訓是: (1)、設計之前應該進行大量的資料收集和分析,確定一個清晰的設計思路。從設計之初就確定了參照大屏幕顯示屏的實現(xiàn)方法和實際情況設計一款小屏幕的 LED 點陣顯示屏。 (漢字移動圖片見附錄 D)7 總結經(jīng)過一段時間的畢業(yè)設計,終于完成了基于 STC12C5A60S2 單片機的 LED 顯示控制器的 設計與實現(xiàn),項 目所要求的功能基本達到。 漢字移動測試測試方法:在最低幀率和最高幀率設置下,用秒表統(tǒng)計出各個移動速度設置值下的,每秒移動的水平點陣數(shù),單位為點/秒。顯示模式選擇顯示模式 一顯示模式 二顯示模式 三讀 E E P O R M 首地址載入點陣數(shù)據(jù)讀 E E P O R M 首地址送入行列顯示緩沖區(qū)左移顯示溫度值載入點陣數(shù)據(jù)緩沖區(qū)左移一位是否移完一個漢字 ?送各行列顯示讀 E E P O R M 首地址載入點陣數(shù)據(jù)送入行列顯示緩沖區(qū)左移一位N ON ON OY E SN O時間顯示溫度顯示漢字移動顯示按鍵調(diào)整顯示當前時間Y E SY E SY E S是否顯示完所有漢字 ?是否移完一個漢字 ?是否移完一個漢字 ?圖 按鍵選擇流程圖25 / 47 中斷數(shù)據(jù)處理上位機發(fā)送到控制卡上的漢字編碼是通過中斷接收數(shù)據(jù)(SBUF)再存入外部存儲器 AT24C64 存儲器中,單片機通過讀取存儲器的地址把數(shù)據(jù)送入 74HC595 的數(shù)據(jù)線上,通過行列掃描把存儲的數(shù)據(jù)顯示在 LED 顯 示屏上。上位機與下位機通信的時候為了識別通信數(shù)據(jù)的所代表的含義,所以必須有通信協(xié)議。對于不同的字庫,漢字代碼起始位置的計算方法可能存在差異,例如 HZK16 若以 ADDRESS 表示首地址, Q 表示區(qū)碼,W表示位碼,經(jīng)分析和實踐得出 HZK16 中漢字首地址計算公式為:ADDRESS = 32 [( Q1 ) 94 +( W1 )] (式 )在 中,獲取漢字區(qū)位碼可以用 ASC( )函數(shù)和 HEX( )函數(shù),函數(shù) ASC( )返回一個 Integer 數(shù)據(jù),代表字符串中首字母的字符代碼。國標碼 和區(qū)位碼都有 94 個區(qū),每個區(qū)又都有 94 個位。 \hzk16 For Binary As 1 //打開漢字庫Get 1, bb + n, zw(n)初始化控件屬性返回字符邊界檢查字符串轉(zhuǎn)為內(nèi)碼計算控件當前值生成數(shù)據(jù)幀打開串口發(fā)送數(shù)據(jù)關閉串口返回窗體加載事件 窗體加載事件選擇路徑選擇文件打開文件返回打開文件事件保存文件框內(nèi)數(shù)據(jù)返回保存事件圖 上位機軟件事件流程 漢字字模的提取方法HZKl6*16 點陣漢字字庫可以在中文操作軟件( UCDOS)中找到現(xiàn)成的文件。HA1) + (CLng(amp。 Hex(zw(i))End IfIf i Mod 16 = 0 Then = ( + Chr(13) + Chr(10))End IfCall hexSendSleep 20 = Next iErase zw() 39。 Hex(zw(i)) //加入 0x 的十六進制Else = amp。 0x0 amp。沒有像 C 語言一樣 的具體流程,只能將各主要控件的主要事件響20 / 47應作簡要流程說明,具體流程圖如 所示。 對于通信電纜的選擇,本設計是將通信線和電源輸入合并在一個 DB9 連接器上。正好滿足條屏的應用場合。 開關電源在 LED 屏應用中的優(yōu)勢使用開關電源,相對于線性電源來說,有以下幾個明顯的優(yōu)勢。同時,條屏一般是全天候工作, 對電源系統(tǒng)的長時間工作的穩(wěn)定性要求較高。為保證單片機等集成電路的穩(wěn)定工作,要求電源電壓的最大波動范圍在 之間。RS232C 規(guī)定最大的負載電容為 2500pF,這個電容限制了傳輸距離和傳輸速率,由于 RS232C 的發(fā)送器和接收器之 間具有公共信號地(GND),屬于非平衡 電壓型傳輸電路,不使用差分信號傳輸,因此不具備抗共模干擾的能力,共模噪聲會耦合到信號中。本設計 采用 RS232C 串行通信方式。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設備或過程控制、測溫類消費電子產(chǎn)品等。C 范圍內(nèi),精度為177?,F(xiàn)在新一代的“DS1820”體積更小、更經(jīng)濟、更靈活。 2176。采用三線接口與CPU 進 行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或 RAM 數(shù)據(jù)。再經(jīng)過驅(qū)動管驅(qū)動對應的行線。穩(wěn)定系統(tǒng)電壓,旁路掉電源中的高頻脈動成份。 由于 LED 顯示屏的工作 電流時刻在變化,造成了系統(tǒng)電壓的波動。74HC595 在 5V 供電的時候能夠達到 30MHz 的時鐘速度,每個并行輸出端口均能承受 20mA 的灌電流和拉電流。4 硬件電路設計 LED 控制卡電路設計 LED 點陣屏控制卡是整個 LED 顯示屏的核心控制器件,它集成了 STC12C5A60S2 主控芯片、時鐘芯片、溫度傳感器、存儲芯片、串口轉(zhuǎn)換電路為一體的控制器,它是控制點陣屏的核心部分,各項功能的實現(xiàn)必須經(jīng)過控制卡的控制。并通過一定的算法,把上位機發(fā)送的漢字編碼轉(zhuǎn)換成標準的 GB2312 漢字編碼。該算法是將 Display_Buffer 和 Temp_Buffer 中的數(shù)據(jù)首尾相接地左移一位,并不斷把 Temp_Buffer 移入 Display_Buffe。遵循結構化的程序設計思路,把單片機在顯示模式時所有工作量分為以下三個任務:(1)、掃 描顯示任務:掃描顯示任務負責把 Display_Buffer 中的數(shù)據(jù)依次發(fā)送到列驅(qū)動器 74HC595,并按嚴格的時序高電平選通十六根行掃描線(Y0—Y15),使每一列數(shù)據(jù)對應著一個行線狀態(tài)。 工作原理分析單片機上電復位后,先從外部存儲器 E2PROM 讀取上次存儲在內(nèi)部的顯示模式,
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1