中斷" rel="noopener noreferrer">51微控制器c語言程式(二)定時/計數器 中斷
飛揚 程式一
利用定時/計數器t0從p1.0輸出週期為1s的方波,
讓發光二極體以1hz閃爍,
#include //52微控制器標頭檔案
#include //包含有左右迴圈移位子函式的庫
#define uint unsigned int
//巨集定義
#define uchar unsigned char //巨集定義
sbit p1_0=p1^0;
uchar tt;
void main()
//主函式
void timer0() interrupt 1}
程式二利用定時/計數器t1產生定時時鐘,
由p1口控制8個發光二極體,
使8個指示燈依次乙個乙個閃動,
閃動頻率為10次/秒(8個燈依次亮一遍為乙個週期),迴圈。
#include //52微控制器標頭檔案
#include //包含有左右迴圈移位子函式的庫
#define uint unsigned int
//巨集定義
#define uchar unsigned char //巨集定義
sbit p1_0=p1^0;
uchar tt,a;
void main()
//主函式
void timer0() interrupt 1}
程式三同時用兩個定時器控制蜂鳴器發聲,
定時器0控制頻率,定時器1控制同個
頻率持續的時間,間隔2s依次輸出
1,10,50,100,200,400,800,
1k(hz)的方波
#include //52微控制器標頭檔案
#include //包含有左右迴圈移位子函式的庫
#define uint unsigned int
//巨集定義
#define uchar unsigned char //巨集定義
sbit beep=p2^3;
uchar tt;
uint fre,flag;
void main()
//主函式
void timer0() interrupt 1
//定時器0中斷
if(flag>=40&&flag<80)
if(flag>=80&&flag<120)
if(flag>=120&&flag<160)
if(flag>=160&&flag<200)
if(flag>=200&&flag<240)
if(flag>=240&&flag<280)
if(flag>=280&&flag<320)
if(flag>=320&&flag<360)
tr0=1;
}void timer1() interrupt 3 //定時器1中斷用來產生2秒時間定時}
程式四用定時器以間隔500ms在6位數碼管上依次顯示
0、1、2、3....c、d、e、f,重複。
#include //52微控制器標頭檔案
#include //包含有左右迴圈移位子函式的庫
#define uint unsigned int
//巨集定義
#define uchar unsigned char //巨集定義
sbit dula=p2^6;
//數碼管段選鎖存端
sbit wela=p2^7;
數碼管位選鎖存端
uchar num,tt;
uchar code table=;
void main()}}
void exter0() interrupt 1
// 定時器0中斷
51微控制器C語言
使用c語言已成為微控制器應用系統開發的趨勢。include 包含微控制器暫存器的標頭檔案這個檔案對微控制器內部各種暫存器進行了定義。如果將 sfr p0 0x80 語句中的 p0 改為其他名字,如 q0 那麼在程式設計時,使用第一行的 檔案包含 處理命令後,微控制器以後就不再認識 p0 而是只認識 ...
51微控制器C51程式
學習c51程式之前需要對c語言有一定的了解和學習 這裡只介紹與c語言有區別的地方 具體的不同如下 1 c51中增加了幾種針對msc 51微控制器的特有資料型別 a sfr和sfr16 用於定義特殊功能暫存器,如 sfr psw 0xd0 一般情況下這些特殊功能暫存器不需要使用者自定義,通常包含在標頭...
菜鳥之學習51微控制器(二)微控制器C語言基礎
大一的時候學習了譚浩強教授的 c語言程式設計 有了一定的基礎,再加上大二參加c語言2級培訓班,通過了全國二級,有一定的提高,但是翻看 微控制器程式設計 之後發現,keil 3除了標準c語言的關鍵字外,增加如下關鍵字 1.at 絕對位址定位 2.alien 函式型別 3.bdata 用於指定儲存於ra...