当前位置:文档之家› 手把手教你学VC

手把手教你学VC

手把手教你学VC
手把手教你学VC

从零开始学VC系列教程

从零开始学VC系列教程一.信息显示实验 (1)

从零开始学VC系列教程二. 对话框及常用控件实验 (8)

从零开始学VC系列教程之三.串口通信与自定义消息 (21)

从零开始学VC系列教程之四.并口控制与类的使用 (34)

从零开始学VC系列教程五.消息机制与自定义消息 (45)

从零开始学VC系列教程一.信息显示实验

题外话:第一次写教程,不知道该怎么开始.以前见过的教程可能都会介绍比较多的理论然后才开始讲实际操作,我想对于VC,理论讲得太多大家可能更糊涂,所以选择了这个方案,我们先一步步照着做,每一次只介绍一两个知识点,并且把理论放在后面说明,希望大家能喜欢这种方式,并对这种方式提出意见和建议,以便以后章节更适合大家的学习.

或许我写的还不能称之为教程,只是一些操作步骤及说明,通过这些练习,希望能使大家对VC有一个新的认识.VC的功能是十分强大的,但我们一般并不会用到所有的功能,就像大家熟悉的KeilC一样,其实Keil功能也是很多的,平时也没见谁把Keil的功能都用到了.基于此,我写的这个教程可能在VC专业人士看来比较简单.不是要班门弄斧,而是希望推行上位机技术,形成一个氛围让大家来学习交流,PC机与下位机结合毕竟也是发展的一个方向.望高手谅解小辈的不自量力.同时,我们结合单片机编程,让大家明白上位机控制方法及原理,当然这是今后章节的内容了.

本节内容:学会在文本框中显示文本,学会弹出式对话框使用.

学习目的:信息显示是人机交互的基础,同时,信息显示也为以后的程序调试打下基础.

1.新建工程.打开VC6.0点击[文件]->[新建],弹出如下对话框.

在工程选项中选择MFC AppWizard[exe],选择好工程存入的位置,然后在工程名称中填入工程的名称,例如Eg01,填入Eg01后.VC会在我们选择的路径后自动加入一个以工程名命名的文件夹作为工程目录.完成按[确定]就会进入工程向导,出现以下的提示.

在这个我们选择[基于对话框]就行了.单文档及多文档方式会在以后详细介绍.这里也简要说明一下.①单文档.程序一次只能处理一个文档对象(文件).像写字板,记事本等.②多文档.

程序一次可以处理多个对象(文件),像word之类的,可以同时打开多个文件.③基本对话框.程序一般用于处理一些比较小的,工具型的软件.像双龙的ISP下载软件,Easy 51Pro等都是基于对话框.一些不是很复杂的工业软件也通常可以用基于对话框的形式,这种方式的优点是所见即所得,一些控件可以像VB一样拖到工作区就行了.选好以后直接按[完成]就可以了.至于[下一步]的向导,这里我们先不管.然后会进入以下的画面.其中红色及绿色是我的标注,看不清图片可以下载图片放大.

选中静态文本框[TODO:在这里设置对话框控制],单击指标右键,在弹出的快捷菜单中选择[属性Properties]菜单项,弹出如下对话框

修改IDC_STATIC为IDC_FIRSTLABEL,标题可以写为”第一个应用程序”然后关闭这个对话框,就可以看到刚才的静态文本框内容变为”第一个应用程序”了.

在刚才的操作中,我们将静态文本框的ID改为了IDC_FIRSTLABEL,在VC中,ID是控件的标志,不能有相同的ID出现,但允许多个名为IDC_STATIC的ID号.所以,一般并不把文件名命

为IDC_STATIC,除非以后我们不想在程序中改变这个控件的属性.有一些控制,例如GroupBox一般并不在程序中改变什么,所以不改变其ID号.ID是程序访问控件的标识,所以一个应用程序中不能有重复ID.

按下来我们要添加一个按钮.

用鼠标将控件条上的按钮拖到对话框上,可以看到对话框上多了一个按钮. 用上叙方法,改变按钮ID为IDC_BTN1,标题改为”显示”,这样就做好一个按钮了.下面我们为按钮添加代码. 双击按钮,会出现以下的提示框.

按[OK]为按钮添加响应函数,出面以下画面

void CEg01Dlg::OnBtn1()

{

// TODO: Add your control notification handler code here

}

这一段就是刚才按钮的函数了.当然,现在还没有响应.现在我们添加一个事件,让这个按钮按下后上面的静态文本框的内容变为”串口号:COM1 波特率:57600”把上面的代码改为

void CEg01Dlg::OnBtn1()

{

// TODO: Add your control notification handler code here

串口号:COM1 波特率:57600”);

SetDlgItemText(IDC_FIRSTLABEL,”

}

添加完成以后,按F7编译.如果编译通过,按F5运行,可以看到程序运行后的对话框

按下按钮,可以看到上面的静态文本框的内容改变了.那么恭喜你,完成我们这个例子的第一步操作了.

当然,我这里的对话框看起来没那么高,大家可以调一下高度.怎么退回到控件编辑状态呢?

首先,我们单击选项卡中的[ResorceView],现在大家只能看到[Reso…]看到IDD_EG01_DIALG 了吧,这个其实也是一个ID,是我们对话框的ID,如果大家改一下对话框的ID,就可以看到这里的ID也变了.在VC中,所有的控件都认为是窗体,只是形式不同.双击IDD_EG01_DIALG就可以看到我们刚才的控制编辑状态了.双击[显示]按钮又可以回到代码状态.

刚才的例子很简单,却是我们以后会用得最多的.下面我们来分析一下代码

void CEg01Dlg::OnBtn1()

{

// TODO: Add your control notification handler code here

串口号:COM1 波特率:57600”);

SetDlgItemText

(IDC_FIRSTLABEL,”

}

看看SetDlgItemText这个函数,大家就会明白了, IDC_FIRSTLABEL是我们给静态文本框分配的ID,后面的参数是要显示的内容.上面我们提到过,VC中的控件都认为是窗体,所以,对于所有的文本显示,我们都可以用这个函数来做,大家可以试着加入一个编辑框(Edit),同样可以使用用这个函数,只要ID号对了就可以了.VC对大小写敏感,大家要注意大小写.

下面我们用另一个方法来实现.

把代码改为

void CEg01Dlg::OnBtn1()

{

// TODO: Add your control notification handler code here

CString

a;

a=” 串口号:COM1 波特率:57600”;

SetDlgItemText (IDC_FIRSTLABEL,a);

}

然后按F7编译,无误则按F5运行.可以看到运行结果是一样的.

大家可以看到,我们把变量a定义为CString类型,这个类型我们在C中可能没有见过.CString 其实是VC中的一个类.这里我们要引入类的概念了.类跟C语言结构体很像,结构体可以有成员变量,但不能有成员函数,类不但可以有成员变量,还可以有成员函数,并且支持多种方法.在VC中,类用class标识.下面是一个类的定义,我们来分析一下.

class CEg01Dlg : public CDialog

{

public:

CString

GetPath(void);

protected:

int GetMax(int a,int b);

public:

a;

int

b;

int

};

这个类是我改过的,为了大家看得明白一点.首先,我们从这句class CEg01Dlg : public CDialog 知道这个类名是CEg01Dlg,那么public后面的CDialog是什么意思呢?CDialog其实也是一个类,是VC中标准对话框类. public CDialog意思是我们定义的这个类CEg01Dlg从CDialog派生,也叫从CDialog继承,从继承这个词语大家就会明白CEg01Dlg不但可以有自身函数,而且还可以用到CDialog里的变量及函数,所以说是继承,就像我们说的继承财产一样,儿子不但可以有自己的钱,还有从老爸那里继承的产财,这些钱都能花.所以,我们也叫CDialog为父类(不

是爸类啊),把CEg01Dlg称为子类.当然,这是相对的.如果再定义一个类从CEg01Dlg派生,那么CEg01Dlg也就是父类,派生出来的类就是子类.这段可能有点难明白,大家可以慢慢体会.我们再回到CString上面来,这个类不是派生的,所以也没有父类了.用CString定义一个变量a,我们称为类变量,CString有很强大的功能,我们这里只用到一个功能,就是字符串,a可以是一个不定长度的字符串,所以我们可以给a赋一个任意的字符串而不用关心长度.当然,我们也可以用int StringLen=a.GetLength();来获得这个字符串的长度.从这句可以看到,GetLength()是类CString里的一个函数.大家可能又会关心一个问题,怎么把长度显示出来呢?我们把代码改为void CEg01Dlg::OnBtn1()

{

// TODO: Add your control notification handler code here

a;

CString

串口号:COM1 波特率:57600";

a="

(IDC_FIRSTLABEL,a);

SetDlgItemText

a.Format("字符串的长度:%d",a.GetLength());

MessageBox(a);

}

运行一下,效果如下

这里我们用到了类Cstring的另一个成员函数Format();这个函数用起来跟C语言里的Printf()很像,我就不多说明了.格式化后的字符串还是存放在a中,在这里,我们还用到了一个新的函数MessageBox();我们只是用了这个函数最简单的用法,显示一个字符串.MessageBox用于弹出一个提示对话框.查查MSDN就知道,函数原型是

int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK ); 在VC里面,函数可以有默认值,例如LPCTSTR lpszCaption = NULL, UINT nType = MB_OK变量lpszCaption的默认值是NULL, nType的默认值是MB_OK,这些有默认值的变量我们可以不传值,所以这个函数使用时,最简单的用法就是传lpszText就可以了.如果我们要显示一个固定的字串,可以这样调用MessageBox(“大家好”);是不是很简单啊?

这一章就写到这里了,一些问题大家可以提.未尽知识点,会在以后再详细介绍.

从零开始学VC系列教程二. 对话框及常用控件实验

恭喜你,进入VC学习的第二节了.这一节是人机交互的基础.所谓人机交互,说通俗点就是与机器对话.然而我们现在的技术还不能像科幻片里一样与机器人直接说话就行了.所以,我们的操作意图还得通过文本输入,命令按钮等等来实现.

本节内容:学会对话框调用及一些常用控件的使用方法.

学习目的:学习人机交互,为软件开发提供界面基础.

1.新建工程.参考第一节的方法新建一个工程,名字为Eg02完成后如下图

细心的朋友一定会发现.新建的工程里还有一个对话框,ID名是IDD_ABOUTBOX这个是做什么用的呢?我们用到的软件都会有一个版权声明.通过第一章的学习,大家应该知道怎么观看这个IDD_ABOUTBOX对话框了吧.没错!双击IDD_ABOUTBOX就可以了.我们会看到如下的一个对话框

这就是我们这个程序的关于对话框,一般用于版权声明及版本号标识.大家看到的这个对话框里有两个静态文本框和一个图像框(Picture),静态文本框我们在前一节已经介绍过了.大家可以修改一下版权所有这一行,填什么都可以,签个大名也行.完成以后你一定想看看效果,这个对话框怎么打开呢?其实VC已经为我们做好了.先按F7编译,然后按F5运行.大家可以看到程序运行了.

单击应用程序图标,就会出现一个菜单,选最后一个[关于Eg02],关于对话框就弹出来了.

当然,这是系统为我们做好的.自己怎么在程序中调用这个对话框呢?为了演示,首先参考第一节的内容添加一个按钮,然后把按钮的ID改为IDC_BTN_ABOUTME,把标题,也就是Caption 改为[关于].最终效果如下

下面我们为按钮添加代码.相信大家一定还记得怎么进入代码吧..对了,双击[关于]按钮,在弹出的对话框中点[确定]就可以了.为了让大家更好的理解下面的操作,我们先要解释一下关于对话框的类.VC向导会为关于对话框建立一个类,大家看看下面的图

单击标签ClassView(这里显示的是[Class…])就可以看到Eg02这个应用程序的类.第一个CAboutDlg就是关于对话框的类.CEg02Dlg对应IDD_EG02_DIALOG.中间的Ceg02App是应用程序的基础类.所以,如果要对关于对话框进行操作,就要用到类CAboutDlg,因为与此有关的函数及变量都封装在CAboutDlg中.看到这里大家可能又糊涂了,没关系,在以后的教程中,通过一些练习大家就会慢慢领会到的.这里还是先为[关于]按钮添加代码.

void CEg02Dlg::OnBtnAboutme()

{

// TODO: Add your control notification handler code here

}

上面是VC为[关于]按钮添加的响应函数.我们添加代码成以下所示

void CEg02Dlg::OnBtnAboutme()

{

// TODO: Add your control notification handler code here

ADlg;

CAboutDlg

ADlg.DoModal();

}

一共有两句,第一句是CAboutDlg ADlg;作用是定义一个变量Adlg.第二句是ADlg.DoModal();功能是调用类CAboutDlg里的一个函数DoModal();这个函数在MSDN里的解释是Call this member function to invoke the modal dialog box and return the dialog-box result when done. This member function handles all interaction with the user while the dialog box is active. This is what makes the dialog box modal; that is, the user cannot interact with other windows until the dialog box is closed.一般我们用于显示一个对话框.其实大家看看CAboutDlg这个类下面,只有两个函数

DoModal()这个函数并不在这个里面.第一章我们提到过类的派生和继承.其实CAboutDlg这

个类是派生于CDialog类,DoModal()这个函数是CDialog的成员函数,由于CAboutDlg是继承父类CDialog的,所以CDialog里的函数在CAboutDlg中也可以使用.

下面我们来说说几个常用控件的使用.

首先在IDD_EG02_DIALOG对话框中加入一个Edit(编辑框)控件.Edit一般用于输入输出数据文本.相当于VB里的TextBox.加入Edit控件后,编辑其属性为

然后,我们再加一个按钮(PushButton),并编辑其属性为

接下来,我们先说一下要实现的效果.很简单,在编辑框里输入一个文本,然后按显示,就把文本显示在静态文本框中.所以,这里要把静态文本编辑框的ID改为IDC_DISPLABEL

下面我们为[显示]按钮添加代码

void CEg02Dlg::OnBtnShow()

{

// TODO: Add your control notification handler code here

a;

CString

GetDlgItemText(IDC_EDIT_INPUT,a);

SetDlgItemText(IDC_DISPLABEL,a);

}

其实不复杂,也只有三句,第一句定义一个CString类变量a 我们来说说GetDlgItemText这个函数吧.查查MSDN就知道函数原型了.

int GetDlgItemText(int nID,LPTSTR lpStr,int nMaxCount)const;

int GetDlgItemText( int nID, CString& rString ) const;

大家看看就觉得奇怪了,怎么有两个原型啊?并且一个是传两个参数,另一个是传三个参数.在VC里面,同一个类下是可以存在多个同名函数的,具体调用哪个函数要看参数的不同.在这里我们传入了两个参数,所以VC会调用int GetDlgItemText( int nID, CString& rString ) const;这个函数.第一个函数是控件的ID号,第二个是字串.第二个传了地址,所以我们在下一句中用的a已经是获得IDC_EDIT_INPUT的文本了.运行效果如下

下面介绍一下进度条的使用以及定时器的使用.

我们要实现的效果是进度从0到满格,然后再从0到满格,依次循环.每跳一格间隔500ms,这个时间我们用定时器来实现.

首先从控件条里拖出一个进程条到对话框,修改属性如下

然后我们要介绍一下VC的定时器.VC里面使用定时器有多种方式,我们先介绍一种作为抛砖引玉

首先添加一个Windows消息处理器.消息这个词语可能很陌生,我们会在后面很多次说明.这里先照图做

在类管理器里选中Ceg02Dlg这个类,然后点右键,就会弹出一个菜单,选择[Add Windows Message Handler…],接下来会弹出另一个菜单

双击WM_TIMER然后按[确定]就可以了.大家会看到,CEg02Dlg类中多了一个函数

这个就是VC中的定时器响应函数.然后双击这个函数就进入代码了

然后我们为Timer事件添加代码.

void CEg02Dlg::OnTimer(UINT nIDEvent)

{

// TODO: Add your message handler code here and/or call default IDC_PROGRESS static

nPos=0;

int

((CProgressCtrl*)(GetDlgItem(IDC_PROGRESS)))->SetPos(nPos);

nPos+=10;

if(nPos<100)

nPos=0;

else

CDialog::OnTimer(nIDEvent);

}

首先定义一个整型的变量nPos用于记录进度条的进度值.默认时,进度条0为空,100为满格.从后的程序大家可以看到,这个变量自加到100就变为0.最难理解的就是((CProgressCtrl*)(GetDlgItem(IDC_PROGRESS)))->SetPos(nPos);

首先, GetDlgItem(IDC_PROGRESS)这个函数用来获取IDC_PROGRESS的句柄,在VC里面引入了句柄这个词语,我们将在下一章中对消息和句柄进行详细的说明, 句柄是WINDOWS 用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。在这里,GetDlgItem获取了窗体句柄,大家应该还记得,在VC里面,控制就看成窗体。(CProgressCtrl*)这个地方是将返回的句柄强制转换为CProgressCtrl类型,与C 语言的中的强制转换是一样的.进度条的控制类是CprogressCtrl.而前面返回的是一个窗体类型,所以先要强制转换.在第一章中,我们提到过,VC中的控件都认为是窗体,在这里就体现出来了. SetPos(nPos);这个函数是类CprogressCtrl的成员函数,用来指定当前进度条的进度.最后还有一步,就是激活这个定时器.像我们的C51或A VR一样,要初始化定时器. 而void CEg02Dlg::OnTimer(UINT nIDEvent)这个函数就像我们单片机的定时器中断服务函数一样.时间到了就会自动执行.

参考上面的图,双击OnInitDialog(),就可以进入对话框初始化函数,只要添加一句就可以了.完成后如下

BOOL CEg02Dlg::OnInitDialog()

{

CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.

0xFFF0) == IDM_ABOUTBOX);

ASSERT((IDM_ABOUTBOX

&

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

strAboutMenu;

CString

strAboutMenu.LoadString(IDS_ABOUTBOX);

(!strAboutMenu.IsEmpty())

if

{

pSysMenu->AppendMenu(MF_SEPARATOR);

strAboutMenu);

IDM_ABOUTBOX,

pSysMenu->AppendMenu(MF_STRING,

}

}

// Set the icon for this dialog. The framework does this automatically

// when the application's main window is not a dialog

SetIcon(m_hIcon,

big

icon

TRUE); //

Set

SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here

//这里是添加的,别的都是自动生成的

SetTimer(0,500,NULL);

return TRUE; // return TRUE unless you set the focus to a control

}

在这里我们只添加SetTimer(0,500,NULL);其中,参数0代表定时器的ID号为0,.第二个参数500是定时器的时间,单位为ms,后面的NULL是指不要回调函数.

按F7编译后运行就可以看到运行效果了.

或许大家有个问题,为什么开始时是添加了一个WM_TIMER的消息处理器呢?我们使用SetTimer开始定时器后,如果没有回调函数,系统会在每次定时时间到后发送一个WM_TIMER消息到窗体.窗体收到这个信息后,调用OnTimer()函数进行处理.系统定义这个函数为afx_msg void OnTimer(UINT nIDEvent);可以看到是以afx_msg修饰的,这种函数会与其中一个信息关联,或者说是消息影射到这个函数.每当有消息发过来,都会执行这个函数.大家只要好好想想单片机的定时器中断就会明白的,原理一样,只是传输机制不同.

如果上面的内容你制作成功了,那么恭喜你,第二节就基本学完了.

下面我们也来说说多任务和消息机制吧.

Windows是基于消息机制的,它是一个多任务的操作系统,也就是说,同一时间内,系统会挂起多个任务.为了说明多任务,我们先来看一段单片机程序.

V oid main(void)

{

While(1)

{

TaskA();

}

}

这个程序很简单,单片机工作后就进入while()循环了,单片机这个时候就干一件事,那就是执行任务TaskA.这样的工作总是在一个主循环内实施,一次只执行一个任务的我们称为单任务系统.单片机程序只要不引入操作系统并且由一个主循环一直执行完毕的基本都是单任务的.有些程序也是这样写的.

V oid main(void)

{

While(1)

{

TaskA();

TaskB();

TaskC();

}

}

这样的程序看起来似乎是有三个任务了.这三个任务是顺序执行的,也就是说,必须让A 完成后,才能到B,B完成后才能到C.如果A有一个长时间的延时,系统就会在A中空等,然而B与A本来是无关的,这样空等的时间就算是浪费了.如果我们的windows也是顺序执行的就麻烦了,那时我们不仅仅会说Windows有点慢,而是说Windows像蜗牛一样在爬.如果我们让这些任务更合理的安排一下,在执行A的时候,有空就去执行B,而在B的空闲时间去执行C 或者A,那么时间就节省下来了.如果时间切换够快,那么我们可以认为A,B,C三个任务在同时进行.所以,如果我们把单片机的执行时间分成若干等份,每份1ms或者更小,这种时间等份我们称为时间片,每次时间到了就换一个任务.也就是说,第一毫秒执行A,这时我们并不等A全部执行完,并记住这个断点,到了第二毫秒执行B,第三毫秒执行C,第四毫秒又执行A并从原来的断点开始执行,依次直至三个任务都完成.大家可以看到,任务A每三毫秒执行了一次.这就是多任务的模型了.

Windows其实就是这么干的.只是每次任务时间不一定是我们上面说的3ms,因为系统同一时间内可能会有很多待执行的任务,这些任务就被系统按优先级排成队,一个个取出来执行.比如我们现在打开VC,系统在加载VC,同时我们还可以移动鼠标,这些好像都是在同时进行,其实它们也是按时间片分时执行的.

现在分析一下这个工作过程吧.现在我们要打开VC,系统开始加载VC了,可以看到VC 的LOGO界面,但这个时候我们还可以动一下鼠标,硬件首先会响应,并给软件发个通知,而软件这个时候可能还没有轮到鼠标程序的执行,怎么办呢?系统会先把这个鼠标操作保存起来,轮到鼠标时间片时再来处理鼠标操作.大家可能觉得,这样鼠标操作不是滞后了吗?确实是这样的,但这个滞后时间是很短的,我们基本不会察觉出来.

我们来看看消息的定义.

消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。

消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。

综合前面的分析,消息就好理解了,鼠标动一下会产生一个事件,这个事件必须要告诉系统啊,怎么告诉系统呢?Windows把这个定义为Message也就是消息,所以,消息可以认为是一个操作记号,记录上一步所发生的或者说是下一步所要处理的事件.系统为消息安排了一个队列,里面可以存放很多个消息,我们称为消息队列.有键盘操作时,把键盘操作放到消息队列里面,相当于做一个记号,我们动了键盘,有鼠标操作时,把鼠标操作放到消息队列,也便记住我们在键盘后还动了鼠标,系统就把这些东西一个个按时间取出来执行.在Windows里面,鼠标消息可以有几种,例如单击落了左键,系统会产生一个消息为WM_LBUTTONDOWN如果我们移动了鼠标,就像产生一个消息为WM_MOUSEMOVE消息入队后,系统会依次处理.当然,我们这样的解释虽然容易懂,但不是非常专业,并且Windows内部处理消息也比这复杂多了,但基本原理就是这样的了,并且,我们在进行操作时,并不用关心Windows的底层是怎么处理这些事件的,除非我们的操作真的让Windows生气了,就必须去查查出什么问题了.

《蒹葭》教学实录(名师教你如何上好公开课)

《蒹葭》教学实录(名师教你如何上好公开课) (课前播放水边芦苇画面配《在水一方》二胡曲。) 师:有这样几句诗,大家可能听过:“关关雎鸠,在河之洲。窈窕淑女,君子好逑。”你们知道这些诗句出自哪一本书吗? 生(齐):《诗经》。 师:没错,出自《诗经》。中国是一个诗的国度,中国古典诗歌灿若星河,佳篇如林。今天我们要学的《蒹葭》也出自《诗经》。这是一部怎样的书呢? 生1:是我国的第一部诗歌总集。 师:对这本诗集我们还有哪些了解? (屏显《诗经》简介。) 师:今天我们要学的《蒹葭》出自《诗经·秦风》。这说明它来自于哪里? 生(齐):民间。 师:对,来自于民间。也就是说它是一首民歌,是最有生活气息和生命力的。下面,我们就来听读一遍这首诗歌。听读的时候注意节奏、读音、感情,还要注意它结构上的规律,并看看我国古代的民歌都有些什么特点。 (师配《在水一方》二胡曲诵读,学生聆听。) 师:老师发现你在听读的时候摇头晃脑,非常陶醉。对这首诗你一定很有感觉吧,说说你的感受。 生1:我觉得这首诗开头所写的景物很美。 师:噢,景物之美。其他同学还有什么发现吗?可以从诗的结构或是韵律方面谈谈。

生2:这首诗有三个小节,每个小节都押韵。 师:押的什么韵?举个例子。 生2:“蒹葭苍苍,白露为霜。所谓伊人,在水一方”押“ang”韵。 师:还有其他的韵吗? 生3:还有“i”。 师:能把韵脚找出来吗? 生3:“苍”“霜”“方”“央”押的是“ang”韵;“凄”“晞”“跻”“涘”“已”押的是“i”韵。 师:你真是一个细心的孩子,所有的韵脚都被你找出来了。它是押韵的,景也很美,还有吗?你还发现了什么? 生4:结构很整齐。每个段八句,前两句写景,后六句写人和事。 师:你也有一双善于发现的眼睛。结构很整齐,它一共有多少章?如果是现代诗,我们就会说它有多少节,古代就称为章。也就说,这三章诗的结构是非常一致的,而且又押韵。所以,读起来会给我们什么感觉? 生(众):琅琅上口。 师:这就体现了《诗经》民歌的特色了。现在,请大家美美地自由朗读这首诗。(屏显。) 四言句式;“二二”拍;押韵;运用叠词;重章叠韵。 (生自由诵读。) 师:下面,老师要请一位能代表咱们班朗读水平的男同学朗读一遍,看看能否读出韵味。老师为什么要找男同学来朗读呢? 生1:因为这首诗是男的写给女的。 (生推荐语文科代表朗读。)

手把手教你STC51的ISP下载线

手把手教你STC51的ISP下载线 说起我从认识学习使用C51单片机到现在有两年多,时间不长,菜鸟一只。从用TOP151烧写AT89C51,到用easy51pro在线编程AT89S51,再到用STC-ISP 软件在线编程STC89C51,最后现在变得越来越懒,干脆用protues仿真单片机外围电路。 现在简单的总结一下,入门级的C51学习在没有昂贵的单片机仿真器情况下,怎样算是方便调试又花费少吧。 先说说AT89C51,噢,差点忘了,这型号的单片机不知何年被停产了,现在就靠它的库存仍在这个历史的舞台上挣扎。 缺点:对入土为安的芯片没什么好说了。 那就说AT89S51,这可是一个令人振奋的产物,最大的特点莫过于它的ISP(在线编程)功能,就是使用者每编译好程序,就可以立即通过ISP下载线写到单片机上去。而且ISP下载线的制作简单令单片机和我们的距离更加接近了。它的ISP原理图如下:

其中ISP下载程序可以用easy 51pro v2.0。相比昂贵的仿真器,做上图的元器件总共也就十块钱左右吧。 缺点:一、并口连接电脑,1.可能占用打印机口;2.是笔记本是没有并口的。 二、下载线制作一次成功率不大,不是漏接了这个脚就是那个口,对于新手而言尤其这样。 三、下载线寿命不长,一两次不知明的原因(通常静电),就可以把里面的那块芯片(74LS244)烧坏。并且,实际你都不知道到底哪里出毛病了。 也许,世界上真的没有最好,只要更好,自从好友张JL和陈Y介绍了STC的51系列单片机给我之后,发现竟然有这么方便好用功能强大的单片机。

STC51单片机的型号跟ATMEL的大致一样,有STC89C51,C52等,对应于AT89C51,C52等对应它们的内部RAM内部ROM中断口等,是完全一样的。 当然,STC系列单片机是改进型的单片机,它的热重启,串口ISP等功能确实为我准备介绍给大家提供了理由。 先说说ISP功能,它跟电脑连接就只有三根线,就是通过RS-232传输。它ISP 过程是这样的:冷重启(上电)-单片机运行系统ISP监控程序(出厂时已烧到里面)-检测P3.0/RXD有没有合法下载命令流,有的话,就下载用户程序进户程序区;没有的话,就跳到用户程序区,运行用户程序。所以,第一次下载程序,用户需要先点ISP下载软件的“download”,再把单片机通电。如图: 到了这里,大家不禁会说,下载线虽然简单,但每次都要断电上电,烦不烦?答:我都觉得烦。不过眼睛锐利的读者发现了上图右下片有一段文字。说什么的呢?哦,原来是自定义下载。什么是自定义下载?首先我先说个高兴的事儿——用自定义下载,从此告别断电上电的冷重启ISP下载。 所谓自定义下载,就是我从上面软件的自定义下载命令文本框中打入十六进制数字(如:FEH)然后点击发送,程序自动下载到用户单片机里。神奇吧。究其不用断电上电冷重启的原因,就是上面我所说的STC单片机具有热重启功能。用户只需简单控制ISP_CONTOR特殊功能寄存器即可实现系统复位了。汇编语

学会计必读的书籍推荐

学会计必读的书籍推荐 导读:我根据大家的需要整理了一份关于《学会计必读的书籍推荐》的内容,具体内容:学会计的人是否只能整天对着数字打交道?看了这些书你就会发现,会计还能这么当?下面是由我为大家整理的,希望你会喜欢!1《让数字说话:审计,就这么简单》金十七... 学会计的人是否只能整天对着数字打交道?看了这些书你就会发现,会计还能这么当?下面是由我为大家整理的,希望你会喜欢! 1 《让数字说话:审计,就这么简单》 金十七 审计真的是那样枯燥无味吗?作者以浅显易懂的语言、幽默诙谐的比喻和旁征博引的故事引领我们开启一段奇妙的阅读旅程。从审计的本源到审计结果,从审计的思考方法到工作底稿、风险控制,甚至会计科目,作者都有自己透彻的理解和独到的看法。 如果你有兴趣认真阅读这本书,可以慢慢将它从头读到尾,理解其中的意思。 如果你只打算看看热闹,可以快速把这本书翻完,只要你能将里面讲的那些故事及其表达的想法理解并记住,这本书你也就看了个七七八八。当然,你也可以把它当做一本工具书,在审计工作的时候,可以随时拿出来查一下每个科目要做哪些审计步骤,基本上也可以把要做的科目的审计工作完成。

2 《断舍离》 山下英子 "断舍离"是从根本上反思自己与物品的关系,对物品进行简化、取舍,为人们省出整理的时间、空间、劳力和精力。山下英子将瑜伽中的行法哲学"断行、舍行、离行"——这种放弃心中执念的理念提炼成"断舍离",运用到日常生活整理整顿、人际关系、思考等各个方面。 这本书中的特点在于:断舍离的主角并不是物品,而是自己,而时间轴永远都是现在。选择物品的窍门,不是"能不能用",而是"我要不要用",这一点必须铭刻在心。 3 《手把手教你读财报》 唐朝 本书的作者是一位久经沙场的老股民,有多年的投资经理,更明白财务的意义,更知道投资者读财报的目的。书的内容从财务的三大报表说起,从资产负债表、利润表、现金流量表一一谈起,并以贵州茅台的财报为例,因为作者不是专业会计出身,文中没有难懂的晦涩术语,可以让零基础的人轻松读懂财报,读懂财报背后的密码。对于投资领域人士和企业财务经营者而言,都是难得的佳作。 4 《摩根财团》 罗恩彻诺

嵌入式学习心得体会5篇

嵌入式学习心得体会5篇 嵌入式学习心得体会(一) 首先我声明,我是基于嵌入式系统平台级设计的,硬件这个方向我相对来讲比较有发言权,如果是其它方面所要具备的基本技能还要和我们培训中心其它专业级讲师沟通。他们的方面上我只能说是知道些,但不是太多,初级的问题也可以问我。 对于硬件来讲有几个方向,就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的modem 射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15k以上。 另一类就是数字部分了,在大方向上又可分为51/arm的单片机类,dsp类,fpga 类,国内fpga的工程师大多是在ic设计公司从事ip核的前端验证,这部分不搞到门级,前途不太明朗,即使做个ic前端验证工程师,也要搞上几年才能胜任。dsp 硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。 而arm单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互pk,判定水平高低的依据。而接口设计这块最关键的是看时序,而不是简单的连接,比如pxa255处理器i2c要求速度在100kbps,如果把一个i2c外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失败。这样的情况有很多,比如51单片机可以在总线接lcd,但为什么这种lcd就不能挂在arm的总线上,还有arm7总线上可以外接个winband的sd卡控制器,但为什么这种控制器接不到arm9或是xscale处理器上,这些都是问题。 因此接口并不是一种简单的连接,要看时序,要看参数。一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师

名师教学实录 (5)

名师教学实录 1数一数 1 引入新课 师:同学们,今天我们一起来学习怎样数图上的物品和人物。下面,哪位同学能从1数到10呢? (有几个同学都很流利地数出来) 师:全班一起数一数吧。(全班齐数)非常流利,不错。 2 教授新知 (出示主题图) 师:我们看到图中有一面国旗,那么可以用什么数字来表示呢? (出示:1) 生:老师,还有一位老师。 师:对!不管是一位老师还是一面国旗,只要是数量只有“一”的,我们就可以用数字“1”来表示。请同学们再观察图,还有哪些物品的数量是“1”? 生:一个足球。 师:请你上来指一指。 (指后全班都说:“对!”) 生:一栋教学楼。 师:对吗?图上是不是只画了一栋教学楼呢?大家看看。(全班都说:“是!”)那我们学校是不是只有一栋教学楼呢?生:不是。 (一个学生边说边用手指着几栋教学楼的方位) 师:你观察得很仔细,我们学校有好几栋教学楼。 生:国旗上有一颗大星星。 师:哦,你看得真仔细!我们看一下国旗,上面是不是有一颗大的星星? (同学们都仔细地看着,然后说:“是!”) 师:同学们都观察得很仔细,上课时也很积极,有不一样的意见时能大胆说出来,这一点非常好。 生1:老师,还有一个足球场。 生2:有一个操场。 (教师把学生们说出来的东西一一写在黑板上) 师:今天,老师发现同学们特别细心,昨天我们只是数了一面红旗和一位老师,这么多的东西都没有数出来,现在你们能说这么多,太了不起了! (出示挂图,全班一齐从1数到10) 师:请大家再看一看,还有哪些物品是我们没数到的?同桌互相说一说。 (学生交流) 师:下面我们来数一数我们身上都有些什么器官,比如:我有1张嘴,2只手。同学们能不能用“我有几个什么”来说一说呢? 生1:我有2只脚。 生2:我有1个鼻子。 生3:我有2只手。 生4:我的这只手有5根手指。

手把手教你搭建财务模型

手把手教你搭建财务模型 投行咨询或者投资界常说的Financial Model,俗称财务模型,听起来高大上白富美,实际上数学原理不超过四则运算,顶多加上开方和乘法。而且制作工具也非常简单,基本都是Excel。这个领域的Financial Model的复杂性不是体现在理论,而是体现在: ?商业逻辑清晰:找出核心的假设 ?灵活性强:根据客户或老板需求快速调整,有时候真的是先有结论后有推论 ?胆子大:针对众多不可测的变量敢于进行有量级精度的假设或者瞎猜,物理界有海森堡测不准原理,商业界有鲁智深测不怕原理 基本可以这么说,几乎所有的财务模型都是拿Excel做出来的。包括但不限于: ?偏会计或财务方面:财务三张报表的历史及预测 ?偏项目投资或项目管理方面:NPV/IRR等模型 ?偏股权及债券投资方面:市场规模预测、投资价值预测(DCF及Comparable 等等)等等、针对各种股权的回报预测 ?偏交易方面:针对各类金融产品(FX、衍生品等等)的模型估算和执行策略等等。 如何搞好Model 因为Financial Model基本成为这几个高薪行业的基本功,不少人私信我要求 开一个关于如何做财务模型的Live,因为犯懒就利用这个专栏文章好好满足大 家的需求。

下图展现的是一个经典Financial Model的架构,选择这个模型来作为范例,因为它基本涉及到了金融和投资领域大部分需要建模的可能性:三张财务报表的预测、资产注入、投资回报及敏感性分析、LBO以及股份计算等等。 接下来讲述按照怎么样的顺序和思路来构建如此复杂的财务模型。我将这套方法称之为“逐步推进法”,核心主线是按照信息或数据的确定性,从强到弱,从常数、到历史数据、到假设、到商业条件逐步罗列出模型的已知数据,然后构建各类公式,把已知数据推导到目标数据,最后完成最核心的分析并展现最核心的输出。 第一步,设置核心常量。这一般都是些在该模型中不变动而且会高频反复用到的常量,比如:所得税率、汇率(当然在某些模型中,汇率会成为变量或者敏

嵌入式学习心得

嵌入式学习心得 如何学习嵌入式系统(基于ARM平台) 前言 网上看到众多网友都问了关于嵌入式系统方面的很多问题,很多都可在这里找到答案,希望我的这篇文章能给他们以启发。也请大家不要轻易转载。 一、嵌入式系统的概念 着重理解“嵌入”的概念 主要从三个方面上来理解。 1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC 机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成PCI控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL上网功能。IXP系列最高主频可以达到1.8G,支持2G内存,1G×10或10G×1的以太网口或Febre channel的光通道。IXP系列应该是目标基于ARM体系统结构下由intel进行整合后成Xscale内核的最高的处理器了。 2、从软件上前,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”,比如WinCE在内核定制时,会有相应选择,其中就是wordpad,PDF,MediaPlay等等选择,如果我们选择了,在CE启动后,就可以在界面中找到这些东西,如果是以前PC上将的windows操作系统,多半的东西都需要我们得新再装。 3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。 以上的定义是我在6、7年前给嵌入式系统下自话侧重于理解型的定义,书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们,历为毕竟嵌入式系统是计算机范畴下的一门综合性学科 二、嵌入式系统的分层与专业的分类。 嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。 1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。 硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。 2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows 下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运

云龙51单片机视频教程大全

云龙51单片机视频教程简介 本视频教程是针对YL-51单片机开发板讲的配套DVD视频教程目录: 讲次内容细节 第一课如何学好单片机单片机能做什么,学习单片机需要什么,如何学好单片机技术。 第二课预备知识点亮一个发光管认识单片机由来及内部结构,单片机最小工作单元组成;单片机开发软件操作:KEIL软件开发环境认识、单片机烧录软件使用。 第三课预备知识 C51基础知识及流水灯设计简单延时程序、子程序调用、、流水灯同时蜂鸣器响、如何驱动蜂鸣器,及如何驱动继电器,集电极开路的概念及应用。 第四课数码管显示的原理,数码管的静态显示共阳、共阴数码管显示原理、带参数子程序设计。 第五课中断和定时器原理定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、定时器中断应用 第六课数码管的动态显示原理及应用实现动态扫描概念及定时器、中断加深 第七课按键学习:独立按键和矩阵按键键盘检测、消抖、键盘编码、带返回值函数写法及应用 第八课数模转换(DA)工作原理及应用数字电压与模拟电压的关系、如何使用DAC0832的实成DA转换 第九课模数转换(AD)工作原理及应用模拟电压与数字电压的关系,如何使用ADC0804的实成AD转换 第十课1602液晶显示原理及实现最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作 第十一课串口原理及应用串口通讯工作方式、重点讲述最常用的10位数据通讯、波特率概念及如何根据波特率计算定时器初值 第十二课IIC总线原理和模块化编程方法 IIC总线工作原理、目前非常通用的一种通信机制; 项目开发模块化编程方法。 第十三课红外通信原理及应用红外通信是目前应用最为广泛的通信和遥控手段。在本课程中以红外遥控为代表,具体讲解红外通信的具体过程。

一个初学者的嵌入式培训体会

一个初学者的嵌入式培训体会现在嵌入式做为计算机发展的一个新的方向越来越得到社会的重视。随之而来的是很多培训班的诞生,但是如何能在琳琅满目的培训机构中找到一个能真正学到东西的培训班呢,这是摆在众多想学嵌入式的人面前的第一个问题。我在了解了众多培训机构并且试听之后,最终选择了Tocore 嵌入式培训,之所以选择,是因为我看重老师的实际能力和认真负责的态度。我非常荣幸能够成为Tocore中的一员。 嵌入式开发,做为一个新的计算机发展方向,已经越来越受到社会的重视,社会上的需要也十分巨大,可是真正懂得嵌入式开发的人才缺不是很多,归结去原因主要是一下几个方面: 一:因为它是新兴的一个发展方向,懂得的人自然不多。 二:学习嵌入式需要比较庞杂的知识结构。操作系统、微机原理、C/C++语言、数据结构等。 三:嵌入式学习,上手很困难,不知道从哪里着手去学习。 在刚开始接触的时候,我也是抱着本书,自己摸索,可是越看越迷茫,连很多书里的名词都不知道是什么意思,去网上查也没有得到答案。可是在Tocore我得到了很好的指点,在这里,由于老师都是十分有经验的项目经理,他们懂得如何去学习,从哪里开始入手,这对于我这样的背景知

识比较薄弱又接触时间比较短的人来说实在是太有帮助了。 虽然课程还没有完,可是在这段时间的学习中,我按照老师的指导在完善的课程体系下进行系统的学习,已经掌握了U-boot、kernel以及linux移植的基本框架,(我想在今后的学习中一定会对这些知识更加熟悉以至精通!)这对于2个月前什么都不懂的我来说已经是很大的提高了!用得是ARM9的板子,这也是市场上现在比较新的,比较流行的板子,很多公司在实际的产品开发中就用的是ARM9。在课堂上,老师的讲解和我们的练习相结合,理论联系实际。老师除了讲解知识外,还结合了大量的实际案例和操作,这对于我对问题的理解和知识的记忆有很大帮助。 最后谈谈对学习态度的一点看法。嵌入式学习,是比较耗时的,前期需要很多知识做铺垫,有很多人在这个过程中走了不少弯路,于是开始失去耐心、失去信心,以至最终放弃学习。所以我想有必要强调一下问题,在刚开始的时候,自己什么都不懂,可是学习的愿望很强烈,每次上课都希望上完课就能如何如何,可是下来发现自己好像离自己原本的目标还很远,于是心里着急,自己跑到网上搜了很多资料,每天乱看,可是并没有很大的帮助。我想说的是,学习嵌入式一定要有耐心和毅力,不能急躁,按照课程的安排自己多做一些总结和练习,等到知识慢慢的积累下来就会有一种豁然开朗的感觉。

手把手教你怎么复习:会计专硕

手把手教你怎么复习:会计专硕 【MPAcc中国网讯】因为较高的就业率,成就了会计专硕的报考热度连年攀升,很多在职的,在校的同学都选择了报考会计专硕。但会计专硕的供需比如何,就业率如何,决定了考研又该如何去具体复习,快随小编一起来看看吧。 ?会计专硕的就业前景 会计专硕培养面向市场需求的会计专业人才,因此基本不存在就业问题,而且近几年会计专硕的发展势头越来越好,近年人才供需比为0.8:1。每年毕业生就业去向一般为国企的财务部(如中烟、地产、电网)、银行分行或者支行、四大会计师事务所、企业财务部、公务员、证券公司等。总体来讲会计专硕的就业还是比较乐观的。 以上海财经大学会计专硕毕业生就业去向为例: 证券公司——19.30%; 企业(包括国企)——29.82%; 会计事务所——26.31%; 银行——19.30%; 咨询行业——5.26%;

会计专硕的薪资范围一般在7-22万/年。 ?书目推荐 1、英语二 书名作者推荐率 蒋军虎系列蒋军虎32.3% 张剑黄皮书系列张剑等19.4% 新东方单词(红宝书、绿皮书)新东方6.4% 高教版的阅读理解150篇高教版张剑曾鸣等6.4%考研英语高分写作王江涛6.4% 考研英语历年真题超精解丁晓钟5.2% 考研英语高分写作王江涛4.1% 星火单词系列马德高6.4% 陈正康辅导书系列陈正康3.2%

华研巅峰阅读120篇叶常青3.2% 其它-16% 2、199管理类联考 报考会计硕士、工商管理、公共管理、审计硕士、旅游管理、图书情报,工程管理这些专业的学生,初试考两门:管理类联考综合能力+英语二,不考专业课。大部分学校不指定复习书目,最好的办法是联系师兄师姐,请教经验。下面的书单,仅供大家参考,注意购买最新版本。 (1)数学 书名作者出版社 《MBA、MPAcc联考同步复习指导系列:数学分册》袁进等机械工业出版社 《MBA、MPA、MPAcc 联考综合能力数学高分指南》陈剑主编北航出版社 《管理类专业学位联考数学高分一本通》朱杰上海交通出版社 《MBA、MPA、MPAcc联考数学历年真题名家详解》陈剑主编北航出版社 (2)逻辑 书名作者出版社

嵌入式学习的八大步骤及方法(精)

嵌入式学习的八大步骤及方法 一:嵌入式 c 语言 C 语言是嵌入式领域最重要也是最主要的编程语言, 通过大量编程实例重点理解 C 语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。 二:Linux 基础 Linux 操作系统的概念、安装方法,详细了解 Linux 下的目录结构、基本命令、编辑器 VI ,编译器 GCC ,调试器 GDB 和 Make 项目管理工具, Shell Makefile脚本编写等知识, 嵌入式开发环境的搭建。 三:Linux 系统编程 重点学习标准 I/O库, Linux 多任务编程中的多进程和多线程,以及进程间通信(pipe、 FIFO 、消息队列、共享内存、 signal 、信号量等 ,同步与互斥对共享资源访问控制等重要知识,主要提升对 Linux 应用开发的理解和代码调试的能力。 四:Linux 网络编程 计算机网络在嵌入式 Linux 系统应用开发过程中使用非常广泛,通过 Linux 网络发展、 TCP/IP协议、 socket 编程、 TCP 网络编程、 UDP 网络编程、 Web 编程开发等方面入手,全面了解 Linux 网络应用程序开发。重点学习网络编程相关 API ,熟练掌握 TCP 协议服务器的编程方法和并发服务器的实现,了解 HTTP 协议及其实现方法,熟悉 UDP 广播、多播的原理及编程方法,掌握混合 C/S架构网络通信系统的设计,熟悉 HTML , Javascript 等 Web 编程技术及实现方法。 五:数据结构与算法 数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用, 对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要

《老王》名师教(学)案(2课时)

《老王》名师教案 兰勇 (一)核心素养 语言建构与运用:如何通过生活细节来体现人物隐秘情感? 思维发展与提升:如何理解知识分子的情怀? 审美鉴赏与创造:如何通过人物对话来表现人物心理? 文化传承与理解:如何继承中国知识分子的济世精神? (二)设计示例 老王 绛 教学目标: 1.知识与技能:体会细节描写的作用,感受语言风格 2.情感与价值:感悟爱的博大,关爱生活中的不幸者,冶美的情操 3.方法与评价:通过独立阅读,形成自己独特而有创造性的见解。 教学重点:理解把握细节描写的含义及作用。 教学难点:理解知识分子的隐性情感。 课时安排:二课时 第一课时 教学重点:全面把握课文容,感受语言特色。 教学难点:领会从文章语言及人物刻画中渗透出的爱的博大。 预习作业: 1.熟读课文,了解生字词 2.了解绛 3.了解文革情况 4.了解底层劳动者的生存情况 一、导入 1.在生活中,你关注得最多的是什么人? 明星是因为有着耀眼的光环所以我们关注他们。伟人是因为做出了非凡的成就所以我们关注他们。而对亲人我们有深刻的感情所以我们关注……但是在我们

生活中接触得最多的是那些最不起眼的普通人。 2.今天老师就要给你们介绍一个这样的普通人,请看画像(幻灯)。他叫老王(板书),从画像上看,你觉得这是一个怎样的人?有何依据? 皱纹,历尽沧桑 衣着,贫穷 表情,善良 今天就让我们循着著名作家绛女士的笔迹,去体会这个生活在社会底层的老王不平凡的生命历程,去感受作者对老王的感情。 二、整体感知 (一)老王其人 1.请同学们默读课文,初步认识老王,并用课文中的原句填表。 2.老王的生活很苦,所幸他结识了作者一家。老王与作者一家发生很多故事。(二)老王与作者一家

手把手教你学单片机进阶-框架篇(上)

手把手教你学单片机进阶教程 框架篇(上) 本篇里我们聊一聊软件框架,那么什么是框架呢?它又有什么用处呢? 软件框架,说简单一点就是我们组织软件的方式,没有框架的代码,模块是乱添的,写程序的人也不知道要添在哪里,只知道加在这里可以用,放在这里就行。有框架的代码,模块应该添加到哪里是清楚的。曾经看过一句话说的挺有道理,“一个好的程序架构,是一个有经验的工程师和一个初学者的分水岭”,我们在单片机软件中用的最多的结构莫过于下面这样的: 1While(1) 2{ 3Led_on(); 4i = 1000; 5While(i--); 6Led_off(); 7} 当我们刚开始学习的时个,程序比较简单,这样单纯的结构还是可以应付的。但是如果当我们真的要做一个系统级的工程的时候,有很多功能要处理,这样的结构显然就不能适应了,只那一个“while(i--)”就不知道耽误了多少事儿。 到这里有人要说了,工程复杂的时候我可以跑个OS。可以说RTOS对于功能复杂的嵌入式系统来说是个非常好的解决方案,如比较出名的RT-Thread (我们以后会推出这个的专题),uc/os-ii。不过,可惜的是,操作系统对于51来说有点太,系统的开销有可能比应用占用的资源的还要多。 那么我们就自己动手来打造一个小资源单片机适用的框架吧。我们将实现两个版本,其内在思想都是一样的,一个简单点,占用资源更小。一个稍复杂些, pzq@https://www.doczj.com/doc/d016311464.html,/csh@sparkcn

但更灵活。大家可以根据情况选用。 easy_framework 我们把这个框架暂时命名为easy_framework,这里我们仅提供思想和基本的代码。完整的代码可以在我们提供代码包(下载地址见文章最后)里找到。 这里测试和实验的硬件环境是Spark51学习板。大家如果有需要,可以到我们工作室店铺购买https://www.doczj.com/doc/d016311464.html,或直接通过QQ联系我们首先使用一个Timer来产生一个1m的定时中断。在51单片机上,这里选用Timer0 1init_sys_timer() 2{ 3/*T0 1方式*/ 4TMOD |= 0x01; 5/*设定1m的计时*/ 6TL0 = (u8)SYS_TIMER_INIT_VALUE; 7TH0= (u8)(SYS_TIMER_INIT_VALUE >> 8); 8/*允许中断*/ 9ET0 = 1; 10TR0 = 1; 11} 通过上面这个函数产生一个1m的中断,在其“中断服务函数”里我们对一些时间标志量进行记数 1/*Timer 0中断服务程序*/ 2void proc_sys_tick() interrupt 1 3{ 4TR0 = 0; 5Cnt5ms++; pzq@https://www.doczj.com/doc/d016311464.html,/csh@sparkcn

名师手把手教你写高考作文

名师手把手教你写高考作文 近日,郑州市高考第二次质量预测举行,这次二测材料作文的内容是:一位美籍华裔妇女用中国式教育方法严厉管教孩子,被称之为虎妈并登上了《时代》周刊的封面,从而引起人们对中美教育方法不同观点大讨论的问题,美国一些人对虎妈的做法大加赞赏,而中国孩子的家长们对此做法则产生了困惑和怀疑。 郑州市教育局教研室中学语文教研员、河南省特级教师、河南省高考作文研究专家高全套老师,郑州九中王世来老师、郑州中学李兰老师做客名师会客厅,就这篇作文具体分析,并给下步的高考作文备考提出了宝贵建议,同学们详细读一读,会对你们的高考作文有莫大的帮助。 □东方今报记者朱红珍 ●好作文要有好立意

高全套老师说,这次给出的作文材料,只是列出了不同观点的两种思考,并没有指出谁对谁错,实际上,两种看法各有利弊。正因为它具有两面性,就需要辩证地去看待它,既指出它正确的一面,又要看到他的不足之处。所以,这则材料的最佳立意是:要辩证地看问题,既要看到事物的正面,也要看到它的反面,从而趋利避害。教育问题是这样,社会生活中的其他问题也是这样。所以,表面看,这则材料谈的是教育问题,实际上学生写作时可以延伸到社会生活的各个领域。学生选择素材时,可以写与教育有关的事,也可以写教育以外的社会上的其他事情。可以写记叙文,也可以写议论文或其他文章体裁。只要能够辩证地分析或看待事物,就是符合题意的,辩证地看问题是这则材料的最佳角度,也就是一类卷。内容项的打分在16~20分。 ●二三类作文有点偏 高老师说,二类卷的立意有以下几种情况:只一味地强调要严格要求,比如严师出高徒,棍棒出孝子。或者一味地强调要宽一些,不能严。比如说宽松的环境有利于孩子的成长,严厉教育压抑了孩子的天性等,这些只单纯地强调一个方面、一个角度的文章,都归入二

手把手教你看懂财务报表

财务报表分析 前言:随着经济全球化的发展,通信技术,网络技术的推广,世界已经成为了一个真正的地球村,人与人之间,企业与企业之间甚至国与国之间的关联都越来越紧密。我们处理问题、办理事情的过程,很多时候都变成了获取有效信息的并成功处理这些信息的过程。 财务报表作为所有企业经营活动最基本的也是最重要的信息披露方式,已经成为这个信息化社会最被关注的元素,成为我们每个人生活的一部分。即便你最近赋闲在家,每天只是做饭、看看书,安逸地享受生活,你也不可避免的要接触到与财务相关的数据。更何况在这信息爆炸的时代,在这“投资时代”,我们每天都在主动或被动地接受财务分析,财经评论。所以了解财务基本知识,看懂财务报表已经成为大众生活的必须和必需了。而作为财会专业的同学们,看懂财务报表以及运用财务报表分析问题时通向高管的必要途径,因此我们开设了这门课。 第一章初识财务报表 要读懂财务报表,并能做简单的财务分析,必须了 解财务报表的基本知识,这就好比好朋友让你评价他新装修得房子怎么样,你最起码需要了解他家有几间房子,各间房子主要功能是什么,然后才能有针对性地进行评价。 通用的圈套财务报表覆盖了一个企业的生产、经营、

投资、客户、供应商、员工信息、员工福利等所有的状态,如果能静下心来慢慢读,我们能发现,千篇一律的报表格式,虽然永远只有0-9 共十个数字组合,却恰恰是一部真正的大百科全书,每月都讲述着一个企业的大小事情。 老师通过一个通俗的老母亲餐厅的例子,来说明财务报表的定义、分类、作用、以及我们读懂财务报表的意义。 第一节什么是财务报表 1.1.1 财务报表的构成财务报表是对企业财务状况、经 营成果和现金流量的结构性表述。财务报表至少应当包括下列组成部分:(1)资产负债表;(2)利润表; (3)现金流量表;(4)所有者权益(或股东权益)变动表;(5)附注

十年经验教你如何学习嵌入式系统(基于ARM平台).

一、嵌入式系统的概念 着重理解“嵌入”的概念 主要从三个方面上来理解。 1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成PCI控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL 上网功能。IXP系列最高主频可以达到 1.8G,支持2G内存,1G×10或10G×1的以太网口或Febre channel的光通道。IXP系列应该是目标基于ARM体系统结构下由 intel进行整合后成Xscale内核的最高的处理器了。 2、从软件上看,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”,比如WinCE在内核定制时,会有相应选择,其中就是wordpad,PDF,MediaPlay等等选择,如果我们选择了,在CE启动后,就可以在界面中找到这些东西,如果是以前PC上将的windows操作系统,多半的东西都需要我们得新再装。 3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。 以上的定义是我在6、7年前给嵌入式系统下自话侧重于理解型的定义,书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们,历为毕竟嵌入式系统是计算机范畴下的一门综合性学科 二、嵌入式系统的分层与专业的分类。 嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。 1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。 硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口_技术、微机原理及接口_技术、C语言。 2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系

名师教学实录

名师教学实录 1亿以内数的认识 昆明市西山区海贝中英文小学孙勇 1引入和复习 (1)创设情境,引入课题。 师:2009年10月,我们国家举行了一次盛大的庆祝活动,今天我们首先来回忆一下这一历史时刻。 (播放国庆阅兵片段) 师:你们知道这是什么样的一个庆祝活动吗? 生:这是国庆阅兵。 师:对,这是我们国家为了庆祝新中国成立60周年举行的国庆阅兵活动,今天我们将通过一节数学课,进一步来了解这一次国庆阅兵。 (板书课题:亿以内数的认识) (2)复习10个一千是一万。 师:参加这次阅兵的除了陆军,还有海军和空军,一共有多少人参加了检阅呢?一起读一读。 (课件出示:参阅总人数约一万人) 生(齐):参阅总人数约一万人。 师:一万有多大? 生1:相当于10个一千。 生2:相当于100个一百。 生3:相当于1000个十。 师:一个这样的杯子中装有一千颗绿豆,如果老师想凑一万颗绿豆,可以怎么办? (举起装有一千颗绿豆的杯子) 生:需要10杯这样的绿豆。 师:用这样的一个杯子能装得下吗? 生:不能。 师:那老师换一个大一点的盒子来装,我们就将杯子中的绿豆一千颗一千颗地倒入盒子中,我们一起边倒边数。 生:一千、两千、三千、四千…… (师生边倒边数,数到一万) 师:我们倒了10杯绿豆凑成了一万颗,说明了什么? 生:10个一千是一万。 师:10个一千就是一万,那“一万”这个数你们会写吗?请同学们把“一万”这个数写在数位顺序表中。 (学生把10000写在自制的数位顺序表中,教师指名学生在黑板上写) 师:你是怎么写的? 生:在万位上写1,其他数位上都写0。 师:你们的写法和他的一样吗? 生:一样。 师:我们把“1”写在万位上,“1”所在的“万位”叫数位,万位上这个“1”表示什么意思呢?

嵌入式学习心得体会

嵌入式学习心得体会 BAKYANNMYRADOV 01 这学期才接触嵌入式系统感觉还称不上入门,我通过学习知道了嵌入式的发展前景很大,各个领域都用到了嵌入式,学好嵌入式不愁没饭吃。 广义上讲,凡是带有微处理器的专用软硬件系统都是嵌入式系统。如各类单片机和DSP系统。从狭义上讲,那些使用嵌入式微处理器构成独立系统,具有自己操作系统,具有特定功能,用于特定场合的专用软硬件系统称为嵌入式系统。嵌入式系统由嵌入式硬件与嵌入式软件组成; 嵌入式硬件以芯片、模板、组件、控制器形式埋藏于设备部。理解“嵌入”的概念主要从三个方面上来理解。 1、从硬件上,将基于CPU的处围器件,整合到CPU芯片部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU部集成PCI控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL上网功能。IXP系列最高主频可以达到1.8G,支持2G存,1G×10或10G×1的以太网口或Febre channel的光通道。IXP系列应该是目标基于ARM体系统结构下由intel进行整合后成Xscale核的最高的处理器了。

电话销售话术全集锦,手把手教你学电销.

电话销售话术全集锦,手把手教你学电销 电话销售话术全集锦,手把手教你学电销 电话营销是消费者行为变化引发的营销趋势。说起电话营销,很多人想到的是各种不堪其扰的推销电话,所以很多汽车厂商和4S店都不敢轻易采用这种方式,害怕适得其反。 其实电销,只要运用得当,一定可以用1台电脑+1部电话维系客户黏度,提高成交率。本期我们就从以下环节,来叙述汽车电销的正确解码方式! 1、初次接听/拨打电话 话术标准1:电话铃响三声内有人接听 话术范例:专人接听,准备话术、资料,做好记录。 话术标准2:电话接待/拨打四段 话术范例:1、获取姓名:早上好!(分时问候)XX4S店。我是销售顾问XXX,您可以叫我小X就可以了。(两次报名)请问有什么可以帮到您?请问女士/先生您贵姓? 话术范例:2、做简单的需求分析:X女士/先生您好,您是想询问车辆的价格是吧 话术范例:3、使用邀约理由:为了方便您更好的了解这款车,我可以为您预约试乘试驾并且我们这周刚好有促销活动。 话术范例:4、确定时间:您看是周六上午还是下午来方便?(选择法)您可以随时找我,我叫XXX,(再次报名)是展厅里最高的,戴眼镜(加强记忆)。如果有任何问题,请随时和我联系。请问您还有什么其他问题吗?谢谢您的来电,X先生/女士,再见!

2、日常跟进 客户关怀 话术范例:某某先生女士,您家里装修的怎么样了?这段时间忙坏了吧!装修最让人头疼的,事情特别多,是不是每一个细节都要盯着,我家当时装修的时候我可是深有体会啊!今天打电话就是问候一下你,顺便想了解一下您现在对咱们的车考虑的怎么样了? 小道消息 话术范例:某某先生/女士,不知道您听没听说下个月各个车型都要调价了,尤其是咱们xx轿车,下个月都有大幅度的价格调整,我今天跟我们领导闲聊的时候他告诉我的,我感觉和你一直处的都不错,所以第一时间把这个消息告诉你,你看看这两天哪天有时间过来咱们再谈谈。 意外惊喜 话术范例:某某先生/女士,告诉您一个好消息,我们店现在开展厂方购车特价优惠活动,我感觉这个活动对您购车特别有帮助,而且这个活动只搞一个月,下个月就取消了,我第一时间给您打电话通知您这个好消息,您看看哪天方便来店里看看? 3、活动邀约(邀约五步骤) 1、确认顾客姓名 话术范例:XXX先生/女士,您好! 2、自我介绍

[用微课学51单片机][白炽贵][电子教案和教学指南] 《用微课学51单片机》教学指南0513

《用微课学51单片机》教学指南 教学模式 本书与电子工业出版社出版的《用微课学电子CAD》教材对接,即以学生电子CAD 课程所完成制作的51单片机电路板为编程验证平台,进行51单片机编程实操实训。因此,需在本课程开课前,先进行本书所需的51单片机实验板CAD设计及安装焊接。这既提高了电子CAD课程的教学目标和教学档次,又为单片机课程创建了学生得心应手功能强劲的编程开发平台,从而满足学生单片机技术高档次的研发平台之需,能让职业院校学生在电子CAD和单片机技术两课程对接上实现“1+1>2”的效果。 教学目标 借助学生亲手完成的单片机实验板平台,在单片机程序实训案例的数量上和质量上有所突破和创新,引用蓝牙技术和WIFI技术,让学生充分享受单片机程序设计的乐趣和成功,为学生胜任单片机技术职业岗位打下必须的技能基础。 教学内容 1.数码管显示编程实操; 2.单片机中断编程实操; 3.单总线双总线三总线器件编程实操; 4.LED16乘16点阵汉字显示编程实操; 5.串行通信编程实操; 6.存储器编程实操; 7.使用蓝牙模块和WIFI模块编程实操; 8.ADC0804和DAC0832编程实操; 9.LCD液晶屏编程实操; 10.红外解码超声测距步进电机编程实操; 11.程序综合编程实操。 12. 教学重点 每个单片机程序设计项目的实操步骤和代码输入过程是教学的重点 。 教学难点 理解单片机程序的执行逻辑分析是教学难点。 教学时数 全书实操视频约540分钟,学生实操以4倍计算,计2160分钟,以40分钟为1课时,约54课时,加14课时机动,合计68课时。 教学建议 1.本书以任务驱动展开教学和实操,为方便教师的教和学生的学,全书的每个任务实操都配有一个不差一秒的实操全程录屏视频,可手把手指导学生正确完成编程任务。学生实操时应两人一组进行合作学习,即学生甲用一台电脑进行单片机程序设计,学生乙用另一台电脑放实操视频,学生甲要参照学生乙所放视频进行代码输入,学生乙要对照检查学生甲屏幕上的代码输入是否正确,两学生的角色定时轮换。两学生这样合作实操,就能保证编程实操的正确性。 1

相关主题
文本预览
相关文档 最新文档