1樓:匿名使用者
給你講思路吧,先設定外部中段,開啟中斷開關。主程式可以利用一個for迴圈,每有一次中斷就操作一次陣列(陣列元素加一或減一(其中陣列對應的是數碼管1~9的顯示))
2樓:匿名使用者
簡單。。。。。。。。。。
51微控制器通過計數器中斷實現數字的加1、減1和外部中斷清0功能,在3位數碼管上顯示
3樓:匿名使用者
看看這個**例項,彙編51微控制器接四個數碼管從0000顯示到9999,採用外部int0中斷一次加1,int1中斷清零,用組合語言。
at89s51微控制器的p1口接有1個7段led數碼管,初始顯示0。外部中斷輸入引腳into接有一
4樓:匿名使用者
p3.2的按鍵作為外部中斷了,實現計數功能,所以,那個延時子程式沒有用了。
關鍵問題是,凡是中斷程式中所用的變數,要定義為全域性變數。修改的程式如下。
#include
#define uint unsigned int#define uchar unsigned charuchar code seg=;//你0的段碼錯誤了uchar i=0; //凡是中斷程式用到的變數,一律定義為全域性變數,而且不用定義成 unsigned int 型的變數。
/*void delay()//延時子程式沒有用,註釋掉*/void main(void)
}void int0() interrupt 0 using 1**結果如下
5樓:匿名使用者
把變數i作為全域性變數
利用51微控制器,4個數碼管設計一個計時器,要求在數碼管上顯示的資料從0開始每1秒鐘加1。 10
6樓:anyway丶
共陽數碼管中斷程式:
#include
#define uint unsigned int
#define uchar unsigned char
uchar code table=
;uint num,a;
uchar bai,shi,ge;
void init();
void delay(uint);
void display(ucharbai,ucharshi,ucharge);
uint fb();
uint fs();
uint fg();
void main()
}void init()
void display(ucharbai,ucharshi,ucharge)
void timeoff() interrupt 1}}
void delay(uint z)
uint fb()
uint fs()
uint fg()
擴充套件資料
2個可程式設計定時/計數器·5箇中斷源,2個優先順序(52有6個)
一個全雙工序列通訊口
外部資料儲存器定址空間為64kb
外部程式儲存器定址空間為64kb
邏輯操作位定址功能·雙列直插40pindip封裝
單一+5v電源供電
cpu:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能暫存器;
ram:用以存放可以讀寫的資料,如運算的中間結果、最終結果以及欲顯示的資料;
rom:用以存放程式、一些原始資料和**;
i/o口:四個8位並行i/o口,既可用作輸入,也可用作輸出
t/c:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;
五個中斷源的中斷控制系統;
一個全雙工uart(通用非同步接收傳送器)的序列i/o口,用於實現微控制器之間或微控制器與微機之間的序列通訊;
片內振盪器和時鐘產生電路,石英晶體和微調電容需要外接。最佳振盪頻率為6m—12m。
7樓:匿名使用者
我剛剛寫好的 我的數碼管是共陽的 用中斷函式來寫#include
#define uint unsigned int#define uchar unsigned charuchar code table=
;uint num,a;
uchar bai,shi,ge;
void init();
void delay(uint);
void display(ucharbai,ucharshi,ucharge);
uint fb();
uint fs();
uint fg();
void main()
}void init()
void display(ucharbai,ucharshi,ucharge)
void timeoff() interrupt 1}}void delay(uint z)
uint fb()
uint fs()
uint fg()
8樓:匿名使用者
#include
#define uint unsigned int
uint qian,bai,shi,ge;
int a;
unsigned char code table=;
void chushihua(); //初始化函式
void delay(unsigned int i); //延時函式
void xianshi(uint qian,uint bai,uint shi,uint ge); //顯示函式
void main()
xianshi(qian,bai,shi,ge); } }
void exter1() interrupt 1
void chushihua()
void delay(unsigned int i)
void xianshi(uint qian,uint bai,uint shi,uint ge)
9樓:匿名使用者
這個不難的 你自己動手練習一下就會了的
設計一個微控制器輸入顯示系統,要求每按一下按鍵數碼管顯示資料加1(數碼管初始值為0,9加1 後顯示0)。
10樓:沈偉棟
程式清單如下:
#include < reg51.h >// 51微控制器標頭檔案
#define uchar unsigned char // 巨集定義
,用uchar替代無符號字元型
#define uint unsigned int // 巨集定義,用uint 替代無符號整數型
sbit key = p2 ^ 7;
uchar count = 0;
uchar code datachar[10] = // 定義數碼管的段碼 '0'~'9'、'-'、' ' 'p'
;//延時n毫秒
void delaynms( uint n ) // 利用x、y作簡單的自減運算,消耗微控制器指令週期,達到延時的目的
//數碼管顯示 // 顯示方式為動態掃描,視覺暫留原理
void display( uchar num ) // *p指向main函式中的陣列shownum的首地址
void main( void )
while( !key );
}display( count );}}
擴充套件資料
8051微控制器具有如下功能:
8位cpu·4kbytes程式儲存器(rom) (52為8k)
128bytes的資料儲存器(ram) (52有256bytes的ram)
32條i/o口線·111條指令,大部分為單位元組指令
21個專用暫存器
2個可程式設計定時/計數器·5箇中斷源,2個優先順序(52有6個)
一個全雙工序列通訊口
外部資料儲存器定址空間為64kb
外部程式儲存器定址空間為64kb
邏輯操作位定址功能·雙列直插40pindip封裝
單一+5v電源供電
cpu:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能暫存器;
ram:用以存放可以讀寫的資料,如運算的中間結果、最終結果以及欲顯示的資料;
rom:用以存放程式、一些原始資料和**;
i/o口:四個8位並行i/o口,既可用作輸入,也可用作輸出
t/c:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;
五個中斷源的中斷控制系統;
一個全雙工uart(通用非同步接收傳送器)的序列i/o口,用於實現微控制器之間或微控制器與微機之間的序列通訊;
片內振盪器和時鐘產生電路,石英晶體和微調電容需要外接。最佳振盪頻率為6m—12m。
11樓:匿名使用者
#include < reg52.h > // 嵌入51微控制器標頭檔案
#define uchar unsigned char // 巨集定義,用uchar替代無符號字元型
#define uint unsigned int // 巨集定義,用uint 替代無符號整數型
sbit key = p2 ^ 7;
uchar count = 0;
uchar code datachar[10] = // 定義數碼管的段碼 '0'~'9'、'-'、' ' 'p'
;//延時n毫秒
void delaynms( uint n ) // 利用x、y作簡單的自減運算,消耗微控制器指令週期,達到延時的目的
//數碼管顯示 // 顯示方式為動態掃描,視覺暫留原理
void display( uchar num ) // *p指向main函式中的陣列shownum的首地址
void main( void )
while( !key );
}display( count ); }}
微控制器89c51外部摁鍵中斷程式
ex0 1 開外部中斷0 ea 0 開總中斷 lt0 1 下降沿觸發 然後寫中斷函式即可 void extern0 interrupt 0 按鍵一端接地,另一端接p3 2 就是外部中斷0 sbit key p3 2 void main void int0 interrupt 0 else 這個程式包...
51微控制器執行完外部中斷0後,想讓他返回主函式的開頭從新執行,繼續檢測中斷執行中斷在返回主函式開頭
你主函式中除了初始化的語句外,其它的處理部分都放在while 1 的迴圈中啊,然後 外部中 專斷中設定一 屬個標誌位,舉例說明,比如。下面例子,是外中斷一次,p0取反一次,你如果還想有其它資料處理,可以把語句寫在while 1 中。中斷執行後,判斷flag,然後會自動回到主函式中。void main...
關於51微控制器的中斷,關於51微控制器的中斷。
中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷髮生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5箇中斷源 中斷號 優...