|
電腦控制單片機視頻演示:
0.jpg (49.07 KB, 下載次數: 55)
下載附件
2018-4-13 01:51 上傳
有需要直接下載就可以了,附件里面還有視頻演示,和下位機單片機的源碼
0.jpg (25.37 KB, 下載次數: 55)
下載附件
2018-4-13 01:52 上傳
單片機源程序如下:
- /**********************單片機與PC機通訊例程************************
- * STC89C52RC+
- * 編寫:顏
- * 晶振:11.0592MHZ
- ******************************************************************/
- #include <reg52.h>
- #define jingzhen 11059200UL /*使用22.1184M晶體*/
- #define botelv 9600UL /*波特率定義為9600*/
- volatile unsigned char sending;
- #define uchar unsigned char
- #define uint unsigned int
- #define ulong unsigned long
- uchar code LED_L[] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};
- uchar code LED_R[] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};
- uchar code LED_1[] = {0xe7, 0xe7, 0xdb, 0xdb, 0xbd, 0xbd, 0x7e, 0x7e};
- uchar code LED_2[] = {0x7e, 0x7e, 0xbd, 0xbd, 0xdb, 0xdb, 0xe7, 0xe7};
- #define u16 unsigned int
- #define u8 unsigned char
- //流水燈
- u16 LED_Delay = 0;
- u8 KeyFlag = 0;
- u8 LEDState = 0;
- u8 Data = 0;
- u8 Flag = 0;
- void delay(unsigned char i)
- {
- unsigned char j,k;
- for(j=i;j>0;j--)
- for(k=90;k>0;k--);
- }
- void init(void) //串口初始化
- {
- EA=0; //暫時關閉中斷
- TMOD&=0x01; //定時器0工作在16位模式
- TMOD|=0x20; //定時器1工作在模式2,自動重裝模式
- SCON=0x50; //串口工作在模式1
- TH1=256-jingzhen/(botelv*12*16); //計算定時器重裝值
- TL1=256-jingzhen/(botelv*12*16);
- PCON|=0x80; //串口波特率加倍
- ES=1; //串行中斷允許
- TR1=1; //啟動定時器1
- REN=1; //允許接收
- //定時器0
- TH0 = (65535 - 5000) >> 8; //寫入定時器0初值
- TL0 = (65535 - 5000);
- ET0 = 1; //打開定時器0中斷
- TR0 = 1; //啟動定時器0
- EA=1; //允許中斷
- }
- void main()
- {
- init();
- while(1)
- {
- if(Flag != 0)
- {
- Flag = 0;
- KeyFlag = 0;
- switch(Data) //補充用戶所需代碼
- {
- case 0x00:P0 = 0xfe;break; //第一個按鍵
- case 0x01:P0 = 0xfd;break;
- case 0x02:P0 = 0xfb;break;
- case 0x03:P0 = 0xf7;break;
- case 0x04:P0 = 0xef;break;
- case 0x05:P0 = 0xdf;break;
- case 0x06:P0 = 0xbf;break;
- case 0x07:P0 = 0x7f;break;
- case 0x08:KeyFlag = 1;LEDState = 0;break;
- case 0x09:KeyFlag = 2;LEDState = 0;break;
- case 0x0A:KeyFlag = 3;break;
- case 0x0B:KeyFlag = 4;break;
- case 0x0C:break;
- case 0x0D:break;
- case 0x0E:break;
- case 0x0F:break;
- }
- }
- if(KeyFlag != 0)
- {
- switch(LEDState)
- {
- case 0:
- case 2:
- case 4:
- case 6:
- case 8:
- case 10:
- case 12:
- case 14:
- LED_Delay = 0;
- switch(KeyFlag)
- {
- case 1:P0 = LED_L[LEDState/2];break; //流水燈左模式
- case 2:P0 = LED_R[LEDState/2];break; //流水燈右模式
- case 3:P0 = LED_1[LEDState/2];break;
- case 4:P0 = LED_2[LEDState/2];break;
- }
- LEDState++;
- break;
-
- default:
- if(LED_Delay >= 50)
- {
- LED_Delay = 0;
- LEDState++;
- if(LEDState == 16)
- {
- LEDState = 0;
- }
- }
- break;
- }
- }
- }
- }
- void uart(void) interrupt 4 //串口發送中斷
- {
- if(RI) //收到數據
- {
- RI=0; //清中斷請求
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
電腦控制單片機小軟件.rar
(16.36 MB, 下載次數: 83)
2018-4-12 22:35 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|