没有办法看书,只好在网上找资料,首先看到这个:单片机的c语言教程…由磁动力工作室明浩编写.51测试网友情转载 http://www.51c51.com/test/c02.htm,然后是这个 实验及实践课题 闪烁灯http://www.51c51.com/51test/cc401.htm。
笔记转贴:
一、单片机C51基本资料:1.电源引脚
Vcc 40 电源端 GND 20 接地端
*工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。
4.输入输出引脚
(1) P0端口[P0.0-P0.7] P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL。
对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。
在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。
(2) P1端口[P1.0-P1.7] P1是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收低8位地址信息。
(3) P2端口[P2.0-P2.7] P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收高8位地址和控制信息。
在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。
(4) P3端口[P3.0-P3.7] P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接控制信息。除此之外P3端口还用于一些专门功能,具体请看 表2-2.。
*P1-3端口在做输入使用时,因内部有上接电阻,被外部拉低的引脚会输出一定的电流。
P3引脚 兼用功能
P3.0 串行通讯输入(RXD)
P3.1 串行通讯输出(TXD)
P3.2 外部中断0( INT0)
P3.3 外部中断1(INT1)
P3.4 定时器0输入(T0)
P3.5 定时器1输入(T1)
P3.6 外部数据存储器写选通WR
P3.7 外部数据存储器写选通RD
二、电路图:http://www.51c51.com/51test/cc401.18.jpg 这个电路图估计是最简单的应用了,EA为高电平时,用户在0000H至0FFFH范围内使用内部ROM;VCC脚直接接电源;RST脚拉低;X1和X2 XTAL1 XTAL2使用内部振荡器模式 XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端;GND脚直接接地。P1脚接发光二极管负极,二极管正极接VCC,这样P1脚拉高二极管不发光,拉低二极管发光。当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。
三、ASM汇编源码:START: CLR P1.0 P1.0
LCALL DELAY
SETB P1.0
LCALL DELAY
LJMP START
DELAY: MOV R5,#20 ;延时子程序,延时0.2秒
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END 这个就是数数了,石英晶体为12MHz,因此,1个机器周期为1微秒,一个指令周期2微秒,20×248×2=9920 + 20×(2+2)=80 基本就是10MS了。
四、C51源码#include <AT89X51.H>
sbit L1=P1^0;
void delay02s(void) //延时0.2秒子程序
&leftsign;
unsigned char i,j,k;
for(i=20;i>0;i–)
for(j=20;j>0;j–)
for(k=248;k>0;k–);
&rightsign;
void main(void)
&leftsign;
while(1)
&leftsign;
L1=0;
delay02s();
L1=1;
delay02s();
&rightsign;
&rightsign;
历史博文
- 20080806 YippeeSoft@pick xpi - 2009
- 20071016 gui ide 可视化 - 2008
- 20070203 perl ping - 2007
- 0306 VC debug trace afxDump AfxDump 调试 - 2006
- 乱七八糟猜想18门户网站19DUDU加速器病毒 - 2005
- TortoiseCVS中文帮助-取回旧版本 - 2005
- 从ASP.NET看BIN DLL所放置的目录 - 2005
- vs.net c# 一个调用外部程序的例子 - 2005
- vs.net环境下开发C# asp.net时,试图运行项目时出错 - 2005