




已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
單片機實驗開發(fā)板設(shè)計(包含各模塊C程序)該程序包含有:液晶、24C02、LED、鍵盤掃描等。#include#include#include#define uintunsigned int#define uchar unsigned char#define led RD#define key_rec T1#define BUZZER INT0uchardata_com,data_show;uchar dat1,dat2,dat3,dat4,dat5;uchar a,b;long temp1;uint c=0;sbit led_1=P27;sbit led_2=P25;sbit led_3=P26;sbit led_4=P24;sbit led_5=P23;sbit led_6=P22;sbit led_7=P21;sbit led_8=P20;sbit CS1=P10;sbit CS2=P11;sbit CS3=P12;sbit clk_adc=P00;sbit dout_adc=P01;sbit lcd_data=P17;sbit lcd_rw=P16;sbit lcd_clk=P15;bit key1_black,key2_black,key3_black,key4_black,key1_blue,key2_blue,key3_blue,key4_blue,key5_blue,key6_blue,keyon,keyoff,buzzer1,point;uchar key1_state,count,temp;ucharcode order4=0x38,0x01,0x06,0x0C;ucharcode data117=0x20,0x20,0x20,0x54,0x69,0x6D,0x65,0x3A,0x45,0x54,0x46,0x4D,0x3A,0x20;ucharcode data216=0x77,0x77,0x77,0x2E,0x79,0x64,0x64,0x7A,0x33,0x31,0x35,0x2E,0x63,0x6F,0x6D,0x20;uchar code T0_H16=0xFF,0xFB,0xFB,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE;uchar code T0_L16=0xF1,0x4,0x90,0xC,0x44,0xAC,0x9,0x34,0x82,0xC8,0x06,0x22,0x56,0x85,0x9A,0xC1;uchar code music32=8,0,8,9,8,0xB,0xA,0,8,0,8,9,8,0xC,0xB,0,8,0,8,0xF,0xD,0xB,0xA,9,0xE,0,0xE,0xD,0xB,0xC,0xB,0x0;uchar code music_L32=2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4;uintLED1_data,LED2_data,LED3_data,LED4_data,LED_data,LED5_data,LED6_data,LED7_data,LED8_data;uint second,minute;long t0count;uchar code led_segment13=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x0,0xFF,0x7F;void delay(uint v)while(v!=0) v-;void delay1(uint j)while(j!=0)j-;delay(200);void delay2(uint j)while(j!=0)j-;delay1(80);/*液晶寫指令程序*/write_com (uchar data_com)lcd_rw=0;lcd_data=0;lcd_clk=1;P0=data_com;delay(500);lcd_clk=0;/*液晶寫數(shù)據(jù)程序*/write_data(uchar data_show)lcd_rw=0; lcd_data=1; lcd_clk=1; P0=data_show;delay(500);lcd_clk=0;/*液晶初始化程序*/init_lcd(void)write_com(order0);write_com(order1);write_com(order2);write_com(order3);/*頻率設(shè)置狀態(tài)下液晶顯示程序*/lcd_set_display(char cursor_shift) write_com(0x0D);write_com(0x80);for(c=0;c8;c+)write_data(data1c);/ write_data(LED1_data+0x30); write_data(LED2_data+0x30); write_data(0x3A); write_data(LED3_data+0x30); write_data(LED4_data+0x30); write_com(0xc0); for(c=0;c16;c+) write_data(data2c); write_com(0xC0+cursor_shift);uchar tlc549_read()uchar i,adcdata;CS2=0;CS1=0;adcdata=0;for(i=0;i8;i+)adcdata=adcdata1;if(dout_adc) adcdata+;clk_adc=1;clk_adc=0;CS2=1;return adcdata;void display()led=1;led_1=1;led_2=1;led_3=1;led_4=1;led_5=1;led_6=1;led_7=1;led_8=1;/*LED1_data=minute/10;LED3_data=minute%10;LED2_data=second/10;LED4_data=second%10;LED1_data=5;LED3_data=4;LED2_data=3;LED4_data=2;LED5_data=9;LED6_data=8;LED7_data=7;LED8_data=6;*/CS1=0;P0=LED_data;delay(3);CS1=1;led=0;delay(27);CS1=0;P0=led_segmentLED1_data;delay(3);CS1=1;led=1;led_1=0;delay(27);CS1=0;if(point=1)P0=led_segmentLED2_data&0x7F;else P0=led_segmentLED2_data;delay(3);CS1=1;led_1=1;led_2=0;delay(27);CS1=0;P0=led_segmentLED3_data;delay(3);CS1=1;led_2=1;led_3=0;delay(27);CS1=0;P0=led_segmentLED4_data;delay(3);CS1=1;led_3=1;led_4=0;delay(27);CS1=0;P0=led_segmentLED5_data;delay(3);CS1=1;led_4=1;led_5=0;delay(27);CS1=0;P0=led_segmentLED6_data;delay(3);CS1=1;led_5=1;led_6=0;delay(27);CS1=0;P0=led_segmentLED7_data;delay(3);CS1=1;led_6=1;led_7=0;delay(27);CS1=0;P0=led_segmentLED8_data;delay(3);CS1=1;led_7=1;led_8=0;delay(27);CS1=0;void read_key()keyon=0;key_rec=1;CS1=1;if(INT1=0) key1_black=1;keyon=1;keyoff=1;if(T0=0)key2_black=1;led=1;led_1=1;led_2=1;led_3=1;led_4=1;led_5=1;led_6=1;led_7=1;led_8=1;P0=0xFE;delay(3);if(key_rec=0)key3_black=1;P0=0xFD;delay(3);if(key_rec=0)key4_black=1;P0=0xFB;delay(3);if(key_rec=0)key1_blue=1;P0=0xF7;delay(3);if(key_rec=0)key2_blue=1;P0=0xEF;delay(3);if(key_rec=0)key3_blue=1;P0=0xDF;delay(3);if(key_rec=0)key4_blue=1;P0=0xBF;delay(3);if(key_rec=0)key5_blue=1;P0=0x7F;delay(3);if(key_rec=0)key6_blue=1;CS1=0;KeyBlackProcess()while(keyoff) /*防連擊程序*/read_key();if(keyon=0)keyoff=0;if(key1_black=1)key1_state+;count+;if(key1_state=3)key1_state=0;if(count=200) count=0;key1_black=0;KeyBlueProcess()uint i;uchar k,n,m;/*if(key1_blue=1)LED1_data=minute/10;LED2_data=minute%10;LED3_data=second/10;LED4_data=second%10;*/*00000000初始 清平*/if(key1_blue=0&key2_blue=0&key3_blue=0&key4_blue=0&key5_blue=0&key6_blue=0)LED1_data=11;LED2_data=11;LED3_data=11;LED4_data=11;LED5_data=11;LED6_data=11;LED7_data=11;LED8_data=11;LED_data=0xFF;BUZZER=1;ET0=0;TR0=0;ET1=0;TR0=1;minute=0;second=0;t0count=0;point=0;count=0;/* 100000 八個發(fā)光二極管點亮*/if(key1_blue=1&key5_blue=0&key4_blue=0&key3_blue=0&key2_blue=0&key6_blue=0)LED1_data=11;LED2_data=11;LED3_data=11;LED4_data=11;LED5_data=11;LED6_data=11;LED7_data=11;LED8_data=11;LED_data=0;/* 010000 數(shù)碼管顯示1234*/if(key1_blue=0&key2_blue=1&key3_blue=0&key4_blue=0&key5_blue=0&key6_blue=0)LED5_data=1;LED6_data=2;LED7_data=3;LED8_data=4;LED1_data=5;LED2_data=6;LED3_data=7;LED4_data=8;LED_data=0xFF;/* 110000 蜂鳴器發(fā)聲*/if(key1_blue=1&key2_blue=1&key3_blue=0&key4_blue=0&key5_blue=0&key6_blue=0)LED1_data=11;LED2_data=11;LED3_data=11;LED4_data=11;LED_data=0xFF;ET1=1;TR1=1;for(k=0;k32;k+)n=musick;m=music_Lk;a=T0_Hn;b=T0_Ln;delay2(m);/*001000 防連擊鍵處理 按鍵在松開瞬間發(fā)光二極管亮滅 黑鍵1*/if(key1_blue=0&key2_blue=0&key3_blue=1&key4_blue=0&key5_blue=0&key6_blue=0)LED1_data=11;LED2_data=11;LED3_data=11;LED4_data=11;LED_data=0xFF;ET0=0;TR0=0;BUZZER=1;LED_data=0x0;if(key1_state=1) LED_data=0xFF;/* 101000 按鍵連擊方式 按下發(fā)光二極管滅 黑鍵2*/if(key1_blue=1&key2_blue=0&key3_blue=1&key4_blue=0&key5_blue=0&key6_blue=0)LED1_data=11;LED2_data=11;LED3_data=11;LED4_data=11;LED_data=0xFF;BUZZER=1;if(key2_black=1) LED_data=0xFF;else LED_data=0x0;/* 011000 按鍵計數(shù) 黑鍵1*/if(key1_blue=0&key2_blue=1&key3_blue=1&key4_blue=0&key5_blue=0&key6_blue=0)LED1_data=11;LED2_data=count/100;LED3_data=count%100;LED3_data=LED3_data/10;LED4_data=count%10;LED_data=0xFF;BUZZER=1;/* 111000 流水燈 黑鍵1切換變換方式*/if(key1_blue=1&key2_blue=1&key3_blue=1&key4_blue=0&key5_blue=0&key6_blue=0)ET0=1;TR0=1;BUZZER=1;key_rec=0;BUZZER=1;led=0;if(key1_state=0)for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xFE;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xFD;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xFB;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xF7;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xEF;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xDF;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xBF;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0x7F;else if(key1_state=1)for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xFC;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xF9;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xF3;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xE7;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xCF;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0x9F;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0x3F;for(i=0;i100;i+)display();read_key();KeyBlackProcess();else if(key1_state=2)LED_data=0xAA;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0x55;for(i=0;i100;i+)display();read_key();KeyBlackProcess();/*000100 時鐘顯示*/if(key1_blue=0&key2_blue=0&key3_blue=0&key4_blue=1&key5_blue=0&key6_blue=0)ET0=1;TR0=1;BUZZER=1;LED1_data=minute/10;LED2_data=minute%10;LED3_data=second/10;LED4_data=second%10;/*100100 跑表 黑鍵1控制*/if(key1_blue=1&key2_blue=0&key3_blue=0&key4_blue=1&key5_blue=0&key6_blue=0)if(key1_state=1)ET0=1;TR0=1;else if(key1_state=2)ET0=0;TR0=0;elseET0=0;TR0=0;minute=0;second=0;t0count=0;count=0;BUZZER=1;LED5_data=minute/10;LED6_data=minute%10;LED7_data=second/10;LED8_data=second%10;LED1_data=12;LED2_data=t0count/100;LED3_data=t0count%100;LED3_data=LED3_data/10;LED4_data=t0count%10;LED_data=0xFF;/*010100 數(shù)字電壓表 */if(key1_blue=0&key2_blue=1&key3_blue=0&key4_blue=1&key5_blue=0&key6_blue=0)ET0=0;TR0=0;BUZZER=1;LED1_data=11;LED_data=0xFF;LED4_data=11;point=1;CS2=0;temp=tlc549_read();temp1=temp*2;LED2_data=temp1/100;LED3_data=temp1%100;LED3_data=LED3_data/10;LED4_data=temp1%10;LED1_data=11;LED5_data=11;LED6_data=11;LED7_data=11;LED8_data=11;LED_data=0xFF;display();/*LCD顯示*/if(key1_blue=1&key2_blue=1&key3_blue=0&key
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年紫外激光傳輸光纖合作協(xié)議書
- 2025年醫(yī)療儀器設(shè)備制造項目發(fā)展計劃
- 教育與商業(yè)的融合以大數(shù)據(jù)分析支持學(xué)生個性化發(fā)展
- 家庭教育心理學(xué)塑造孩子健康人格的技巧
- 2025屆安徽省 馬鞍山中加雙語學(xué)校高二物理第二學(xué)期期末監(jiān)測模擬試題含解析
- 教育技術(shù)與家長參與的個性化學(xué)習(xí)模式研究
- 智慧醫(yī)療的AI助手智能輔導(dǎo)系統(tǒng)的應(yīng)用與挑戰(zhàn)
- 企業(yè)人才培養(yǎng)中的信息技術(shù)應(yīng)用分析
- 大數(shù)據(jù)在提升學(xué)生綜合素質(zhì)評價中的應(yīng)用
- 2025屆陜西省旬陽中學(xué)物理高二下期末檢測試題含解析
- 2022年安徽大學(xué)科研助理(校聘)招聘60人筆試備考題庫及答案解析
- 四年級閱讀訓(xùn)練概括文章主要內(nèi)容(完美)
- YY/T 0995-2015人類輔助生殖技術(shù)用醫(yī)療器械術(shù)語和定義
- GB/T 19352.1-2003熱噴涂熱噴涂結(jié)構(gòu)的質(zhì)量要求第1部分:選擇和使用指南
- 智護訓(xùn)練講解學(xué)習(xí)課件
- 母乳喂養(yǎng)自我效能量表(BSES) (1)附有答案
- 2023年鹽城市阜寧縣人民醫(yī)院醫(yī)護人員招聘筆試題庫及答案解析
- 畢業(yè)論文答辯
- 染缸操作規(guī)范
- (品管圈)良肢位擺放演示教學(xué)課件
- 園林綠化及廣場施工方案
評論
0/150
提交評論