?? sy_003_1.c
字號:
/*******************************************************************************
*
* File : SY_003_1.c
* Date : 2007-09-24
* Version : 1.0
* Powerd by : shenyae86 QQ:184676957
* 中北大學信息與通信工程學院 沈陽
********************************************************************************
* Descriptoon:
* 串口通信 數碼管顯示發送和接受的數據 串口波特率9600
* 單片機將上位機發來的信息通過數碼管低兩位顯示出來后再將之取反送回上位機,取反
* 后的數據通過數碼管高兩位顯示
* 適用于CC100C
* 產品網站 http://www.ccnuc.cn 傳誠科技
*
*******************************************************************************/
#include <REG51.H>
#include <intrins.h>
#define uchar unsigned char
const uchar LedCode[]={
0xC0,/*0*/
0xF9,/*1*/
0xA4,/*2*/
0xB0,/*3*/
0x99,/*4*/
0x92,/*5*/
0x82,/*6*/
0xF8,/*7*/
0x80,/*8*/
0x90,/*9*/
0x88,/*A*/
0x83,/*b*/
0xC6,/*C*/
0xA1,/*d*/
0x86,/*E*/
0x8E,/*F*/};//0-F off
uchar dis_digit=0xfe;
uchar data dis_buf[8];
uchar data dis_index;
void delay()
{
uchar i = 0;
uchar j = 0;
for (j=0;j<255;j++)
{
for (i=0; i<250; i++);
}
}
void ISRSER() interrupt 4 using 3 //串口中斷
{
uchar a;
if (RI)
{
RI=0;
a=SBUF;
dis_buf[2] = LedCode[a/16]; // 第一位
dis_buf[3] = LedCode[a%16]; // 第二位
SBUF=255-a; //取反
while(TI==0);
dis_buf[0] = LedCode[(255-a)/16]; // 第三位
dis_buf[1] = LedCode[(255-a)%16]; // 第四位
TI=0;
}
}
void display() interrupt 1 //顯示掃描中斷
{
TH0 = 0xFC;
TL0 = 0x17;
P2 = 0xff; // 先關閉所有數碼管
P0 = dis_buf[dis_index]; // 顯示代碼傳送到P0口
P2 = dis_digit; //
dis_digit = _crol_(dis_digit,1); // 位選通值左移, 下次中斷時選通下一位數碼管
if(dis_digit==0xef) dis_digit=0xfe;
dis_index++;
dis_index &= 0x03;
}
void main()
{
delay();//延時
SCON|=0x50; /* mode 1: 8-bit UART, enable receiver */
TMOD|=0x21; /* timer 1 mode 2: 8-Bit reload */
PCON|=0x80; // baud x2
TH1=0xfa; //串口波特率初始化 0xfd=19200,0xfa=9600,0xf4=4800,0xe8=2400,0xd0=1200
TH0=0XFC;
TL0=0X17;
TR0=1;
TR1=1;
EA=1;
ET0=1;
ES=1; // Turn on Series Interrupte;
dis_index=0;
dis_buf[0] = LedCode[0]; // 第一位
dis_buf[1] = LedCode[0]; // 第二位
dis_buf[2] = LedCode[0]; // 第三位
dis_buf[3] = LedCode[0]; // 第四位
P0 = dis_buf[dis_index]; // 顯示代碼傳送到P0口
P2 = dis_digit;
while(1){;}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -