#include"c8051f330.h"
#include "INTRINS.H"
sbit hclk=P0^3;
sbit vclk=P0^2;
void DAC_Init(void)
{
P0SKIP|=0X01;
IDA0CN =0xf1;
}
main()
{
int i;
PCA0MD =0;//关闭看门狗
XBR1 = 0x40; //交叉开关使能
P0MDOUT =0xff; //p0口输出上拉
DAC_Init();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
hclk=1;
vclk=1;
while(1)
{
hclk=1;
i=i+1;
if(i<3)
vclk=1;
else if(i<600) //600
vclk=0;
else
{i=0;
vclk=1;}
IDA0L=0x80;
IDA0H=0x5;
hclk=0;
IDA0L=0x60;
IDA0H=0x12;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
利用了c8051f单片机速度快的优势,
和c8051f330单片机的电流型数模转换器.
速度只用了3MHz,最大可以是25MHz!
还有很多上升空间!!!
大多数时间里单片机只运行空操作!
比8位pic ,avr快了很多!!!
原理图不用帖了,结合说明和软件能够得到!
适合800*600,1024*768 CRT/LCD 显示器(60/75Hz).
实际证明完全可以用c51编程来给显示器输送红,绿,蓝视频信号!
不需要用汇编来编程,速度完全可以跟得上!(其它型号的单片机一般需要用
汇编) |