乙個按鍵控制數碼管的開和關 按鍵控制數碼管顯示

2021-10-17 01:14:54 字數 2016 閱讀 7395

功能:按鍵查詢控制數碼管顯示的資料,定時器中斷控制數碼管掃瞄顯示

所用器件:stc12c5a32s2

#include "config.h"

#define uint  unsigned  int

#define uchar unsigned char

#define ulong unsigned long

#define key2  p3_5

#define key3  p3_6

int num;   // 顯示資料

int frontdot;  // 個位顯示

int behinddot;  // 小數顯示

int xms;

int x = 0;

int leddata0[10] = ;

int leddata1[10] = ;

//  延時約(0.001 * n)秒

void delay(unsigned int n)

ulong msnum = 923;  // 指令迴圈923次為一秒

do while (--n != 0);

定時器0中斷函式

功能:每過一秒掃瞄數碼管顯示

void timer0() interrupt 1

th0 = 0xfc;     // 重要!!第一次計數滿後會從0開始計數,應該在中斷程式中重設計數初值

tl0 = 0x65;

xms++;

if(xms == 10){

if(x++ > 100) x = 0;

switch(x%2){

case 0:

p0_4 = 0;

p2 = leddata0[behinddot];

p0_3 = 1;

break;

case 1:

p0_3 = 0;

p2 = leddata1[frontdot];

p0_4 = 1;

break;

xms = 0;

// 定時器0初始化

void timer0_init()

tmod = 0x01;     // 設定定時器0為工作方式1,中斷只需一次設定

th0 = 0xfc;     // 設定計數初值

tl0 = 0x65;

ea = 1;      // 開總中斷

et0 = 1;      // 開定時中斷0

tr0 = 1;      // 啟動定時器0,計數滿後執行中斷服務程式timer0()

// 主程式入口

void main(void)

int x = 0;   // 控制每次重新整理哪位數字

num = 0;

xms = 0;

frontdot = 0;

behinddot = 0;

p0_0 = 0;

p0_1 = 0;

p0_2 = 0;

p0_3 = 0;

p0_4 = 0;

key2 = 1;

key3 = 1;

timer0_init();

for(;;){

if(key2 == 0) {

delay(1);

if (key2 == 0){

num++;

if (num > 99) num = 99;

frontdot = num / 10;

behinddot = num % 10;

while (!key2);

delay(1);

if(key3 == 0)   {

delay(1);

if (key3 == 0){

num--;

if (num < 0) num = 0;

frontdot = num / 10;

behinddot = num % 10;

while (!key3);

delay(1);

數碼管用定時中斷掃瞄顯示比較穩定,如果按鍵中斷,按鍵之後程式會去處理中斷而不管顯示

按鍵控制數碼管

按key1加一,按key2減一,按key3清零 include reg52.h 此檔案中定義了微控制器的一些特殊功能暫存器 typedef unsigned int u16 對資料型別進行宣告定義 typedef unsigned char u8 sbit lsa p2 2 sbit lsb p2 ...

三菱PLC數碼管顯示及按鍵控制實驗

日常工程中,有時需要顯示乙個溫度或是乙個計數,或是修改乙個按鍵值,使用觸屏是乙個不錯的選擇,但有時不想那麼複雜,可以使用數碼管嗎?當然可以,風哥來分享一款自己設計的plc能控制數碼管的顯示,並且來控制按鍵,程式設計簡單,只需不超過20步即可以實現數值顯示,清屏,亮度調整等功能。首先來看看這款數碼管按...

關於按鍵消抖以及LED燈控制的乙個例項

要求 1.未按建則所有led全黑 2.按k1按鈕,則用前8個led燈二進位制顯示25 3.按k2按鈕,則12只led合併顯示流水燈效果,3個led點亮並向右流水。注 是hr 240b fpga 創新實驗系統,其核心板的核心晶元為 epm240t100c5n 分析 led是共陰極,所以點亮led需要高...