#include<stdio.h>
#include<string.h>
#define INBUF_LEN 4 //数据长度
unsigned char inbuf1[INBUF_LEN]
unsigned char checksum,count3 , flag,temp,ch
bit read_flag=0
sbit cp=P1^1
sbit DIR=P1^2
int i
unsigned int xdata *RAMDATA/*定义RAM地址指针*/
unsigned char a[6] ={0x11,0x22,0x33,0x44,0x55,0x66}
void init_serialcomm(void)
{
SCON=0x50//在11.0592MHz下,设置串行口波特率为9600,方式1,并允许接收
PCON=0x00
ES=1
TMOD=0x21//定时器工作于方式2,自动装载方式
TH0=(65536-1000)%256
TL0=(65536-1000)/256
TL1=0xfd
TH1=0xfd
ET0=1
TR0=1
TR1=1
// TI=0
EA=1
// TI=1
RAMDATA=0x1F45
}
void serial () interrupt 4 using 3
{
if(RI)
{ RI=0
ch=SBUF
TI=1//置SBUF空
switch(ch)
{
case 0x01 :printf("A")TI=0break
case 0x02 :printf("B")TI=0break
case 0x03 :printf("C")TI=0break
case 0x04 :printf("D")TI=0break
default :printf("fg")TI=0break
}
}
}
//向串口发送一个字符
void timer0() interrupt 1 using 3{
// char i
flag++
TH0=0x00
TL0=0x00
if(flag==10)
{// cp=!cp
// for(i=0i<6i++)
P2=0x25
TI=1
temp=*RAMDATA
printf("%c",temp)
TI=0
// RAMDATA--
flag=0
}
}
//主程序
main()
{
init_serialcomm()//初始化串口
//向6264中送数据
{
*RAMDATA=0x33
}
while(1)
{
*RAMDATA=0x33
}
}
具体我没玩过LPC2119,0X200002,应该是设置P0口寄存器地址的。
0x200002,倒数第二位为1,(0x200002是十六进制,展开成二进制。)
倒数第二位就是P0.1所在。
明白不?
还有,while(1)循环里,不停轮流执行那2句指令,没延时,
灯会闪的太快,看起来就是一直亮了。
如果你家庭比较富裕的话最好能参加一个培训。自己琢磨比较耗时学习还不系统,而且有些东西不是你自己胡思乱想就能够想出来的,需要有人引导。如果经济比较拮据的话那我给出以下的路子可能会对你有帮助。
首先学一下C语言,有一个好的编程基础;然后把微机原理给仔细看一下,这个必须得学通了,这是基础。单片机最好看C51系列的书,这个是为嵌入式开发打基础的。最后就是学系linux *** 作系统的知识和ARM的基本原理,最好能够做一些简单的ARM的小程序,因为它和单片机还是有所不同的,ARM对外设 *** 作的时候不单片机似的对外设地址 *** 作了,而是对外设的寄存起 *** 作,还有相应的控制寄存器。
linux是重点,要是想做开发的话最好学Red
Hat
Linux,其中的一些基本的shell命令必须的熟知,还有就是linux的驱动程序的框架和应用程序的编写。驱动程序你最好找一个比较经典而又简单的程序看一下,对照网上的知识;写应用程序你必须得懂得对驱动程序文件的一些打开,读写,关闭等基本 *** 作,还有必须得理解多进程和多线程和其中的一些细节(如死锁的概念和解决方法,多进程间的通信方法等等)
嵌入式意味着产片开发,多个设备之间免不了通信,所以你必须得学一些通信的协议,首先学简单点的如Modbus,CDT,101等电力通信协议,然后深入学USB协议和TCP/IP协议。
这方面的知识很多的,一时间介绍不了那么多,只是大概的给你提个方向,具体的细节你要自己查资料或通过培训解决了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)