單片機(jī)控制鍵盤的源代碼,可以控制幾行幾列的按鍵輸入,而今用很少的io口
上傳時(shí)間: 2017-08-09
上傳用戶:lili123
在本課中,我們要用一個(gè)按鍵來(lái)實(shí)現(xiàn)跑馬燈的 10 級(jí)調(diào)速。這又會(huì)涉及到鍵的去抖的問(wèn) 題。 本課的試驗(yàn)結(jié)果是,每按一次按鍵,跑馬速度就降低一級(jí),共 10 級(jí)。 這里我們又增加了一個(gè)變量 speedlever,來(lái)保存當(dāng)前的速度檔次。 在按鍵里的處理中,多了當(dāng)前檔次的延時(shí)值的設(shè)置。 請(qǐng)看程序: ―――――――――――――――― #define uchar unsigned char //定義一下方便使用 #define uint unsigned int #define ulong unsigned long #include <reg52.h> //包括一個(gè) 52 標(biāo)準(zhǔn)內(nèi)核的頭文件 sbit P10 = P1^0; //頭文件中沒(méi)有定義的 IO 就要自己來(lái)定義了 sbit P11 = P1^1; sbit P12 = P1^2; sbit P13 = P1^3; sbit K1= P3^2; bit ldelay=0; //長(zhǎng)定時(shí)溢出標(biāo)記,預(yù)置是 0 uchar speed=10; //設(shè)置一個(gè)變量保存默認(rèn)的跑馬燈的移動(dòng)速度 uchar speedlever=0; //保存當(dāng)前的速度檔次 char code dx516[3] _at_ 0x003b;//這是為了仿真設(shè)置的 //一個(gè)按鍵控制的 10 級(jí)變速跑馬燈試驗(yàn) void main(void) // 主程序 { uchar code ledp[4]={0xfe,0xfd,0xfb,0xf7};//預(yù)定的寫入 P1 的值 uchar ledi; //用來(lái)指示顯示順序 uint n; RCAP2H =0x10; //賦 T2 的預(yù)置值 0x1000,溢出 30 次就是 1 秒鐘 RCAP2L =0x00; TR2=1; //啟動(dòng)定時(shí)器 ET2=1; //打開(kāi)定時(shí)器 2 中斷 EA=1; //打開(kāi)總中斷 while(1) //主程序循環(huán) { if(ldelay) //發(fā)現(xiàn)有時(shí)間溢出標(biāo)記,進(jìn)入處理 { ldelay=0; //清除標(biāo)記 P1=ledp[ledi]; //讀出一個(gè)值送到 P1 口 ledi++; //指向下一個(gè) if(ledi==4) { ledi=0; //到了最后一個(gè)燈就換到第一個(gè) } } if(!K1) //如果讀到 K1 為 0 { for(n=0;n<1000;n++); //等待按鍵穩(wěn)定 while(!K1); //等待按鍵松開(kāi) for(n=0;n<1000;n++); //等待按鍵穩(wěn)定松開(kāi) speedlever++; if(speedlever==10)speedlever=0; speed=speedlever*3; //檔次和延時(shí)之間的預(yù)算法則,也可以用查表方法,做出 不規(guī)則的法則 } } } //定時(shí)器 2 中斷 timer2() interrupt 5 { static uchar t; TF2=0; t++; if((t==speed)||(t>30)) //比較一個(gè)變化的數(shù)值,以實(shí)現(xiàn)變化的時(shí)間溢出,同時(shí)限制了最慢速 度為 1 秒 { t=0; ldelay=1;//每次長(zhǎng)時(shí)間的溢出,就置一個(gè)標(biāo)記,以便主程序處理 } } ―――――――――――――――――――――― 請(qǐng)打開(kāi) lesson11 目錄的工程,編譯,運(yùn)行,看結(jié)果: 按 K1,速度則降低一次,總共 10 個(gè)檔次。
上傳時(shí)間: 2017-11-06
上傳用戶:szcyclone
C51單片機(jī)設(shè)計(jì)C語(yǔ)言實(shí)例(400例)合集 大量設(shè)計(jì)實(shí)例,新手必備C51源碼,1-IO輸出-點(diǎn)亮1個(gè)LED燈方法110-LED循環(huán)左移100-24c02記憶開(kāi)機(jī)次數(shù)101-24c02存儲(chǔ)上次使用中狀態(tài)102-DS1302 時(shí)鐘原理103-DS1302可調(diào)時(shí)鐘104-DS1302時(shí)鐘串口自動(dòng)更新時(shí)間105-1602液晶顯示DS1302時(shí)鐘106-字庫(kù)ST7920 12864液晶基礎(chǔ)顯示107-按鍵 12864顯示108-PCF8591 1路AD數(shù)碼管顯示109-PCF8591 4路AD數(shù)碼管顯示11-LED循環(huán)右移110-PCF8591 DA輸出模擬111-PCF8591 輸出鋸齒波112-PCF8591 1602液晶顯示113-串口通訊114-串口通訊中斷應(yīng)用115-RS485基本通訊原理116-紅外接收原理117-紅外解碼數(shù)碼管顯示118-紅外解碼1602液晶顯示119-紅外發(fā)射原理12-查表顯示LED燈120-紅外收發(fā)測(cè)試121-雙紅外發(fā)射避障原理測(cè)試122-1個(gè)18B20 溫度傳感器 數(shù)碼管顯示123-1個(gè)18b20溫度傳感器1602液晶顯示124-多個(gè)18b20溫度傳感器1602液晶顯示125-超溫報(bào)警測(cè)試126-溫度可調(diào)上下限1602126-溫度可調(diào)上下限1602顯示127-PS2鍵盤輸入1602液晶顯示128-雙色點(diǎn)陣1種顏色顯示測(cè)試129-雙色點(diǎn)陣2種顏色顯示測(cè)試13-雙燈左移右移閃爍130-雙色點(diǎn)陣顯示特定圖形131-雙色點(diǎn)陣交替圖形顯示132-雙色點(diǎn)陣雙色交替動(dòng)態(tài)顯示133-熱敏電阻測(cè)試數(shù)碼管顯示134-光敏電阻測(cè)試數(shù)碼管顯示135-自動(dòng)調(diào)光測(cè)試136-串轉(zhuǎn)并數(shù)字芯片測(cè)試137-非門數(shù)字芯片測(cè)試138-電子琴139-實(shí)用99分鐘倒計(jì)時(shí)器14-花樣燈140-外部頻率測(cè)試141-定時(shí)做普通時(shí)鐘可調(diào)142-1602液晶顯示的密碼鎖143-實(shí)用密碼鎖144-1602液晶顯示的計(jì)算器145-秒表146-串口測(cè)溫電腦顯示147-交通燈測(cè)試148-點(diǎn)陣模擬電梯上行下行149-點(diǎn)陣流動(dòng)廣告模擬15-PWM調(diào)光150-綜合測(cè)試程序151-12位AD_DS1621與12864液晶152-閃爍燈一153-閃爍燈二154-流水燈A155-51單片機(jī)12864大液晶屏proteus仿真156-流水燈B157-數(shù)碼管顯示158-12864LCD顯示計(jì)算器鍵盤按鍵實(shí)驗(yàn)159-數(shù)碼管顯示(鎖存器)16-共陽(yáng)數(shù)碼管靜態(tài)顯示160-數(shù)碼管動(dòng)態(tài)顯示161-數(shù)碼管滾動(dòng)顯示162-數(shù)碼管字符顯示163-獨(dú)立按鍵164-矩陣鍵盤165-矩陣鍵盤(LCD)166-用DS1302與12864LCD設(shè)計(jì)的可調(diào)式中文電子日歷167-定時(shí)器的使用(方式1)168-12864LCD圖形滾動(dòng)演示169-用PG12864LCD設(shè)計(jì)的指針式電子鐘17-1個(gè)共陽(yáng)數(shù)碼管顯示變化數(shù)字170-定時(shí)器的使用(方式2)171-外部中斷的使用172-定時(shí)器和外部中斷173-開(kāi)關(guān)控制12864LCD串行模式顯示174-點(diǎn)陣顯示175-液晶1602顯示176-12864帶字庫(kù)測(cè)試程序177-串行12864顯示178-遙控鍵值解碼-12864LCD顯示179-液晶12864并行18-單個(gè)數(shù)碼管模擬水流180-液晶12864并行2181-串口發(fā)送試驗(yàn)182-串口接收試驗(yàn)183-串口接收(1602)184-蜂鳴器發(fā)聲185-直流電機(jī)調(diào)速186-蜂鳴器間斷發(fā)聲187-lcd-12864應(yīng)用188-繼電器控制189-直流電機(jī)調(diào)速19-按鍵控制單個(gè)數(shù)碼管顯示190-步進(jìn)電機(jī)191-存儲(chǔ)AT24C02192-PCF8591T AD實(shí)驗(yàn)193-PCF8591T芯片DA實(shí)驗(yàn)194-溫度采集DS18B20195-EEPROM_24C02196-12864LCD顯示24C08保存的開(kāi)機(jī)畫(huà)面197-紅外解碼198-12864LCD顯示EPROM2764保存的開(kāi)機(jī)畫(huà)面199-時(shí)鐘DS1302(LCD)2-IO輸出-點(diǎn)亮1個(gè)LED燈方法220-單個(gè)數(shù)碼管指示邏輯電平200-宏晶看門狗201-SD卡202-秒表203-普通定時(shí)器時(shí)鐘204-彩屏控制205-彩屏圖片顯示206-12864+DS1302時(shí)鐘+18B20溫度計(jì)207-12864測(cè)試程序208-12864串行驅(qū)動(dòng)演示209-12864生產(chǎn)廠程序21-8位數(shù)碼管顯示其中之一210-12864中文顯示測(cè)試211-LCD12864212-12864M液晶顯示(有字庫(kù))程序(匯編)213-超聲波測(cè)距LCD1286
上傳時(shí)間: 2021-11-17
上傳用戶:
本設(shè)計(jì)為基于組態(tài)王的交通燈控制系統(tǒng),包括組態(tài)王工程文件以及PLC程序。該設(shè)計(jì)對(duì)應(yīng)的的電氣原理圖和IO分配表,另配有對(duì)應(yīng)論文。總體資料較為豐富,可以滿足絕大部分同學(xué)的需求,對(duì)有幫助的同學(xué)提供幫助
標(biāo)簽: 交通燈 PLC 組態(tài)王 控制系統(tǒng)
上傳時(shí)間: 2022-05-23
上傳用戶:
STM32F103C8T6顯示:OLED屏幕 (SPI控制)溫度傳感器:DS18B20輸入:按鍵輸出:LED工作過(guò)程:供電后,屏幕顯示溫度、閾值等信息,可以通過(guò)按鍵調(diào)整閾值大小。超出閾值,相應(yīng)的LED燈亮,模擬控制過(guò)程。原理:1.按鍵一端接地、一端接STM32的IO口,IO口設(shè)為浮空輸入,當(dāng)按鍵按下時(shí),相應(yīng)IO口直接與地相連,變成低電平。程序以此判斷按鍵按下。2.LED燈一端接VCC,一端接IO口,IO口設(shè)為推挽輸出,STM32給IO口低電平的時(shí)候,發(fā)光二極管導(dǎo)通,亮。給低電平的時(shí)候,發(fā)光二極管兩端都是高電平,不亮。
上傳時(shí)間: 2022-07-01
上傳用戶:
先進(jìn)PID控制MATLAB仿真
上傳時(shí)間: 2013-05-15
上傳用戶:eeworm
MATLAB語(yǔ)言與自動(dòng)控制系統(tǒng)設(shè)計(jì)
標(biāo)簽: MATLAB 語(yǔ)言 自動(dòng)控制 系統(tǒng)設(shè)計(jì)
上傳時(shí)間: 2013-05-15
上傳用戶:eeworm
電視墻顯示及控制技術(shù)
上傳時(shí)間: 2013-04-15
上傳用戶:eeworm
電氣控制與PLC 浙江水電專科精品課件 PPT版
上傳時(shí)間: 2013-04-15
上傳用戶:eeworm
過(guò)程控制教程 ppt版
上傳時(shí)間: 2013-06-14
上傳用戶:eeworm
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1