微控制器按鍵與數碼管試驗程式 Proteus模擬
最近溫習一下微控制器,通過proteus 7.8模擬了一下,感覺效果不錯。
微控制器程式如下:
/*
51微控制器 按鍵與數碼管實驗,用proteus 7.8模擬通過。
通過點按鍵,
K1:數碼管數字加一,0~F,加上F後再從0開始。
K2:數碼管數字減一,F~0,減到0後再從F開始減
K3:復位這零.
*/
#include <reg52.h>
//#include <stdio.h>
unsigned char RunMode;
unsigned char code SegCode[] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, //共陽
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF}; //0~F
#define SegDataPort P3
/********************************/
void delay_1ms(unsigned int i) //最小延時1ms
{
unsigned char j;
while(i--)
for(j=0;j<125; j++);
}
void Display_Seg(unsigned char Value)
{
SegDataPort = SegCode[Value];
}
unsigned char GetKey(void)
{
unsigned char KeyTemp,CheckValue,Key=0x00;
CheckValue = P2&0x32;
if(CheckValue==0x32)
return 0x00;
delay_1ms(10);
KeyTemp = P2&0x32;
if(KeyTemp == CheckValue)
return 0x00;
if(!(CheckValue&0x02))
Key|=0x01;
if(!(CheckValue&0x10))
Key|=0x02;
if(!(CheckValue&0x20))
Key|=0x04;
return Key;
}
void KeyDispose(unsigned char Key)
{
if(Key&0x01)
{
RunMode = (RunMode+1)%16;
Display_Seg(RunMode);
}
if(Key&0x02)
{
RunMode = (RunMode-1)%16;
Display_Seg(RunMode);
}
if(Key&0x04)
{
RunMode = 0x00;
Display_Seg(RunMode);
}
}
void main(void)
{
unsigned char Key;
P2=0xff;
Display_Seg(0);
while(1)
{
Key = GetKey();
KeyDispose(Key);
}
}
相關推薦
微控制器按鍵與數碼管試驗程式 Proteus模擬
最近溫習一下微控制器,通過proteus 7.8模擬了一下,感覺效果不錯。 微控制器程式如下: /* 51微控制器 按鍵與數碼管實驗,用proteus 7.8模擬通過。 通過點按鍵, K1:數碼管數字加一,0~F,加上F後再從0開始。 K2:數碼管數字減一,F~0,
51微控制器按鍵控制數碼管加減和秒錶
#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit k1=P3^4; sbit k2=P3^5; sbit k3=P3^6; sbit k4=P3^7; sbit du=P
51微控制器:獨立按鍵與矩陣按鍵控制數碼管
一,獨立按鍵注意一下幾點 >按下的時候,電壓被拉低,所以IO口要傳低電平( 0x0 ) >按下的時候要消除抖動 ( 延時10ms ),在判斷,是否還是低電平,再做業務處理 下面這段程式,就是通過一個獨立按鍵連線到p1口,控制靜態數碼管的 一段 進行亮和滅的切換。 #include &l
51單片機:獨立按鍵與矩陣按鍵控制數碼管
#define clas 4行 ++ 浪費 down 技術分享 sig .com 一,獨立按鍵註意一下幾點 >按下的時候,電壓被拉低,所以IO口要傳低電平( 0x0 ) >按下的時候要消除抖動 ( 延時10ms ),在判斷,是否還是低電平,再做業務處理 下
(學習筆記)手把手教你學51微控制器:中斷與數碼管動態顯示
一、c語言的陣列 1.1陣列的基本概念 陣列是具有相同資料型別的有序資料的組合,一般來講陣列定義後滿足以下三個條件: (1)具有相同的資料型別 (2)具有相同的名字 (3)在儲存器中是被連續存放的 1.2陣列的宣告 資料型別 陣列名【陣列長度】; (1)同一個
微控制器之動態數碼管的顯示數字1-8
C51微控制器中的三種方法解決數碼管的動態顯示,使數碼管顯示1-8數字。三種方法的程式碼如下,此時讀者需要十分注意你程式碼中引腳的先後順序,否則可能達不到預期的效果. #include<reg51.h> #define uchar unsigned char
pd32組合語言 數碼管拆字程式數字大於255
pd32實驗箱,微機原理實驗 多加熱爐爐溫檢測系統的設計,兩個0809通道地址分別為3DCH,3D8H,分別讀取A/D轉換後的資料儲存在4000H和4001H,將AD轉後的資料(0-255)再轉換成50-350之間的資料,再進行拆字 要顯示的資料儲存在4002H-4004H,和4008H-400
STC89C52RC數碼管秒錶程式編寫
數碼管顯示秒錶,晶片STC89C52RC。具體要求,採用動態掃描的方式讓,6個數碼管前三個顯示秒數,後兩個顯示毫秒。第四個不用。秒數精確到1%。 #include <reg52.h> #define uint unsigned int #define uch
按鍵控制數碼管顯示
/* * ==================================================== * Filename: main.c * Description: * Version: * Created: * Revision: none * Compiler: Nios
單片機-4x4個矩陣按鍵控制數碼管顯示數字程序
() 給他 == 。。 for 選擇 clu typedef 測試 1 #include "8051.h" 2 typedef unsigned char u8; 3 typedef unsigned int u16; 4 u8 smgduan[]
在Mac上使用Dronekit與SITL做飛行程式的模擬除錯
背景 無人機的專案快要中期答辯了,為了在地面站(電腦)控制無人機,我們選擇DroneKit來進行程式碼的書寫。DroneKit是一個專門用於控制無人機的Python庫,使用這個API我們可以更方便的使用MAVLink來給無人機發送指令。 在我的Mac上面
利用51微控制器,矩陣鍵盤按鍵顯示0--F在數碼管
程式碼如下: #include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit we = P2^7; sbit du = P2^
基於proteus的51微控制器模擬例項六十、8位數碼管顯示例項
1、本例實現在8位數碼管上同時顯示多個不同字元。 2、本例使用了8只整合式7段共陽數碼管(pruteus中元件標識為7seg-mpx8-ca-blu,共陽為ca,共陰為cc),所有8個數碼管的段碼引腳a,b,c,d,e,f,g,dp都是分別並聯在一起,任何時候傳送的段碼
基於proteus的51微控制器模擬例項七十九、8位數碼管驅動晶片max7221應用例項
1、MAX7221是整合式共陰極數碼管驅動晶片。可以用來驅動8位7段式數碼管,也可以驅動條形LED或者8*8LED點陣 微控制器僅僅需要3個IO口就可以控制MAX7221驅動8位數碼管。注意這裡的
基於proteus的51微控制器模擬例項五十九、1位數碼管顯示例項
1、數碼管實際上是由7個發光二極體組成一個8字形,另外一個發光二極體做成圓點型,這樣就構成了一個數碼管。所有的8個二級管的正極或者負極都連到一個公共端點上,對於公共端連在正極的數碼管,稱為共陽極數碼管,反之稱為共陰極數碼管。 根據數碼管的內部結構原理,可以很清楚的知道數
proteus模擬之8位數碼管動態掃描顯示試驗
/*Proteus 模擬之8位共陰數碼管動態掃描實驗*/ 程式: /*Proteus 模擬之8位共陰數碼管動態掃描實驗*/ #include<reg52.h> #define SegPort P0 //定義數碼管連線埠 sbit LE_Duan = P
關於獨立按鍵與矩陣按鍵的程式(51微控制器)
發一個51微控制器的鍵盤掃描程式,演算法簡單有效 再給大家分享一個不錯按鍵程式(來自ourdev)/**************************************** 鍵盤_不採用定時
數碼管按鍵加減一
int 參數 image spa pre log -- main 等於 //按鍵加一或減一 #include <reg51.h> #include <stdio.h> int duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6
數碼管的動態掃描與驅動
fin 文件 芯片 組成 == test 關於 實現 沒有 數碼管的基本原理 關於數碼管,一個單個的數碼管可以看做是多個led燈的集合,如下圖所示 其中的8和。都是LED組成的,通過引腳上電即可點亮不同的LED然後組成不同的數字,這個過程在數碼管的設計中叫做段選。
微信小程式 Canvas 自定義時間顯示器 數碼管顯示
微信小程式自定義時間顯示器Demo 廢話不多話,還是依舊上圖再說,哈哈 怎麼樣,效果還是不錯的吧,因專案要求,要畫出類似於數碼管顯示的時間樣式,沒辦法,雖然不咋過好弄,但工作畢竟得做,於是乎,樓主,花了3個小時在那裡硬生生的算座標,差不多還是給擼出來,樓主寫成了一個外掛,方便大