在本課中,我們要用一個按鍵來實現跑馬燈的 10 級調速。這又會涉及到鍵的去抖的問 題。 本課的試驗結果是,每按一次按鍵,跑馬速度就降低一級,共 10 級。 這里我們又增加了一個變量 speedlever,來保存當前的速度檔次。 在按鍵里的處理中,多了當前檔次的延時值的設置。 請看程序: ―――――――――――――――― #define uchar unsigned char //定義一下方便使用 #define uint unsigned int #define ulong unsigned long #include <reg52.h> //包括一個 52 標準內核的頭文件 sbit P10 = P1^0; //頭文件中沒有定義的 IO 就要自己來定義了 sbit P11 = P1^1; sbit P12 = P1^2; sbit P13 = P1^3; sbit K1= P3^2; bit ldelay=0; //長定時溢出標記,預置是 0 uchar speed=10; //設置一個變量保存默認的跑馬燈的移動速度 uchar speedlever=0; //保存當前的速度檔次 char code dx516[3] _at_ 0x003b;//這是為了仿真設置的 //一個按鍵控制的 10 級變速跑馬燈試驗 void main(void) // 主程序 { uchar code ledp[4]={0xfe,0xfd,0xfb,0xf7};//預定的寫入 P1 的值 uchar ledi; //用來指示顯示順序 uint n; RCAP2H =0x10; //賦 T2 的預置值 0x1000,溢出 30 次就是 1 秒鐘 RCAP2L =0x00; TR2=1; //啟動定時器 ET2=1; //打開定時器 2 中斷 EA=1; //打開總中斷 while(1) //主程序循環 { if(ldelay) //發現有時間溢出標記,進入處理 { ldelay=0; //清除標記 P1=ledp[ledi]; //讀出一個值送到 P1 口 ledi++; //指向下一個 if(ledi==4) { ledi=0; //到了最后一個燈就換到第一個 } } if(!K1) //如果讀到 K1 為 0 { for(n=0;n<1000;n++); //等待按鍵穩定 while(!K1); //等待按鍵松開 for(n=0;n<1000;n++); //等待按鍵穩定松開 speedlever++; if(speedlever==10)speedlever=0; speed=speedlever*3; //檔次和延時之間的預算法則,也可以用查表方法,做出 不規則的法則 } } } //定時器 2 中斷 timer2() interrupt 5 { static uchar t; TF2=0; t++; if((t==speed)||(t>30)) //比較一個變化的數值,以實現變化的時間溢出,同時限制了最慢速 度為 1 秒 { t=0; ldelay=1;//每次長時間的溢出,就置一個標記,以便主程序處理 } } ―――――――――――――――――――――― 請打開 lesson11 目錄的工程,編譯,運行,看結果: 按 K1,速度則降低一次,總共 10 個檔次。
上傳時間: 2017-11-06
上傳用戶:szcyclone
全書由兩大部分及四個附錄和一個詞匯表構成,第一部分介紹 C++的基本概念以及 C++程序設計方法,這部分從 C++最基本的概念講 起,覆蓋最新 C++標準中的所有概念并重點介紹類及其有關的函數和 運算符.第二部分可以用于 C++編程的參考,分別詳細介紹數據類型, 運算符,類型轉換,關鍵字,預處理指令以及庫函數和庫類.四個附錄 分別介紹 C/C++的區別,ANSI 及 C++成員的速查表.本書最后有 C++術 語及概念的詞匯表.本書可以用作學習 C++的標準教材,也可成為高 級程序員的有價值的參考書.
標簽: 經典的C++教程
上傳時間: 2018-03-29
上傳用戶:fanxiang510
STM32 CAN波特率計算器,輸入時鐘, can波特率 點擊計算,就能列出此波特率的stm32的配置列表。非常方便可靠。免去查表的時間。
上傳時間: 2021-06-11
上傳用戶:shanguiyao
貼片電阻MARK CODE速查表,對硬件工程師比較有用
上傳時間: 2021-11-01
上傳用戶:18229097006
100-24c02記憶開機次數101-24c02存儲上次使用中狀態102-DS1302 時鐘原理103-DS1302可調時鐘104-DS1302時鐘串口自動更新時間105-1602液晶顯示DS1302時鐘106-字庫ST7920 12864液晶基礎顯示107-按鍵 12864顯示108-PCF8591 1路AD數碼管顯示109-PCF8591 4路AD數碼管顯示11-LED循環右移110-PCF8591 DA輸出模擬111-PCF8591 輸出鋸齒波112-PCF8591 1602液晶顯示113-串口通訊114-串口通訊中斷應用115-RS485基本通訊原理116-紅外接收原理117-紅外解碼數碼管顯示118-紅外解碼1602液晶顯示119-紅外發射原理12-查表顯示LED燈120-紅外收發測試121-雙紅外發射避障原理測試122-1個18B20 溫度傳感器 數碼管顯示123-1個18b20溫度傳感器1602液晶顯示124-多個18b20溫度傳感器1602液晶顯示125-超溫報警測試126-溫度可調上下限1602126-溫度可調上下限1602顯示127-PS2鍵盤輸入1602液晶顯示128-雙色點陣1種顏色顯示測試129-雙色點陣2種顏色顯示測試13-雙燈左移右移閃爍130-雙色點陣顯示特定圖形131-雙色點陣交替圖形顯示132-雙色點陣雙色交替動態顯示133-熱敏電阻測試數碼管顯示134-光敏電阻測試數碼管顯示135-自動調光測試136-串轉并數字芯片測試137-非門數字芯片測試138-電子琴139-實用99分鐘倒計時器14-花樣燈140-外部頻率測試141-定時做普通時鐘可調142-1602液晶顯示的密碼鎖143-實用密碼鎖144-1602液晶顯示的計算器145-秒表146-串口測溫電腦顯示147-交通燈測試148-點陣模擬電梯上行下行149-點陣流動廣告模擬15-PWM調光150-綜合測試程序151-12位AD_DS1621與12864液晶152-閃爍燈一153-閃爍燈二154-流水燈A155-51單片機12864大液晶屏proteus仿真156-流水燈B157-數碼管顯示158-12864LCD顯示計算器鍵盤按鍵實驗159-數碼管顯示(鎖存器)16-共陽數碼管靜態顯示160-數碼管動態顯示161-數碼管滾動顯示162-數碼管字符顯示163-獨立按鍵164-矩陣鍵盤165-矩陣鍵盤(LCD)166-用DS1302與12864LCD設計的可調式中文電子日歷167-定時器的使用(方式1)168-12864LCD圖形滾動演示169-用PG12864LCD設計的指針式電子鐘17-1個共陽數碼管顯示變化數字170-定時器的使用(方式2)171-外部中斷的使用172-定時器和外部中斷173-開關控制12864LCD串行模式顯示174-點陣顯示175-液晶1602顯示176-12864帶字庫測試程序177-串行12864顯示178-遙控鍵值解碼-12864LCD顯示179-液晶12864并行18-單個數碼管模擬水流180-液晶12864并行2181-串口發送試驗182-串口接收試驗183-串口接收(1602)184-蜂鳴器發聲185-直流電機調速186-蜂鳴器間斷發聲187-lcd-12864應用188-繼電器控制189-直流電機調速19-按鍵控制單個數碼管顯示190-步進電機191-存儲AT24C02192-PCF8591T AD實驗193-PCF8591T芯片DA實驗194-溫度采集DS18B20195-EEPROM_24C02196-12864LCD顯示24C08保存的開機畫面197-紅外解碼198-12864LCD顯示EPROM2764保存的開機畫面199-時鐘DS1302(LCD)2-IO輸出-點亮1個LED燈方法220-單個數碼管指示邏輯電平200-宏晶看門狗201-SD卡202-秒表203-普通定時器時鐘204-彩屏控制205-彩屏圖片顯示206-12864+DS1302時鐘+18B20溫度計207-12864測試程序208-12864串行驅動演示209-12864生產廠程序21-8位數碼管顯示其中之一210-12864中文顯示測試211-LCD12864212-12864M液晶顯示(有字庫)程序(匯編)213-超聲波測距LCD12864顯示214-紅外遙控鍵值解碼12864液晶顯示(匯編語言)215-用DS1302與12864LCD設計的可調式中文電子日歷216-中文12864217-中文12864LCD顯示紅外遙控解碼實驗218-IO端口輸出219-IO端口輸入22-8位數碼管靜態顯示其中之二220-流水燈221-數碼管顯示222-數碼管動態掃描演示223-獨立按鍵224-獨立按鍵去抖動225-定時器0226-定時器1227-定時器2228-外部中斷0電平觸發229-外部中斷0邊沿觸發23-8位數碼管動態掃描顯示230-外部中斷1231-矩陣鍵盤232-液晶LCM1602233-LCD1602動態顯示234-EEPROM24c02235-開機次數記憶236-紅外解碼LCD1602液晶顯示237-紅外解碼數碼管顯示238-喇叭239-液晶背光控制24-8位數碼管動態掃描原理演示240-與電腦串口通信241-步進電機242-字庫LCD12864液晶測試243-液晶數碼綜合顯示244-99秒計時245-99倒計時246-搶答器247-PWM調光248-LED點陣249-直流電機調速25-數碼管顯示動態數據250-按鍵計數器251-秒表252-數碼管移動253-花樣燈254-紅綠燈255-音樂播放256-紅外收發演示257-普通定時器時鐘258-繼電器控制259-ps2鍵盤LCD1602液晶顯示26-9累加260-RTC實時時鐘DS1302液晶顯示261-單線溫度傳感器18b20262-串口測溫263-帶停機 步進電機正反轉264-步進電機正反轉265-AD_DA_PCF8591266-液晶AD_DA_PCF8591267-秒手動記數268-功能感受269-流水登27-99累加270-點亮一個二極管271-用單片機控制一個燈閃爍272-將P1口狀態送入P0、P2、P3273-P3口流水燈274-通過對P3口地址的操作流水點亮8位LED275-用不同數據類型控制燈閃爍時間276-用P0口、P1 口分別顯示加法和減法運算結果277-用P0、P1口顯示乘法運算結果278-用P1、P0口顯示除法運算結果279-用自增運算控制P0口8位LED流水花樣28-999累加280-用P0口顯示邏輯與運算結果281-用P0口顯示條件運算結果282-用P0口顯示按位異或運算結果283-用P0顯示左移運算結果284-萬能邏輯電路實驗285-用右移運算流水點亮P1口8位LED286-用if語句控制P0口8位LED的流水方向287-用swtich語句的控制P0口8位LED的點亮狀態288-用for語句控制蜂鳴器鳴笛次數289-包含單片機寄存器的頭文件29-9999累加290-用do-while語句控制P0口8位LED流水點亮291-用字符型數組控制P0口8位LED流水點亮292-用P0口顯示字符串常量293-用P0 口顯示指針運算結果294-用指針數組控制P0口8位LED流水點亮295-用數組的指針控制P0 口8 位LED流水點亮296-用P0 、P1口顯示整型函數返回值297-用有參函數控制P0口8位LED流水速度298-用數組作函數參數控制流水花樣299-用數組作函數參數控制流水花樣3-IO輸出-點亮多個LED燈方法130-9累減300-用函數型指針控制P1口燈花樣31-99累減32-999累減33-9999累減34-顯示小數點35-數碼管消隱36-數碼管遞加遞減帶消隱37-數碼管左移38-數碼管右移38-數碼管右移139-數碼管右移24-IO輸出-點亮多個LED燈方法240-數碼管循環左移41-數碼管循環右移41-數碼管循環右移142-數碼管循環右移243-數碼管閃爍44-數碼管局部閃爍45-定時器046-定時器147-定時器248-產生1mS方波49-產生200mS方波5-閃爍1個LED50-產生多路不同頻率方波51-1個獨立按鍵控制LED52-1個獨立按鍵控制LED狀態轉換53-2按鍵加減操作53-2按鍵加減操作數碼管顯示54-多位數按鍵加減(閃爍)54-多位數按鍵加減(閃爍)數碼管顯示55-多位數按鍵加減(不閃爍)55-多位數按鍵加減(不閃爍)數碼管顯示56-定時器掃描數碼管(不閃爍)57-按鍵長按短按效果58-搶答器59-獨立按鍵依次輸入數據6-不同頻率閃爍1個LED燈60-按鍵從右至左輸入61-8位端口檢測8獨立按鍵62-矩陣鍵盤行列掃描63-矩陣鍵盤反轉掃描64-矩陣鍵盤中斷掃描65-矩陣鍵盤密碼鎖66-矩陣鍵盤簡易計算器67-外部中斷0電平觸發68-外部中斷1電平觸發69-外部中斷0下降沿觸發7-不同頻率閃爍多個LED燈70-外部中斷1下降沿觸發71-T0外部計數輸入72-T1外部計數輸入73-看門狗溢出測試74-按鍵喂狗75-喇叭發聲原理76-警車聲音77-救護車聲音78-喇叭滴答聲79-報警發聲8-8位LED左移80-消防車警報81-音樂播放82-步進電機轉動原理83-步進電機正反轉84-步進電機按鍵控制85-步進電機轉
上傳時間: 2021-11-08
上傳用戶:
C51單片機設計C語言實例(400例)合集 大量設計實例,新手必備C51源碼,1-IO輸出-點亮1個LED燈方法110-LED循環左移100-24c02記憶開機次數101-24c02存儲上次使用中狀態102-DS1302 時鐘原理103-DS1302可調時鐘104-DS1302時鐘串口自動更新時間105-1602液晶顯示DS1302時鐘106-字庫ST7920 12864液晶基礎顯示107-按鍵 12864顯示108-PCF8591 1路AD數碼管顯示109-PCF8591 4路AD數碼管顯示11-LED循環右移110-PCF8591 DA輸出模擬111-PCF8591 輸出鋸齒波112-PCF8591 1602液晶顯示113-串口通訊114-串口通訊中斷應用115-RS485基本通訊原理116-紅外接收原理117-紅外解碼數碼管顯示118-紅外解碼1602液晶顯示119-紅外發射原理12-查表顯示LED燈120-紅外收發測試121-雙紅外發射避障原理測試122-1個18B20 溫度傳感器 數碼管顯示123-1個18b20溫度傳感器1602液晶顯示124-多個18b20溫度傳感器1602液晶顯示125-超溫報警測試126-溫度可調上下限1602126-溫度可調上下限1602顯示127-PS2鍵盤輸入1602液晶顯示128-雙色點陣1種顏色顯示測試129-雙色點陣2種顏色顯示測試13-雙燈左移右移閃爍130-雙色點陣顯示特定圖形131-雙色點陣交替圖形顯示132-雙色點陣雙色交替動態顯示133-熱敏電阻測試數碼管顯示134-光敏電阻測試數碼管顯示135-自動調光測試136-串轉并數字芯片測試137-非門數字芯片測試138-電子琴139-實用99分鐘倒計時器14-花樣燈140-外部頻率測試141-定時做普通時鐘可調142-1602液晶顯示的密碼鎖143-實用密碼鎖144-1602液晶顯示的計算器145-秒表146-串口測溫電腦顯示147-交通燈測試148-點陣模擬電梯上行下行149-點陣流動廣告模擬15-PWM調光150-綜合測試程序151-12位AD_DS1621與12864液晶152-閃爍燈一153-閃爍燈二154-流水燈A155-51單片機12864大液晶屏proteus仿真156-流水燈B157-數碼管顯示158-12864LCD顯示計算器鍵盤按鍵實驗159-數碼管顯示(鎖存器)16-共陽數碼管靜態顯示160-數碼管動態顯示161-數碼管滾動顯示162-數碼管字符顯示163-獨立按鍵164-矩陣鍵盤165-矩陣鍵盤(LCD)166-用DS1302與12864LCD設計的可調式中文電子日歷167-定時器的使用(方式1)168-12864LCD圖形滾動演示169-用PG12864LCD設計的指針式電子鐘17-1個共陽數碼管顯示變化數字170-定時器的使用(方式2)171-外部中斷的使用172-定時器和外部中斷173-開關控制12864LCD串行模式顯示174-點陣顯示175-液晶1602顯示176-12864帶字庫測試程序177-串行12864顯示178-遙控鍵值解碼-12864LCD顯示179-液晶12864并行18-單個數碼管模擬水流180-液晶12864并行2181-串口發送試驗182-串口接收試驗183-串口接收(1602)184-蜂鳴器發聲185-直流電機調速186-蜂鳴器間斷發聲187-lcd-12864應用188-繼電器控制189-直流電機調速19-按鍵控制單個數碼管顯示190-步進電機191-存儲AT24C02192-PCF8591T AD實驗193-PCF8591T芯片DA實驗194-溫度采集DS18B20195-EEPROM_24C02196-12864LCD顯示24C08保存的開機畫面197-紅外解碼198-12864LCD顯示EPROM2764保存的開機畫面199-時鐘DS1302(LCD)2-IO輸出-點亮1個LED燈方法220-單個數碼管指示邏輯電平200-宏晶看門狗201-SD卡202-秒表203-普通定時器時鐘204-彩屏控制205-彩屏圖片顯示206-12864+DS1302時鐘+18B20溫度計207-12864測試程序208-12864串行驅動演示209-12864生產廠程序21-8位數碼管顯示其中之一210-12864中文顯示測試211-LCD12864212-12864M液晶顯示(有字庫)程序(匯編)213-超聲波測距LCD1286
上傳時間: 2021-11-17
上傳用戶:
反激式開關電源變壓器設計的詳細步驟85W反激變壓器設計的詳細步驟 1. 確定電源規格. 1).輸入電壓范圍Vin=90—265Vac; 2).輸出電壓/負載電流:Vout1=42V/2A, Pout=84W 3).轉換的效率=0.80 Pin=84/0.8=105W 2. 工作頻率,匝比, 最低輸入電壓和最大占空比確定. Vmos*0.8>Vinmax+n(Vo+Vf)600*0.8>373+n(42+1)得n<2.5Vd*0.8>Vinmax/n+Vo400*0.8>373/n+42得n>1.34 所以n取1.6最低輸入電壓Vinmin=√[(Vacmin√2)* (Vacmin√2)-2Pin(T/2-tc)/Cin=(90√2*90√2-2*105*(20/2-3)/0.00015=80V取:工作頻率fosc=60KHz, 最大占空比Dmax=n(Vo+Vf)/[n(Vo+Vf)+Vinmin]= 1.6(42+1)/[1.6(42+1)+80]=0.45 Ton(max)=1/f*Dmax=0.45/60000=7.5us 3. 變壓器初級峰值電流的計算. Iin-avg=1/3Pin/Vinmin=1/3*105/80=0.4AΔIp1=2Iin-avg/D=2*0.4/0.45=1.78AIpk1=Pout/?/Vinmin*D+ΔIp1=84/0.8/80/0.45=2.79A 4. 變壓器初級電感量的計算. 由式子Vdc=Lp*dip/dt,得: Lp= Vinmin*Ton(max)/ΔIp1 =80*0.0000075/1.78 =337uH 取Lp=337 uH 5.變壓器鐵芯的選擇. 根據式子Aw*Ae=Pt*1000000/[2*ko*kc*fosc*Bm*j*?],其中: Pt(標稱輸出功率)= Pout=84W Ko(窗口的銅填充系數)=0.4 Kc(磁芯填充系數)=1(對于鐵氧體), 變壓器磁通密度Bm=1500Gs j(電流密度): j=4A/mm2;Aw*Ae=84*1000000/[2*0.4*1*60*103*1500Gs*4*0.80]=0.7cm4 考慮到繞線空間,選擇窗口面積大的磁芯,查表: ER40/45鐵氧體磁芯的有效截面積Ae=1.51cm2 ER40/45的功率容量乘積為 Ap = 3.7cm4 >0.7cm4 故選擇ER40/45鐵氧體磁芯. 6.變壓器初級匝數 1).由Np=Vinmin*Ton/[Ae*Bm],得: Np=80*7.5*10n-6/[1.52*10n-4*0.15] =26.31 取 Np =27T 7. 變壓器次級匝數的計算. Ns1(42v)=Np/n=27/1.6=16.875 取Ns1 = 17T Ns2(15v)=(15+1)* Ns1/(42+1)=6.3T 取Ns2 = 7T
上傳時間: 2022-04-15
上傳用戶:
給力者51單片機視頻教程21:51單片機超聲波測距.rar - 231.26MB給力者51單片機視頻教程20:51單片機濕度傳感器DHT11.rar - 197.41MB給力者51單片機視頻教程18:51單片機紅外遙控解碼.rar - 40.31MB給力者51單片機視頻教程17:51單片機串口(2).rar - 26.04MB給力者51單片機視頻教程17:51單片機串口(1).rar - 189.74MB給力者51單片機視頻教程07:51單片機數字量輸入操作.rar - 97.89MB給力者51單片機視頻教程05:51單片機的數碼管操作2.rar - 73.10MB給力者51單片機視頻教程04:51單片機的查表操作2.rar - 107.39MB給力者51單片機視頻教程04:51單片機的查表操作1.rar - 19.10MB......
標簽: 51單片機
上傳時間: 2022-05-26
上傳用戶:jiabin
|- 數據科學速查表 - 0 B|- 遷移學習實戰 - 0 B|- 零起點Python機器學習快速入門 - 0 B|- 《深度學習入門:基于Python的理論與實現》高清中文版PDF+源代碼 - 0 B|- 《Python生物信息學數據管理》中文版PDF+英文版PDF+源代碼 - 0 B|- 《Python深度學習》2018中文版pdf+英文版pdf+源代碼 - 0 B|- 《Python編程:從入門到實踐》中文版+源代碼 - 0 B|- stanford machine learning - 0 B|- Python語言程序設計2018版電子教案 - 0 B|- Python網絡編程第三版 (原版+中文版+源代碼) - 0 B|- Python機器學習實踐指南(中文版帶書簽)、原書代碼、數據集 - 0 B|- python官方文檔 - 0 B|- Python編程(第4版 套裝上下冊) - 0 B|- PyQt5快速開發與實戰(pdf+源碼) - 0 B|- linux - 0 B|- 征服PYTHON-語言基礎與典型應用.pdf - 67.40 MB|- 與孩子一起學編程_中文版_詳細書簽.pdf - 69.10 MB|- 用Python做科學計算.pdf - 6.10 MB|- 用Python寫網絡爬蟲.pdf - 9.90 MB|- 用Python進行自然語言處理(中文翻譯NLTK).pdf - 4.40 MB|- 像計算機科學家那樣思考 Python中文版第二版.pdf - 712.00 kB|- 網絡爬蟲-Python和數據分析.pdf - 6.90 MB|- 圖解機器學習.pdf - 59.40 MB|- 凸優化.pdf - 5.70 MB|- 數據挖掘導論.pdf - 2.50 MB|- 數據科學入門.pdf - 13.30 MB|- 數據結構與算法__Python語言描述_裘宗燕編著_北京:機械工業出版社_,_2016.01_P346.pdf - 74.30 MB|- 神經網絡與深度學習.pdf - 92.60 MB|- 深入Python3...
標簽: python
上傳時間: 2022-06-06
上傳用戶:
一、 實驗目的使用 51單片機的八位數碼管順序顯示自己的學號。掌握 C 語言、匯編語言兩種編程單片機控制程序的方法。掌握使用 Keil 4 或 Keil 5 軟件編寫、編譯、調試程序的方法。掌握使用 Proteus 軟件繪制電路原理圖、硬件仿真和程序調試。二、實驗設備筆記本電腦51 單片機(普中科技)八位數碼管(單片機上已集成)應用程序:Proteus 8.0、Keil uVision5、stc-isp-v6.88E三、實驗原理(1)數碼管數碼管按段數可分為七段數碼管和 8 段數碼管,八段數碼管比七段數碼管多一個發光二極管單元,也就是多一個小數點(DP),這個小數點可以更精確的表示數碼管想要顯示的內容。按能顯示多少個(8),可分為 1 位、2位、3位、4位、5 位、6位、7 位等數碼管。按發光二極管單元連接方式可分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極管的陽極接到一起形成公共陽極(COM)的數碼管,共陽數碼管在應用時將公共極 COM 接到+5V,當某一字段發光二極管的陰極為低電平時,相應字段就點亮,當某一字段的陰極為高電平時,相應字段就不亮。共陰數碼管是指將所有發光二極管的陰極接到一起形成公共陰極(COM)的數碼管,共陰數碼管在應用時應將公共極 COM 接到地線 GND上,當某一字段發光二極管的陽極為高電平時,相應字段就點亮,當某一字段的陽極為低電平時,相應字段就不亮。(2)51單片機單片機(Microcontrollers)是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器 CPU、隨機存儲器 RAM、只讀存儲器ROM、多種 I/O口和中斷系統、定時器/計數器等功能集成到一塊硅片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。MSC-51 單片機指以 8051為核心的單片機,由美國的 Intel 公司在 1980 年推出,80C51 是 MCS-51系列中的一個典型品種;其它廠商以 8051為基核開發出的CMOS 工藝單片機產品統稱為 80C51 系列。本實驗中我使用普中科技的 51 單片機來點亮八位數碼管并使其顯示我的學號(20198043)。四、 實驗 過程(1)熟悉數碼管使用 Proteus 軟件構建電路圖,學會如何點亮數碼管,熟悉如何使數碼管顯示不同的數字(0-9)。我們可以按照上面的原理圖讓對應的段導通,以顯示數字。對于共陽數碼管,若顯示數字 0,可以讓標號為 A,B,C,D,E,F 的段導通,標號為 G,H 的段不導通,然后將陽極通入高電壓,即顯示數字 0。代碼舉例如下:最后效果如下,成功點亮一個數碼管。經過更多嘗試和學習,學會使多位數碼管顯示多位數字。結果舉例如下:(2)多位數碼管顯示學號為了顯示我們學號,就不能只使用一位數碼管,需要使用八位數碼管,相較于單位數碼管,多位數碼管更加復雜,驅動函數有很大區別。多位數碼管使用同一組段選,不同的位選,因此就不能夠一對一地固定顯示,這就需要動態掃描。動態掃描:利用人眼視覺暫留,多位數碼管每次只顯示一位數字,但是切換頻率大于 200HZ(50 × 4),這樣就能讓人產生同時顯示多個數字的錯覺。具體操作是輪流向數碼管送字形碼和相應的位選。一個完整的驅動程序不只以上這些,一個完整的數碼管驅動有 6部分:1. 碼表(ROM):存儲段碼(一般放在 ROM中,節省 RAM空間),例如數字 0的段碼就是 0xC0,碼表則包含 0-9的段碼2. 顯存(RAM):保存要顯示的數字,取連續地址(便于查表)3. 段選賦值:通過查表(碼表)操作,將顯存映射到段碼4. 位選切換:切換顯示的位置5. 延時:顯示的數字短暫保持,提升亮度6. 消影:消除切換時不同位置互相影響而產生的殘影
上傳時間: 2022-06-08
上傳用戶:canderile