📄 testdinzhuanv10.c
字号:
//************************************
//***********
//**** 2004-06-19 mcu at89c2051 38400BPS OSC 22.1184MHZ
// 测试地砖
//************************************
#include <at892051.h>
#include <stdio.h>//一般I/O函数
#include <stdlib.h>//标准函数
#include <absacc.h>//绝对地址
#include <intrins.h>//内部函数
#include <setjmp.h>
#define uchar unsigned char
#define uint unsigned int
#define Byte unsigned char
#define Word unsigned int
#define ulong unsigned long
#define bool bit
#define true 1
#define false 0
#define V_TH0 0xf8 /* 时间常数高8位 (65536-500)/256 */
#define V_TL0 0xc5 /* 时间常数低8位 (65536-500)%256 11.0592*/
#define ADD 1
//******************************
sbit roe=P3^2;
sbit goe=P3^3;
sbit boe=P3^4;
//**************************************************************
uchar dis_buf_r,dis_buf_g,dis_buf_b; //显示缓冲
uchar mode;
uchar pointer;
uchar send_buf[4];
uchar pwm,rl;
uchar setadd;
jmp_buf env;
int retval;
uchar bdata flags;
sbit flag0=flags^0;
sbit flag1=flags^1;
sbit flag2=flags^2;
sbit flag3=flags^3;
sbit frameok=flags^4;
//*********************************
void televise(uchar add);
//*********************************
//*******************************
void delay1s(uint j)
{
uint i;
while(j!=0)
{
for(i=0;i<15530;i++);
j--;
}
}
//*******************************
void send_del(uchar j)
{
while(j!=0)
{
j--;
}
}
void test(void)
{
uchar i;
for(i=1;i<40;i++)
{
dis_buf_r=255;dis_buf_g=0;dis_buf_b=0;
televise(i);
delay1s(50);
}
for(i=1;i<40;i++)
{
dis_buf_r=0;dis_buf_g=255;dis_buf_b=0;
televise(i);
delay1s(50);
}
for(i=1;i<40;i++)
{
dis_buf_r=0;dis_buf_g=0;dis_buf_b=255;
televise(i);
delay1s(50);
}
}
//----------------------------------
void main(void)
{
TMOD=0x21;
SCON=0xd0;
TH1=0xfd;
TL1=0xfd; //256-(22.1184*10~6/32/12/3/38400*2)
//PCON=0X80;//倍频
SM2=1;
TL0=V_TL0;
TH0=V_TH0;
TR0=1;
ET0=1;
TR1=1;
ET1=0;
ES=1;
EA=1;
PS=1;
frameok=0;
pointer=0;
dis_buf_b=dis_buf_g=dis_buf_r=0;
setadd=(~P1)&0x3f;
while(1)
{
dis_buf_r=255;dis_buf_g=0;dis_buf_b=0;
televise(0);
delay1s(5);
dis_buf_r=0;dis_buf_g=255;dis_buf_b=0;
televise(0);
delay1s(5);
dis_buf_r=0;dis_buf_g=0;dis_buf_b=255;
televise(0);
delay1s(5);
test();
}
}
//**************************
//将数据广播发送
//*****************************
void televise(uchar add)
{
TB8=1;
SBUF=add;while(!TI);TI=0;
TB8=0;
send_del(20);
SBUF=dis_buf_r;
while(!TI);TI=0;
send_del(20);
SBUF=dis_buf_g;
while(!TI);TI=0;
send_del(20);
SBUF=dis_buf_b;
while(!TI);TI=0;
send_del(20);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -