附protel99畫的PCB原理圖、PCB圖、單片機代碼
51hei.png (13.45 KB, 下載次數: 33)
下載附件
2022-3-29 22:31 上傳
51hei.png (48.23 KB, 下載次數: 32)
下載附件
2022-3-29 22:32 上傳
51hei.png (38.92 KB, 下載次數: 39)
下載附件
2022-3-29 22:31 上傳
51hei.png (20.67 KB, 下載次數: 40)
下載附件
2022-3-29 22:31 上傳
單片機源程序如下:
- /***********************************************************
- 共陰數碼管
- ***********************************************************/
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code acLEDCS[]={0x01,0x02,0x04,0x08}; /* 位選地址碼,“0”有效,位選接的是P0口低4位 */
- uchar code acLedSegCode[]={0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c};/* 段碼 */
- uchar acLED[4]; /* 顯示緩沖區 */
- char cScanIndex=0,flag=0; /* 位選指針0~3 */
- uchar bdata cBakP0 = 0xf0;
- uint f=0,nTimer=0,speed=0;
- void display()
- {
- //數據處理
- acLED[0]=acLedSegCode[speed/10/1000]; /* LED顯示第1位 */
- acLED[1]=0x80|acLedSegCode[speed/10/100%10]; /* LED顯示第2位 */
- acLED[2]=acLedSegCode[speed/10/10%10]; /* LED顯示第3位 電機速率*/
- acLED[3]=acLedSegCode[speed/10%10]; /* LED顯示第4位 */
- }
- void main()
- {
- TMOD= 0x15;
- TH0 =0;
- TL0 = 0;
- TR0 = 1;
- ET0 = 1;
- TH1 = (65536-49989)/256;
- TL1 = (65536-49989)%256;
- TR1 = 1;
- ET1 = 1;
- EX0 = 1; /* 允許外部中斷0 */
- EA = 1; /* 開總中斷 */
- while(1)
- {
-
- //*************************顯示刷新******************
- display();
- P1 = 0; /* 先清顯示再換位選 */
- P0 = cBakP0 | acLEDCS[cScanIndex]; /* 送位選數據 */
- P1 = acLED[cScanIndex++]; /* 送顯示數據,位選指針移位 */
- cScanIndex &= 3; /* 位選指針回位 */
- if(flag==1)
- {
- flag=0;
- display();
- f=0;
- nTimer=0;
- TH0=0;
- TL0=0;
- TR0=1;
- }
- }
- }
- void IntT0() interrupt 1
- {
- f++;
- }
- void IntT1() interrupt 3
- {
- TH1 = (65536-50045)/256;
- TL1 = (65536-50045)%256;
- nTimer++;
- if(nTimer == 20)
- {
- speed =f*65536+TH0*256+TL0;
- TR0=0;
- flag=1;
- //nTimer=0;
- }
- }
- /*void Pint0() interrupt 0
- {
- } */
復制代碼
所有資料51hei附件下載:
注意程序是Keil2版本的 PCB是protel99的老版本,如果你的電腦沒有安裝此軟件 請勿下載:
信號發生器ILC8038.7z
(559.09 KB, 下載次數: 23)
2022-3-29 22:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|