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

正文內(nèi)容

基于pic單片機的點陣顯示屏控制系統(tǒng)設(shè)計及實現(xiàn)-預(yù)覽頁

2025-07-13 12:37 上一頁面

下一頁面
 

【正文】 02, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, xx: 0x20 ~ 0x7e調(diào)節(jié)顯示亮度0xFE, 0x98, xx: 0x01 ~ 0xff整個程序都是由眾多函數(shù)配合實現(xiàn)功能的,本文在此重點介紹“20*2 LED Smartie”程序的主要程序模塊的大致流程圖。Temp接收數(shù)據(jù)已處于命令接收狀態(tài)mand_t的值0是接收的數(shù)據(jù)為0xfe否否mand_flag = 1。mand_flag = 0。判斷mand_idmax = 18。mand_tmax?mand_t = 0。 mand_flag,全局變量。 mand_t,中斷函數(shù)中的局部變量。 string[],全局變量。二、數(shù)據(jù)接收完畢后的命令處理 如果在完成串行數(shù)據(jù)接收,且所接收到的數(shù)據(jù)是符合規(guī)范的預(yù)定義命令字,則相應(yīng)的標(biāo)記位會在UART中斷函數(shù)中被置位,當(dāng)退出中斷函數(shù)后,就需要一個命令處理函數(shù)根據(jù)各個標(biāo)記位的狀態(tài)進行正確的判別,并使得單片機做出相對應(yīng)的響應(yīng)[14]。“20*2 LED Smartie”使用PIC單片機的Timer0模塊作為“看門狗”,在每個定時器中斷服務(wù)程序中對整個程序的相關(guān)標(biāo)識符進行判別,若發(fā)現(xiàn)邏輯上的問題,則表明發(fā)生了串行數(shù)據(jù)接收故障,將故障標(biāo)識符置位,使單片機及時拋棄所接收到的錯誤數(shù)據(jù)[16]。mand_id = 0。命令狀態(tài)標(biāo)記,為1則處于命令接收狀態(tài)下。命令接收計數(shù)器。 整個程序都是由眾多函數(shù)配合實現(xiàn)功能的,本文在此重點介紹“20*2 LED Smartie”程序的兩個主要函數(shù)的代碼,“20*2 LED Smartie”的全部代碼見附錄三。 //接收中斷標(biāo)志清零 if(FERR) { SPEN=0。 //Overrun error,clear OERR by clearing CREN CREN=1。 break。 mand_flag = 0。 } mand_t++。 switch(mand_id) { case DISPLAY: case BRIGHTNESS: break。 ready = 0。 ready = 0。 mand_t = 1。 default: //非預(yù)定義命令字 mand_flag = 0。 } } } else { if(temp==0xfe) { mand_flag = 1。 } } GIE = 1。 //再次配置timer0的延遲時間 if(mand_flag) //命令接收狀態(tài)標(biāo)記為1,則可能發(fā)生了故障 { if(error) //error標(biāo)記為1,發(fā)生命令接收故障 { mand_flag = 0。 error = 0。 //開中斷 }} 注:DISPLAY:宏定義,對應(yīng)的值為0x47 BRIGHTNESS:宏定義,對應(yīng)的值為0x98Line:全局變量,表示所需顯示字符所在的行號ready:全局變量,命令接收完畢標(biāo)識mand_flag:全局變量,命令接收標(biāo)識mand_t:全局變量,命令接收計數(shù)器 mand_id:全局變量,命令類型標(biāo)識二、命令處理函數(shù)與圖410中描述的一致,“20*2 LED Smartie”的命令處理函數(shù)如下:void Process(void){ switch(mand_id) { case DISPLAY: //刷新LED屏顯示內(nèi)容 mand_flag = 0。 ready = 0。 mand_id = 0。 default: //無效命令 mand_flag = 0。 break。圖52 MPLAB IDE 在PC機上運行上位機軟件“LCD Smartie ”,觀察“LCD Smartie ”的程序窗口與“20*2 LED Smartie”顯示屏的顯示效果。 結(jié)束語“20*2 LED Smartie”顯示屏使用HT1632C作為LED點陣的驅(qū)動芯片,減小了PIC16F723單片機驅(qū)動和刷新LED屏的程序開銷,使其能夠有更多的資源用于接收和處理串行數(shù)據(jù)。由于時間和水平的關(guān)系,本顯示屏在許多方面尚有不足。致 謝我的畢業(yè)設(shè)計能夠順利完成,得到了來自老師、同學(xué)以及曾實習(xí)公司等各方面的幫助。Sure Electronics公司,是我曾經(jīng)實習(xí)過的一家私營企業(yè)。 附錄三:程序代碼 ifndef _DECLARE_define _DECLARE_//宏定義用到的端口define CS1 RB0 // 以下為八個控制端口define CS2 RB1define CS3 RB2define CS4 RB3define CS5 RB4define CS6 RB5define CS7 RB6define CS8 RB7define CS_OFF CS1=1。CS5=1。define CS_ON CS1=0。CS5=0。define CLK RC3 //模擬SPI通信時的時鐘線define DAT RC5 //模擬SPI通信時的數(shù)據(jù)線//以下是用宏定義的方式定義的函數(shù)define CLK_DELAY NOP()//下面的定義方便對HT1632C控制命令的編寫define RC_MASTER_MODE 0b100000110000 //Set master mode and clock //source from onchip RC//oscillatordefine SYS_EN 0b100000000010 //Turn on system oscillatordefine LED_ON 0b100000000110 //Turn on LED duty cycle generatordefine N_MOS_COM8 0b100001000000 //NMOS open drain output and //8 mon optiondefine PWM_1 0b100101000000 //PWM 1/16 dutydefine PWM_2 0b100101000010 //PWM 2/16 dutydefine PWM_3 0b100101000100 //PWM 3/16 dutydefine PWM_4 0b100101000110 //PWM 4/16 dutydefine PWM_5 0b100101001000 //PWM 5/16 dutydefine PWM_6 0b100101001010 //PWM 6/16 dutydefine PWM_7 0b100101001100 //PWM 7/16 dutydefine PWM_8 0b100101001110 //PWM 8/16 dutydefine PWM_9 0b100101010000 //PWM 9/16 dutydefine PWM_10 0b100101010010 //PWM 10/16 dutydefine PWM_11 0b100101010100 //PWM 11/16 dutydefine PWM_12 0b100101010110 //PWM 12/16 dutydefine PWM_13 0b100101011000 //PWM 13/16 dutydefine PWM_14 0b100101011010 //PWM 14/16 dutydefine PWM_15 0b100101011100 //PWM 15/16 dutydefine PWM_16 0b100101011110 //PWM 16/16 dutyendif // ASCII字模的數(shù)據(jù)表 // 碼表從0x20~0x7e// const unsigned char AsciiDot[] = // ASCII{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, // ! 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x00, // 0x28, 0xFE, 0x28, 0xFE, 0x28, 0x00, // 0x24, 0x74, 0xDE, 0x54, 0x48, 0x00, // $ 0xC4, 0xC8, 0x10, 0x26, 0x46, 0x00, // % 0x6C, 0x92, 0x6A, 0x04, 0x0A, 0x00, // amp。 include include include //*********************************************************************//函數(shù)名稱:器件文件配置//函數(shù)功能:配置單片機工作的各種模式和狀態(tài)//輸入?yún)?shù):INTIO:INTOSCIO內(nèi)部振蕩器,OSC1和OSC2用作I/O端口// WDTDIS:禁止看門狗定時器// PWRTDIS:禁止上電延時定時器// MCLREN:使能MCLR// PROTECT:Do protect the code// BORDIS:Brown out reset disable// BORV25:Brownout reset voltage set to nominal // PLLEN:// DEBUGEN:Incircuit debugger enabled// VCAPDIS:Voltage regulator capacitor disable//輸出參數(shù): 無//*********************************************************************__CONFIG(INTIO amp。 PROTECT amp。 DEBUGEN)。 //命令長度控制unsigned char mand_t = 0。 //字符串臨時存放空間unsigned char ready = 0。 //系統(tǒng)初始化void UART_Init(void)。 //以SPI模式發(fā)送數(shù)據(jù)void ChipSelect(signed char select)。 //向HT1632C寫地址void PrintChar(unsigned char c)。 //顯示單行字符串void main(){ SystemInit()。 Print(2, NJUPT B06050528 Luan)。 //設(shè)置內(nèi)部振蕩器頻率是8MHz IRCF0 = 0。 //PORTB設(shè)置成數(shù)字I/O端口 TRISB = 0x00。 //PORTC5(DAT信號)設(shè)置成輸出方式 T0IE = 1。 //命令計數(shù)器清零 mand_id = 0。 //選擇NMOS開漏輸出,32 * 8 模式 CommandWrite(PWM_12)。 //選擇低速波特率模式,上電復(fù)位后默認(rèn)的狀態(tài) SYNC = 0。 //使能USART接收中斷 PEIE = 1。 case 2: CommandWrite(PWM_2)。 case 4: CommandWrite(PWM_4)。 case 6: CommandWrite(PWM_6)。 case 8: CommandWrite(PWM_8)。 case 10: CommandWrite(PWM_10)。 case 12: CommandWrite(PWM_12)。 case 14: CommandWrite(PWM_14)。 case 16: CommandWrite(PWM_16)。//*********************************************************************void CommandWrite(unsigned int mand){ unsigned char i = 0。 //命令字一共是12個位,這里首先屏蔽高四位的影響 ChipSelect(0)。 for(i=0。 j = mand amp。 //將取出的值移至最低位 DAT = j。 } ChipSelect(0)。 address = address amp
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1