#include <reg51.h>
sbit wled = P2^0;
char code DATA_7SEG[16]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90,
0x88, 0x83, 0x46, 0xa1, 0x86, 0x8e};
char act[4]={0xfe, 0xfd, 0xfb, 0xf7 }; //個十百千之電晶體輪流低電位PNP導通
char data disp[4];
char di=0;//BJT基極腳--act一維陣列的索引值
int value;
unsigned char hi, lo;
//============================================
void delay(int d)
{
int i, j;
for(i=0; i<d; i++)
for(j=0; j<100; j++) ;
}
/*----------------------------*/
void led_bl()//二、一開始讓led亮2秒
{
int i;
for(i=0; i<1; i++)
{
wled=0; delay(2000);
wled=1; delay(2000);
}
}
/*----------------*/
void init_buf()//一、預設千百十個顯示為0000,用回圈跑4次
{
int i;
for(i=0; i<4; i++) disp[i]=DATA_7SEG[0];
}
/*------------------*/
void t0isr(void) interrupt 1 using 1//計時器0中斷函數
{
/* 2 mS ISR...scan 1 time */
TH0=hi;//初始設定重抄一遍,計時中斷0 2ms 掃瞄一次,消除視覺暫留
TL0=lo;
/* 5 mS ISR...scan 1 seg */
P0=disp[di];//計時中斷0 5ms掃瞄一次七段顯示器
P1=act[di]; //P1 掃瞄個十百千即com0 com1 com2 com3
di++;
if(di==4) di=0;//週期為0123 0123
}
/*------------------*/
void init_t1()//二、初始值設定TH0 TL0
{
value=65536-2000;//模式1 2ms初始值設定,獨立出來
TH0=hi=value/256;
TL0=lo=value%256;
TMOD=0x01;//模式1打開
IE=0x82;//Timer0中斷打開
TR0=1;//TR0打開
}
//----------------------------------------
void show_data(char c)
{
int d;
d=DATA_7SEG[c];//一維陣列7段顯示器=0~9
disp[0]=d;
disp[1]=d;
disp[2]=d;
disp[3]=d;
}
/*------------------*/
void test_seg()//三、測試7段顯示器
{
int i;
for(i=0; i<10; i++) //顯示0000 1111 2222 ~ 9999
{
show_data(i); //顯示資料,丟0~9
delay(500);
}
}
//----------------------------
main()
{
init_buf();
led_bl();
init_t1();
test_seg();
while (1) {}
}
2019年10月19日 星期六
訂閱:
張貼留言 (Atom)
algorithm
#include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv) { for(int j=2;j<=100;j++)//j...
-
本文旨在補充《 超圖解Arduino互動設計入門 》第18章「RFID無線識別裝置與問答遊戲製作」單元,書本採用的RFID讀卡機模組是採用9600bps, TTL序列通訊介面,RFID的通訊頻率為125KHz。這種模組的接線和程式都很簡單,每當感測到RFID卡,讀卡機就把...
-
3.Keil C 幫我們寫好 程式:#include <reg51.h> vs c語言 #include <stdio.h> //幫您宣告 P0=0x80 有相對的記憶體以十六進位表示,它定義定reg51.h,我們直接拿來用他的代碼即可 P1=0...
-
/* 多重按鈕開關 */ //==宣告區================================ #include // 定義8051暫存器之標頭檔,P2-17~19 #include "myio.h" // 自己寫的I/O程式庫 sbit PB...
沒有留言:
張貼留言