1樓:
我給你個簡單的例子:
#include //預處理檔案裡面定義了特殊暫存器的名稱如p1 口定義為p1
void main(void)
;unsigned int a; //定義迴圈用的變數
unsigned char b; //在c51 程式設計中因記憶體有限儘可能注意變數型別的使用
//儘可能使用少位元組的型別,在大型的程式中很
受用do
}while(1);
}程式中的花樣資料可以自以去定義,因這裡我們的led 要at89c51 的p1 引腳為低電平才
會點亮,所以我們要向p1 口的各引腳寫資料o 對應連線的led 才會被點亮,p1 口的八個引
腳剛好對應p1 口特殊暫存器的八個二進位,如向p1 口定資料0xfe,轉成二進位制就是
11111110,最低位d0 為0 這裡p1.0 引腳輸出低電平,led1 被點亮。如此類推,大家不難算
出自己想要做的效果了。
留個郵箱給你發個入門文件
2樓:匿名使用者
看看這個也許能行
#define byte unsigned char
#define word unsigned int
#define dword unsigned long
#define speed 12 //12 mhz(注意更高就不能一次得到50ms定時了)
#define tttt 50000 //50ms
#define th1_init_val (65536-speed * tttt / 12)/256
#define tl1_init_val (65536-speed * tttt / 12)%256
sbit l1 = p1^0 ;
sbit l2 = p1^1 ;
sbit l3 = p1^2 ;
sbit l4 = p1^3 ;
sbit l5 = p1^4 ;
sbit l6 = p1^5 ;
sbit l7 = p1^6 ;
sbit l8 = p1^7 ;
bit flag1s ;
void t1_init()
第一秒鐘l1,l3亮,
第二秒鐘l2,l4亮,
第三秒鐘l5,l7亮,
第四秒鐘l6,l8亮,
第六秒鐘l2,l4,l6,l8亮,
第七秒鐘八個二極體全亮,
第八秒鐘全滅
[可以將p0口各時刻的狀態做個**,這裡就不做了]
void led_run()
void main()
}void isr_t1() interrupt 3 using 2 //定時器1中斷服務程式50ms}
3樓:匿名使用者
這個沒有0實驗板原理圖,沒法寫哈。
大概就是先定義一下管腳,再向管腳寫ff或00初始化。再把第一個燈點亮,再關掉第一個燈,再點亮第二個燈。。。 。。。把它放在do迴圈裡就ok了,
熟練了後,加個for迴圈簡化一下程式,設幾個變數就行了。
4樓:
#include "reg52.h"
#include "intrins.h"
void delay(unsigned int t)}}void main(void)
temp=0x7f;
for(num2=0;num2<8;num2++)temp=0xfe;
for(num1=0;num1<8;num1++)temp=0x7f;
for(num2=0;num2<8;num2++)}}
16個二極體分別接到p0口和p1口.....
參考資料
微控制器16個流水燈c語言程式設計問題
5樓:匿名使用者
程式基本沒大錯誤,你這個程式執行一次就結束了,要想程式實現無限迴圈的從p0口到p2口又回到p0口,只需稍加改動。
在主函式定義區域性變數的下面加:
while(1)
用89c51微控制器制作由開關控制的流水燈通過按下不同的開關來控制led p1 0 1 2接
include define uchar unsigned char define uint unsigned intsbit k1 p1 0 sbit k2 p1 1 sbit k3 p1 2 sbit led1 p2 4 sbit led2 p2 5 sbit led3 p2 6 延時子程式 v...
用89c52微控制器控制led流水燈的c語言程式
include define uchar unsigned charuchar led1,led2,led3,led4 void delay uchar a for num 0 num 5 num 32燈流水 火柴天堂作品 20130520 52微控制器,12mhz晶振,p0 p3 接32顆led,...
51微控制器c語言是什麼意思,51微控制器C語言中 和 的意思是什麼?
c 語言,是計算機程式語言。適合於入門者學習 使用。51 微控制器,是一種微型計算機。用 c 語言,對其程式設計,就是 51微控制器c語言 51微控制器c語言中 和 的意思是什麼?u8comdata 1 相當於 u8comdata u8comdata 1,u8comdata u8temp 相當於 u...