
前言
第1章绪论
11单片机的发展
1280C51单片机分类
13单片机应用领域和发展趋势
131单片机的应用领域
132单片机的发展趋势
第2章80C51单片机硬件结构和原理
2180C51的基本结构
21180C51的基本结构框图
212芯片的内部结构特点
2280C51的引脚及其功能
221电源引脚V和Vss
222时钟电路引脚XTALl和XTAL2
223控制信号引脚ALE、PSEN、EA和RST
224输入/输出引脚
2380C51CPU结构和时序
231运算器
232控制器
23380C51时钟系统
234CPU时序
24存储器结构和地址空间分配
241程序存储器地址空间分配
242数据存储器地址空间分配
2580C51工作方式
251复位方式
252程序执行方式
253节电工作方式
254掉电保护方式
第3章80C51指令系统
31指令与汇编语言
311指令与程序设计语言
312指令格式及系统中使用的符号意义
32寻址方式
321寻址方式
322寻址空间
33指令系统
331数据传送指令
332算术运算指令
333逻辑运算指令
334程序控制转移指令
335位 *** 作(Bool类型)指令
第4章80C51单片机的功能资源
41并行I/O接口
411P0口
412P1口
413P2口
414P3口
42定时器/计数器
421概述
422定时器T0和T1的结构和功能
423定时器的工作方式及应用
424定时器/计数器T2
425定时器,计数器的编程和使用
43串行接口
431串行口结构和工作模式
432串行口的编程和举例
44中断系统
441中断基本概念
442中断响应及处理过程
443中断程序举例
第5章单片机C51程序设计基础
51程序设计语言概述
511汇编语言
512C51语言
52C51标识符和关键字
521标识符
522关键字
53C51基本数据类型和运算符
531基本数据类型
532运算符
54数组
541一维数组
542多维数组
543字符数组
55指针
551指针与地址
552指针变量的定义
553指针变量引用
554数组的指针
555函数的指针
556指针数组
56结构体和联合体
561结构体概念和定义
562结构体的引用
563联合体概念和定义
564联合体的引用
565枚举
57型定义和预处理
571类型定义
572预处理
58语句和程序设计基本结构
581语句
582顺序结构
583选择结构
584循环结构
59函数
591函数定义
592函数调用
593中断服务函数
594局部变量与全局变量
595变量的存储种类
第6章典型外围接口设计
61键盘与单片机接口设计
611独立式键盘
612行列式键盘
62显示器接口
621LED显示器
622LED显示器接口实例
623LCD显示器
624LCD显示器接口实例
63显示接口芯片MAX8279
6318279内部结构及基本工作原理
6328279引脚功能
6338279工作方式
6348279命令字
6358279状态字
6368279应用举例
64D/A/AD芯片与单片机接口设计
641D/A转换接口电路
642A/D转换接口电路
第7章80C51单片机系统扩展
7180C51系统扩展概述
71180C:51最小应用系统
712片外总线结构
713片选
714地址锁存
715扩展存储器时应考虑的几个问题
72外部存储器扩展
721程序存储器的扩展
722数据存储器的扩展
723多片存储器的扩展
73并行I/O接口的扩展
731简单并行I/O接口扩展
7328255A可编程并行I/0接口扩展
74串行接口的扩展
7418251串行口扩展芯片
742825l应用实例
第8章80C51单片机应用系统的抗干扰技术
81可靠性与抗干扰技术概述
811干扰窜入单片机系统的主要途径
812干扰形成的基本要素
813干扰的耦合方式
82硬件抗干扰技术
821抑制干扰源
822切断干扰传播路径
823提高敏感器件的抗干扰性能
824其他常用抗干扰措施
83软件抗干扰技术
831指令冗余
832软件“陷阱”
833软件“看门狗”技术
834设置程序运行标志,拦截“跑飞”程序
第9章ProteIDXP电路板设计软件
第10章KeilC51单片机开发软件入门
第11章基于80C51的计量泵流量控制系统设计
第12章80C51单片机在电液位置伺服系统上的应用
附录AMCS-51指令表
附录B
还需要知道函数的调用规则,比如:
int fun1(int a,int b) { return a+b; }
int fun2(int a,int b) { return a-b; }
typedef int (pfun)(int,int);
#define MYFUNCTION1 0x80002000 //假设函数fun1的地址位于0x80002000
#define MYFUNCTION2 0x80003000 //假设函数fun2的地址位于0x80003000
void main()
{ int a=2,b=1,c;
fun=(pfun)MYFUNCTION1; c=(fun)(a,b);
fun=(pfun)MYFUNCTION2; c=(fun)(a,b);
}
哎
你去下载MasmPluseexe(在aogo小站)然后在下载他们站点提供的MasmPluse的教程
同时下载OLLYDBG(在看雪论坛下载)调试
并且看一本叫《WINDOWS下32位汇编语言程序设计》罗云彬写的
前提是你要学会这们语言
至于hello word, 这个玩意很简单
386 ;这是指明CPU使用的指令集
model flat,stdcall ;这是指明使用平坦的段(4GB) stdcall是调用约定,这个可以网上查到
option casemap:none ;这里指明是否区分大小写,因为API接口对大小写区分的很严格所以必须指定
include windowsinc ;包含参数声明文件,这是个包含了windowsAPI接口一些参数值的文件
include user32inc ;user32dll库内函数的参数声明
include kernel32inc ;kernel32dll库内的函数的参数声明
includelib user32lib ;这是指明user32dll库内函数准确地址的一个声明
includelib kernel32lib ;这个就不解释了
data ;已初始化可以读写段
szCaption db 'A MessageBox !',0
szText db 'Hello, World !',0
code ;已初始化可读不可写段
start:
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK ;MessageBox(user32库内的一个API函数)他d出一个message框显示一些提示
invoke ExitProcess,NULL ;这个不用解释了,结束进程
end start ;代码结束的标志
MasmPluse是汇编泰斗们编写的,界面干净简洁,代码支持高亮并且他们的站点还提供MasmPluse的教程和代码列子
OllyDbg是r3级别的一个调试工具,使用方式看雪有详细教程
Api接口是应用程序编程接口,说通俗点就是系统提供的功能函数
调用约定是指明调用参数的传递方式和入栈方式
ac //源文件
int max(int x,int y)
{
int temp;
if(x>y)
{
temp=x;
}
else
{
temp=y;
}
}
ah
#ifndef A_H
#define A_H
int max(int x,int y);
#endif
mainc
#include"ah"
void main()
{
int max(7,8);
}
大概就是这样
大概就是这样
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)