当前位置:文档之家› 单片机入门小程序

单片机入门小程序

单片机入门小程序
单片机入门小程序

51单片机的学习是一个动手实践的过程,很多同学在学习单片机的初期总是觉得很难,无法入门。本人根据自己的学习经历,结合自己刚学习单片机的体验,写下几个小的程序供大家参考,如能掌握如下几个小程序的思想与精髓,那么就已经探踏入了单片机的大门。学习单片机的核心就是动手实践,当我们通过自己的努力把第一个LED点亮时,我们就会信心加倍,之后的学习就会变得轻松!希望对大家有所帮助。

一个LED闪烁

#include

sbit led=P0^3;

unsigned int a;

void main()

{ P0=0x00;

while(1)

{a=100000;

led=1;

while(a--);

a=10000;

led=0;

while(a--); }

}

两个led闪烁

#include

#define uchar unsigned char

#define uint unsigned int

void delay();

void main()

{

while(1)

{ P0=0xaa;

delay();

P0=0x00;

delay();

}

}

void delay()

{

uchar x,y;

for(x=110;x>0;x--)

for(y=120;y>0;y--);

}

流水灯

#include

#include

void delay();

void main()

{ unsigned char temp;

P0=0xef;

temp=P0;

delay();

while(1)

{

temp=_crol_(temp,1);

delay();

}

}

void delay()

{ unsigned char x,y;

for(x=40;x>0;x--)

for(y=200;y>0;y--);

}

键控移位信号灯

#include

#include

#define uchar unsigned char

#define uint unsigd neint

sbit k1=P1^0;

sbit k2=P1^1;

void delay(uchar z);

void main()

{

P0=0X18;

while(1)

{

if(k1)

P0=_crol_(P0,1);

if(k2)

P0=_cror_(P0,1);

}

}

void delay(uchar z)

{

uchar x,y;

for(x=z;x>0;x--)

for(y=120;y>0;y--)

;}

中断的简单应用

1. 利用定时器中断实现LED闪烁#include

#define uchar unsigned char

#define uint unsigned int

sbit led1=P1^0;

uchar num;

void main()

{

P1=0x00;

TMOD=0x01;

TH0=(65536-45872)/265;

TL0=(65536-45872)%256;

EA=1;

ET0=1;

TR0=1;

while(1);

}

void T0_time()interrupt 1

{

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

num++;

if(num==20)

{

num=0;

led1=~led1;

}

}

2. 数码管记录LED闪的次数

#include

#define uchar unsigned char

#define uint unsigned int

sbit led=P1^2;

void display(uchar,uchar);

uchar num=0,num1=0,num2=0,shi=0,ge=0;

uchar code array[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07}; void main()

{

TMOD=0x11;

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

TH1=(65536-45872)/256;

TL1=(65536-45872)%256;

EA=1;

ET0=1;

ET1=1;

TR0=1;

TR1=1;

while(1);

{

display(shi,ge);

}

}

void display(uchar shi,uchar ge)

{

P2=0x03;

// P1^0=array[shi];

// P1^1=array[ge];

}

/*void delay(z)

{

uchar x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}*/

void Time0() interrupt 1

{

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

num++;

if(num==4)

{

num=0;

led=~led;

}

}

void Time1() interrupt 2

{

TH1=(65536-45872)/256;

TL1=(65536-45872)%256;

num1++;

if(num1==20)

{

num1=0;

num2++;

if(num2==60)

num2=0;

shi=(num2)/10;

ge=(num2)%10;

}

}

数码管的动态显示

#include

#define uchar unsigned char

#define uint unsigned int

uchar code duan[9]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07}; void delay();

void main()

{

while(1)

{

P2=0x7f;

P0=0x3f;

delay();

P2=0xbf;

P0=0x06;

delay();

P2=0xdf;

P0=0x5b;

delay();

P2=0xef;

P0=0x4f;

delay();

P2=0xf7;

P0=0x66;

delay();

P2=0xfb;

P0=0x6d;

delay();

P2=0xfd;

P0=0x7d;

delay();

P2=0xfe;

P0=0x07;

delay();

}

}

void delay()

{

uint x,y;

for(x=10;x>0;x--)

for(y=10;y>0;y--);

}

数码管的静态显示

#include

#define uchar unsigned char

#define uint unsigned int

uchar code arry[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(uint z);

void main()

{

P2=0x00;

while(1)

{

uchar i;

for(i=0;i<10;i++)

{

P0=arry[i];

delay(500);

}

}

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

数码管显示8

#include

void main()

{

P2=0x7f; //位选端低电平有效

P0=0x7f; //段选高电平有效(共阴)

while(1);

}

AD转换

#include

#include

#define uchar unsigned char

sbit wr=P3^6;

sbit rd=P3^7;

sbit dula=P2^6;

sbit wela=P2^7;

uchar code shuma[]=

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(uchar z)

{

uchar x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void display(uchar bai,uchar shi,uchar ge)

{

dula=1;

P0=shuma[bai];

dula=0;

P0=0xff;

wela=1;

P0=0x7e;

wela=0;

delay(10);

dula=1;

P0=shuma[shi];

dula=0;

P0=0xff;

wela=1;

P0=0x7d;

wela=0;

delay(10);

dula=1;

P0=shuma[ge];

dula=0;

P0=0xff;

wela=1;

P0=0x7b;

wela=0;

delay(10);

}

void main()

{

uchar A,B,C,i,adresult;

float

wela=1;

P0=0x7f;//开ADCS

wela=0;

while(1)

{

wr=1;

_nop_();

wr=0;

_nop_();

wr=1;

_nop_();

for(i=0;i<10;i++)

{display(A,B,C);}

P1=0Xff;

rd=1;

_nop_();

rd=0;

_nop_();

rd=1;

adresult=P1;

// =(adresult*5)/256;

A=adresult/256;

B=adresult%256/16;

C=adresult%256%16;

}

LCD1602显示

#include

#define uchar unsigned char

sbit lcden=P3^4; //使能端

sbit lcdrs=P3^5;//写数据,写命令控制端//sbit lcdrw=P3^6;

#define lcd P0

void delay(uchar z) //延时函数

{

uchar x,y;

for(x=z;x>0;x--)

for(y=120;y>0;y--);

}

void write_data(uchar Data)//写数据

{

lcden=0;

lcdrs=1;

lcden=1;

delay(10);

lcd=Data;

lcden=0;

delay(10);

}

void write_commend(uchar com) //写命令{

lcden=0;

lcdrs=0;

lcden=1;

delay(10);

lcd=com;

lcden=0;

delay(10);

}

void initial() //初始化函数、

{

write_commend(0x01);//清屏

write_commend(0x38);

write_commend(0x0c);

write_commend(0x06);

}

void main()

{

uchar i,j;

uchar fei[]="wudian";

uchar benfei[]="jia you!" ;

// lcdrw=0;

initial();

// while(1);

write_commend(0x80);

// write_data('f');

// write_data('e');

// write_data('i');

// write_data('f');

// write_data('e');

// write_data('i');

// write_data('f');

// write_data('l');

for(j=0;j<6;j++)

write_data(fei[j]);

write_commend(0xc2);

for(i=0;i<11;i++)

write_data(benfei[i]);

}

1602显示AD转换结果

#include

#define uchar unsigned char

sbit lcden=P3^4; //使能端

sbit lcdrs=P3^5;//写数据,写命令控制端//sbit lcdrw=P3^6;

#define lcd P0

void delay(uchar z) //延时函数

{

uchar x,y;

for(x=z;x>0;x--)

for(y=120;y>0;y--);

}

void write_data(uchar Data)//写数据

{

lcden=0;

lcdrs=1;

lcden=1;

delay(10);

lcd=Data;

lcden=0;

delay(10);

}

void write_commend(uchar com) //写命令{

lcden=0;

lcdrs=0;

lcden=1;

delay(10);

lcd=com;

lcden=0;

delay(10);

}

void initial() //初始化函数、{

write_commend(0x01);//清屏

write_commend(0x38);

write_commend(0x0c);

write_commend(0x06);

}

void main()

{

uchar i,j;

uchar fei[]="wudian";

uchar benfei[]="jia you!" ;

// lcdrw=0;

initial();

// while(1);

write_commend(0x80);

// write_data('f');

// write_data('e');

// write_data('i');

// write_data('f');

// write_data('e');

// write_data('i');

// write_data('f');

// write_data('l');

for(j=0;j<6;j++)

write_data(fei[j]);

write_commend(0xc2);

for(i=0;i<11;i++)

write_data(benfei[i]);

}

直流电机

#include

#define uchar unsigned char

sbit wr=P3^6;

sbit csda=P3^2;

sbit s1=P3^4;//加速

//sbit s2=P3^5;//减速

sbit wela=P2^7;

sbit dula=P2^6;

uchar num2,num1,n,A2,A3; uchar k=5;

uchar code shumaguan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07}; uchar code shudu[5]={0x00,0x0f,0x8f,0xf0,0xff};

void delay(uchar z)

{

uchar x,y;

for(x=z;x>0;x--)

for(y=120;y>0;y--);

}

void display(uchar shi,uchar ge);

void initial();

void main()

{

uchar num=0;

initial();

csda=0;

wr=0;

P0=0x00;

while(1)

{

wr=0;

if(s1==0)

{

delay(10);

if(s1==0)

num++;

P0=shudu[num];

if(s1==0);

delay(10);

if(num==4)

{

num=0;

P0=0x00;

}

}

}

}

void initial()

{

TMOD=0X01;

TH0=0x3c;//50ms

TL0=0xb0;

EA=1;

ET0=1;

TR0=1;

IT0=1;

EX0=1;

}

void T0_time() interrupt 1

{

num2++;

}

void INT0_count() interrupt 0 {

num1++;

if(num2==20)

{

n=num1/k;

A2=n/10;

A3=n%10;

display(A2,A3);

EA=0;

}

}

void display(uchar shi,uchar ge) {

dula=1;

P0=0x73;

dula=0;

P0=0xff;

wela=1;

P0=0x77;

wela=0;

delay(10);

dula=1;

P0=shumaguan[shi];

dula=0;

P0=0xff;

wela=1;

P0=0x7d;

wela=0;

delay(10);

dula=1;

P0=shumaguan[ge];

dula=0;

P0=0xff;

wela=1;

P0=0x7e;

wela=0;

delay(10);

}

快速入门单片机汇编语言

快速入门单片机汇编语言 简要: 单片机有通用型和专用型之分。专用型是厂家为固定程序的执行专门开发研制的一种单片机,其程序不可更改。通用型单片机是常用的一种供学习或自主编制程序的单片机,其程序需要自己写入,可更改。单片机根据其基本操作处理位数不同可以分为:1位、4位、8位、16、32位单片机。 正文: 在此我们主要讲解美国ATMEL公司的89C51单片机。 一、89C51单片机PDIP(双列直插式)封装引脚图: 其引脚功能如下: P0口(p0.0—p0.7):为双向三态口,可以作为输入/输出口。但在实际应用中通常作为地址/数据总线口,即为低8位地址/数据总线分时复用。低8位地址在ALE信号的负跳变锁存到外部地址锁存器中,而高8位地址由P2口输出。 P1口(p1.0—p1.7):其每一位都能作为可编程的输入或输出线。 P2口(p2.0—p2.7):每一位也都可作为输入或输出线用,当扩展系统外设时,可作为扩展系统的地址总线高8位,与P0口一起组成16位地址总线。对89c51单片机来说,P2口一般只作为地址总线使用,而不作为I/O线直接与外设相连。 P3口(p3.0—p3.7):其为双功能口,作为第一功能使用时,其功能与P1口相同。当

作为第二功能使用时,每一位功能如下表所示。 P3口第二功能 Rst\Vpd:上电复位端和掉电保护端。 XTAL1(xtal2):外接晶振一脚,分别接晶振的一端。 Gnd:电源地。 Vcc:电源正级,接+5V。

PROG\ALE:地址锁存控制端 PSEN:片外程序存储器读选通信号输出端,低电平有效。 EA\vpp:访问外部程序储存器控制信号,低电平有效。当EA为高电平时访问片内存储器,若超出范围则自动访问外部程序存储器。当EA为低电平时只访问外部程序存储器。 二、常用指令及其格式介绍: 1、指令格式: [标号:]操作码 [ 目的操作数][,操作源][;注释] 例如:LOOP:ADD A,#0FFH ;(A)←(A)+FFH 2、常用符号: Ri和Rn:R表示工作寄存器,i表示1和0,n表示0~7。 rel:相对地址、地址偏移量,主要用于无条件相对短转移指令和条件转移指令。 #data:包含于指令中的8位立即数。 #data16:包含于指令中的16位立即数。 addr16:16位目的地址。 direct:直接寻址的地址。

《单片机(C51)技术》复习题

一.填空题(每空1分,共10分) 1.单片机的最小系统除了单片机外还应包括时钟电路. 及电源电路。2.MCS-51单片机具有一个位的CPU和位的程序计数器。 3.MCS-51单片机执行指令所用的时间以机器周期为单位,1个机器周期= 时钟周期。4.如果单片机的晶振频率为12MHZ,那么机器周期为,如果单片机的晶振频率为6MHZ,那么机器周期为。 5.用Keil C51软件编写C语言源文件时应保存为扩展名为的文件,用PROTEUS 软件进行仿真时应下载扩展名为的代码文件。 6.编译预处理命令是计算机将C语言编译为机器语言是进行的预处理,编译预处理命令以开头,末尾不加。 7.C51语言中有字符型、整型、浮点型指针型和位变量等几种基本变量类型,其中,字符型变量所占用的长度为Byte。整型变量所占用的长度为Byte。 8.若想用uchar代换程序中的unsigned char则所使用的语句为:; 9.在编程过程中,变量必须先后使用。#define N 5 语句中N为(常量.变量)。 10.在程序运行中,其值可以改变的量称为变量。一个变量主要由两部分构成:一个 是,一个是。 11.65%10= ;67/10= ;919%100= ;0x7f的十进制数为。12.逻辑表达式的结合性为。逻辑表达式的值应该是一个逻辑值“真”或“假”,以代表假,以代表真。 13.函数是具有一定功能的程序段,C语言程序有主函数. 和用户自定义函数。函数的定义不能嵌套。一段程序只能有且只有一个函数。 14.有两种方法可以终止子函数运行并返回到调用它的函数中:一是执行到函数的 返回;二是执行到语句返回,并可以带回返回值。15.在Keil C中,如果被调函数定义在调用函数之后,则在函数调用之前必须进行。 16.unsigned char a[10];定义了一个型数组a,数组长度为,可用的下标为。unsigned char m[3][6];定义了一个维数组m,数组元素的个数为。17.数组定义时方括号中的数值必须是,该数值反映了数组元素的多少。数组元素的引用采用加下标的方法。 18.P1=0XFE;P1=P1<<2;移位后P1= 。P1=0XF5;P1=P1>>2;移位后P1= 。 19.循环结构是程序设计中的一种基本结构,循环结构的语句有:. 和do-while语句。 20.在循环体中加入break语句可以改变循环的运行过程,遇到break;结束。21.语句for(i=0;i<=5;i++);控制的循环次数为。语句for(i=5;i<0;i--);控制的循环次数为。若i=5,语句while(i<6) i++;控制的循环次数为。 22.把P1^1口定义为K1: ; 定义一个位变量key1: ; 23.指针是C语言中一个重要的概念,指针型变量以标记。 24.按键消抖一般有两种方法:和软件消抖,软件消抖中,当单片机检测到有键按下时,可以先越过抖动过程再对按键识别。 25.MCS-51单片机有四个8位双向并行的I/O口,这四个端口既可以字节寻址又可 以,其中内部没有上拉电阻的端口是。 26.数码管按发光二极管连接方式分为共阴极和数码管。按段数可分为七段数码管和。 27.A T89C51单片机共有5个中断源。它们分别为2个外部中断:. ,3个

java经典小程序,java入门100例!

1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。 import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year<0||year>3000){ System.out.println("年份有误,程序退出!"); System.exit(0); } if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile"); else System.out.println(year+" is not bissextile "); } } 2,给定一个百分制的分数,输出相应的等级。 90分以上A级 80~89 B级 70~79 C级 60~69 D级 60分以下E级 import java.util.Scanner; class Mark{ public static void main(String[] args){ System.out.println("请输入一个分数"); //定义输入的分数为“mark”,且分数会有小数 double mark; Scanner scanner = new Scanner(System.in); mark = scanner.nextDouble(); //判断是否有输入错误。 if(mark<0||mark>100){

单片机课后习题解答

练习练习练习 第二章单片机结构及原理 1、MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:(1)一个8bit CPU是微处理器的核心,是运算和逻辑计算的中心。 (2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。 (3)4K ROM程序存贮器:存贮程序及常用表格。 (4)128B RAM 数据存贮器:存贮一些中间变量和常数等。 (5)两个16bit定时器/计数器:完全硬件定时器 (6)32根可编程I/O口线:标准8位双向(4个)I/O接口,每一条I/O线都能独立地作输入或输出。 (7)一个可编程全双工串行口。 (8)五个中断源。 2、什么是指令?什么是程序? 答:指令是规定计算机执行某种操作的命令。 程序是根据任务要求有序编排指令的集合。 3、如何认识89S51/52存储器空间在物理结构上可以划分为4个空间,而在逻辑上又可以划分为3个空间? 答:89S51/52存储器空间在物理结构上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。 4、开机复位后,CPU使用的是哪组工作寄存器?他们的地址是多少?CPU如何确定和改变当前工作寄存器组? 答:开机复位后,CPU使用的是第0组工作寄存器,地址为00H~07H,CPU通过改变状态字寄存器PSW中的RS0和RS1来确定工作寄存器组。 5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP重新赋值?如果CPU在操作中要使用两组工作寄存器,SP应该多大? 答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。堆栈为位寻址区,这些单元有其他2FH~20H为工作寄存器区,1FH~00H单元,07H复位后指向SP 指针. 功能,因此在程序设计时,需要对SP重新赋值。如果CPU在操作中要使用两组工作寄存器,SP 应该至少设置为0FH。 6、89S51/52的时钟周期、机器周期、指令周期是如何分配的?当振荡频率为8MHz时,一个单片机周期为多少微秒? 答:时钟周期为时钟脉冲频率的倒数,他是单片机中最基本的、最小的时间单位。机器周期是指完成一个基本操作所需要的时间,一个机器周期由12个时钟周期组成。指令周期是执行一条指令所需要的时间,由若干个机器周期组成。 若fosc=8MHz,则一个机器周期=1/8×12μs=μs 7、89S51/52扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突? 答:访问片外程序存储器和访问数据存储器使用不同的指令用来区分同一地址空间。 8、程序状态字寄存器PSW的作用是什么?常用状态标志有哪些位?作用是什么? 答:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指

快速入门单片机汇编语言

快速入门单片机汇编语 言 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

快速入门单片机汇编语言 简要: 单片机有通用型和专用型之分。专用型是厂家为固定程序的执行专门开发研制的一种单片机,其程序不可更改。通用型单片机是常用的一种供学习或自主编制程序的单片机,其程序需要自己写入,可更改。单片机根据其基本操作处理位数不同可以分为:1位、4位、8位、16、32位单片机。 正文: 在此我们主要讲解美国ATMEL公司的89C51单片机。 一、89C51单片机PDIP(双列直插式)封装引脚图: 其引脚功能如下: P0口(—):为双向三态口,可以作为输入/输出口。但在实际应用中通常作为地址/数据总线口,即为低8位地址/数据总线分时复用。低8位地址在ALE信号的负跳变锁存到外部地址锁存器中,而高8位地址由P2口输出。 P1口(—):其每一位都能作为可编程的输入或输出线。 P2口(—):每一位也都可作为输入或输出线用,当扩展系统外设时,可作为扩展系统的地址总线高8位,与P0口一起组成16位地址总线。对89c51单片机来说,P2口一般只作为地址总线使用,而不作为I/O线直接与外设相连。 P3口(—):其为双功能口,作为第一功能使用时,其功能与P1口相同。当作为第二功能使用时,每一位功能如下表所示。 P3口第二功能

Rst\Vpd:上电复位端和掉电保护端。 XTAL1(xtal2):外接晶振一脚,分别接晶振的一端。 Gnd:电源地。 Vcc:电源正级,接+5V。 PROG\ALE:地址锁存控制端 PSEN:片外程序存储器读选通信号输出端,低电平有效。 EA\vpp:访问外部程序储存器控制信号,低电平有效。当EA为高电平时访问片内存储器,若超出范围则自动访问外部程序存储器。当EA为低电平时只访问外部程序存储器。 二、常用指令及其格式介绍: 1、指令格式: [标号:]操作码 [ 目的操作数][,操作源][;注释] 例如:LOOP:ADD A,#0FFH ;(A)←(A)+FFH 2、常用符号: Ri和Rn:R表示工作寄存器,i表示1和0,n表示0~7。 rel:相对地址、地址偏移量,主要用于无条件相对短转移指令和条件转移指令。 #data:包含于指令中的8位立即数。 #data16:包含于指令中的16位立即数。

51单片机C语言入门教程详细解说

单片机c语言入门 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没 什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大 家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想 学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什 么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机, 但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片 机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候, 我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出, 或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看 我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。具 体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上 书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似, 编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特 点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲 的全是C方面的,完全在浪费你的时间! 呵呵^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件 仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使

单片机复习题(含部分答案)

《单片机原理及应用》课程复习题 适用于电子信息工程11级 一、填空题 1、A T89S51单片机为8 位单片机,共有40 个引脚。 2、A T89S51的机器周期等于12 个时钟振荡周期。 3、A T89S51访问片外存储器时,利用ALE 信号锁存来自P0口发出的低8位地址信号。 4、A T89S51的P3口为双功能口。 5、A T89S51内部提供 2 个可编程的16 位定时/计数器,定时器有4 种工作方式。 6、A T89S51有 2 级中断, 5 个中断源。 7、A T89S51的P2 口为高8位地址总线口。 8、设计一个以AT89C51单片机为核心的系统,如果不外扩程序存储器,使其内部4KB闪烁程序存储器有效,则其EA* 引脚应该接+5V 9、单片机系统中使用的键盘分为独立式键盘和行列式键盘,其中行列式键盘的按键识别方法有扫描法和线反转法。 10、A T89S51内部数据存储器的地址范围是00H~7FH ,位地址空间的字节地址范围是20H~2FH ,对应的位地址范围是00H~7FH ,外部数据存储器的最大可扩展容量是64K 。 11、如果(A)=34H,(R7)=0ABH,执行XCH A, R7;结果(A)= 0ABH ,(R7)= 34H 。 12、在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行256 次。 13、欲使P1口的低4位输出0,高4位不变,应执行一条ANL P1, #0F0H 命令。 14、若CPU使用的是寄存器第1组,R0~R7的地址范围是08H-0FH。 15、单片机进行串行通信时,晶振频率最好选择11.0592MHz 16、当执行MOVX A,@R1指令时,伴随着RD* 控制信号有效。 17、若A中的内容为67H,那么,P标志位为 1 。 18、A T89S51唯一的一条16位数据传送指令为MOV DPTR,data16 。 19、LJMP的跳转范围是64K,AJMP的跳转范围是2K B,SJMP的跳转范围是±128 B(或256B)。 20、74LS138是具有3路输入的译码器芯片,其输出作为片选信号时,最多可以选中8 片芯片。 21、如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后: POP DPH POP DPL POP SP 则:(DPH)= ___3CH___;(DPL)=___5FH___;(SP)=___50H___; 22、A T89S51复位后,PC与SP的值为分别为0000H 和07H 。 23、当单片机复位时PSW=00H,这时当前的工作寄存器区是0区,R4所对应的存储单元地址为04H。 24、当AT89S51执行MOVC A,@A+ DPTR指令时,伴随着PSEN*控制信号有效。 25、D/A(数/模)转换器的作用是把(数字量)转换成(模拟量),而A/D(模/数)转换器

单片机C语言快速入门学

单片机c语言入门学 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没 什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大 家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想 学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什 么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机, 但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片 机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候, 我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出, 或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看 我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。具 体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上 书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似, 编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特 点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲 的全是C方面的,完全在浪费你的时间! 呵呵 ^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件 仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使 你每天捧着本书,把那本书翻烂,也永远学不会单片机的!刚接触单片机的朋友,看了资料,

51单片机基础知识试题题库(含答案)

第二章习题参考答案 一、填空题: 1、当MCS-51引脚ALE有效时,表示从P0口稳定地送出了低8位地址。 2、MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。 3、当使用8751且EA=1,程序存储器地址小于1000H 时,访问的是片内ROM。 4、MCS-51系统中,当PSEN信号有效时,表示CPU要从外部程序存储器读取信息。 5、MCS-51有4组工作寄存器,它们的地址范围是 00H~1FH 。 6、MCS-51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以位寻址。 7、PSW中RS1 RS0=10时,R2的地址为 12H 。 8、PSW中RS1 RS0=11时,R2的地址为 1AH 。 9、单片机系统复位后,(PSW)=00H,因此片内RAM寄存区的当前寄存器是第 0 组,8个寄存器的单元地址为 00H ~ 07H 。 10、PC复位后为 0000H 。 11、一个机器周期= 12 个振荡周期= 6 个时钟周期。 12、PC的内容为将要执行的的指令地址。 13、在MCS-51单片机中,如果采用6MHz晶振,1个机器周期为 2us 。 14、内部RAM中,位地址为30H的位,该位所在字节的字节地址为 26H 。 15、若A中的内容为63H,那么,P标志位的值为 0 。 16、8051单片机复位后,R4所对应的存储单元的地址为 04H ,因上电时PSW= 00H 。这时当前的工作寄存器区是第 0 工作寄存器区。 17、使用8031芯片时,需将/EA引脚接低电平,因为其片内无程序存储器。 18、片内RAM低128个单元划分为哪3个主要部分:工作寄存器区、位寻址区 和用户RAM区。 19、通过堆栈操作实现子程序调用,首先就要把 PC 的内容入栈,以进行断点保护。调用返回时,再进行出栈保护,把保护的断点送回到 PC 。 20、MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS -51的PC是16位的,因此其寻址的范围为 64 KB。 21、MCS-51单片机片内RAM的寄存器共有 32 个单元,分为 4 组寄存器,每组 8 个单元,以R0~R7作为寄存器名称。 22、但单片机的型号为8031/8032时,其芯片引线EA一定要接低电平。 二、选择题: 1、当MCS-51复位时,下面说法正确的是( A )。 A、 PC=0000H B、 SP=00H C、 SBUF=00H D、 P0=00H 2、PSW=18H时,则当前工作寄存器是( D )。 A、 0组 B、 1组 C、 2组 D、 3组 3、MCS-51上电复位后,SP的内容应是( B )。 A、 00H B、 07H C、 60H D、 70H 4、当ALE信号有效时,表示( B )。 A、从ROM中读取数据 B、从P0口可靠地送出低8位地址 C、从P0口送出数据 D、从RAM中读取数据 5、MCS—51单片机的CPU主要的组成部分为( A )。 A、运算器、控制器 B、加法器、寄存器 C、运算器、加法器 D、运算器、译码器

单片机课后习题

单片机考试复习资料 第一章、绪论 1、什么叫单片机其主要特点有哪些 答: 在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。 单片机主要特点有:控制性能和可靠性高;体积小、价格低、易于产品化;具有良好的性能价格比。 2、单片机有哪些应用领域 答: 智能仪器仪表; 机电一体化产品; 实时工业控制; 分布系统的前端模块; 家用电器;

交通与航空航天。 3、仿真调试有哪两种形式硬件仿真的目的是什么?答: 软件模拟和硬件仿真。 仿真的目的就是可以进行调试、跟踪、监视。 4、简述单片机应用系统的开发过程。 答: 系统需求分析; 硬件方案设计; 软件编程; 仿真调试; 实际运行。

第二章、80c51的结构和原理 1、80c51单片机在功能上,程序存储器的配置上主要有哪些分类答: 功能上分为基本型和增强型; 工艺上分为HMOS工艺和CHMOS工艺; 在片内程序存储器的配置上有掩膜ROM、EPROM和Flash、无片内程序存储器形式。 2、80c51基本型的存储器地址空间如何划分各空间的地址范围和容量如何 答: 在物理上设计成程序存储器和数据存储器两个独立的空间; 片内程序存储器为4KB,地址范围是0000H-0FFFH,

片内数据存储器为128字节RAM,地址范围是00H-7FH, 3、80c51单片机晶振频率分别为12Mhz,时,机器周期分别为多少答: 晶振频率为f,一个时钟周期为1/f,机器周期为12*1/f。 1μs,μs。 4、80c51单片机复位后的状态如何常用的复位方法有哪些 答: 复位后,PC内容为0000H; P0口~P3口内容为FFH; SP内容为07H; SBUF内容不定; IP、IE和PCONww的有效位为0; 其余的特殊功能寄存器的状态均为00H。 复位方法一种是上电复位,另一种是上电与按键均有效的复位。

单片机课后习题答案

一)填空题 1. 十进制数14对应的二进制数表示为(1110B),十六进制数表 示为(0EH)。十进制数-100的补码为(9CH),+100的补码为(64H)。 2. 在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的(4)倍。 3. 8位无符号二进制数能表示的最大十进制数是(255)。带符号二进制数11001101转换成十进制数是(-51)。 4. 可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)。 5. 已知字符D的ASCII码是十六进制数44,则字符T的ASCII码是十进制数(84)。 6. 若某存储器容量为640KB,则表示该存储器共有(655360)个存储单元。 7. 在计算机中,二进制数的单位从小到大依次为(位)、(字节)和(字),对应的英文名称分别是(bit)、(Byte)和(Word)。 8. 设二进制数A=10101101,B=01110110,则逻辑运算A∨B=(11111111),A ∧B=(00100100),A⊕B=(11011011)。 9. 机器数01101110的真值是(+110),机器数01011001的真值是(+89),机器数10011101的真值是(+157或-115),机器数10001101的真值是(+206或-50)。(二)单项选择题 1. 用8位二进制补码数所能表示的十进制数范围是(D) (A)-127 ~ +127 (B)-128 ~ +128 (C)-127 ~ +128 (D)-128 ~ +127 2. 下列等式中,正确的是(B) (A)1 KB = 1024×1024 B (B)1 MB = 1024×1024 B (C)1 KB = 1024 M B (D)1 MB = 1024 B 3. 程序与软件的区别是(C) (A)程序小而软件大(B)程序便宜而软件昂贵 (C)软件包括程序(D)程序包括软件 4. 存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A) (A)地址(B)字节(C)列号(D)容量 5. 8位二进制数所能表示的最大无符号数是(B) (A)255 (B)256 (C)128 (D)127 6. 下列4个无符号数中,最小的数是(B) (A)11011001(二进制)(B)37(八进制) (C)75(十进制)(D)24(十六进制) 7. 下列字符中,ASCII码最小的是(B) (A)a (B)A (C)x (D)X 8. 下列字符中,ASCII码最大的是(C) (A)a (B)A (C)x (D)X 9. 有一个数152,它与十六进制数6A相等,那么该数是(B) (A)二进制数(B)八进制数(C)十进制数(D)十六进制数 第2章80C51单片机的硬件结构 (一)填空题

STM32单片机快速入门V1.0概要

STM32 单片机快速入门 王志杰 2010年 5月 15日 目录 1 集成开发环境 (IDE ...................................................................................................................3 1.1 IAR 集成开发环境 ...............................................................................................................3 1.2 KEIL集成开发环 境 (20) 1.3 TrueSTUDIO集成开发环 境 (41) 2 附 录 ...........................................................................................................................................

.....54 2.1 源代码 main.c (54) 1集成开发环境(IDE 1.1IAR 集成开发环境 1.1.1安装 IAR 可从 IAR 网站上下载软件。 https://www.doczj.com/doc/5d8479761.html, 下载安装,如下图所示:运行 IAR ,界面如下所示:

STM32

单片机快速入门 1.1.2创建一个工程 选择 File>New>Workspace STM32单片机快速入门新建一个 project ,选择

单片机原理与C51语言程序设计与基础教程 课后习题答案

单片机原理与C51语言程序设计与基础教 程课后习题答案 习题 填空题 1.一般而言,微型计算机包括、、、四个基本组成部分。 2.单片机是一块芯片上的微型计算机。以为核心的硬件电路称为单片机系统,它属于地应用范畴。 3.Atmel 公司生产的CMOS型51系列单片机,具有内核,用 代替ROM作为程序存储器, 4.单片机根据工作温度可分为、和三种。民用级的温度范围是0℃一70℃,工业级是-40℃~85℃,军用级是-55℃-125℃(不同厂家的划分标推可能不同。 5.在单片机领域内,ICE的含义是。 选择题 1.单片机的工作电压一般为V? A 5V B 3V C 1V D 4V 2.单片机作为微机的一种,它具有如下特点: A 具有优异的性能价格比 B 集成度高、体积小、可靠性高 C 控制功能强,开发应用方便 D 低电压、低功耗。 3.民用级单片机的温度范围是: A -40℃~85℃ B 0℃一70℃ C -55℃-125℃ D 0℃一50℃ 4.MCS-51系列单片机最多有个中端源。 A 3 B 4 C 5 D 6 5.下列简写名称中不是单片机或单片机系统的是 A MCU B SCM C ICE D CPU 问答题 1.单片机常用的应用领域有哪些? 2.我们如何学习单片机这么技术? 3.单片机从用途上可分成哪几类?分别由什么用处? 答案

填空题 1.运算器、控制器、存储器、输入输出接口 2.单片机嵌入式系统 3.MCS-51 Flash ROM 4.民用级(商业级) 工业级军用级 5.在线仿真器 选择题 1.A 2.ABCD 3.B 4.C 5.D 问答题 1.单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: (1)在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。 (2)在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 (3)在家用电器中的应用 可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。 (4)在计算机网络和通信领域中的应用 现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。 (5)单片机在医用设备领域中的应用 单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。 2.首先,大概了解单片机的机构,例如本书的第2章则是主要讲了单片机的内部结构以及资源。对单片机的内部结构有了初步了解之后,读者就可以进行简单的实例练习,从而加深对单片机的认识。 其次,要有大量的实例练习。其实,对于单片机,主要是软件设计,也就是编程。目前最流行的用于51系列单片机地编程软件是Keil。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。掌握这一软件的使用对于使用51系列单片机的爱好

单片机原理课后习题整理

第1章思考题及习题1参考答案 一、填空 1. 除了单片机这一名称之外,单片机还可称为或。答:微控制器,嵌入式 控制器. 3. AT89S52单片机工作频率上限为 MHz。答:33 MHz。 三、判断对错 1. STC系列单片机是8051内核的单片机。对 2. AT89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM、1个中断 源、1个定时器(且具有捕捉功能)。对 3. 单片机是一种CPU。错 4. AT89S52单片机是微处理器。错 5. AT89C52片内的Flash程序存储器可在线写入,而AT89S52则不能。错 6. 为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。对 7. 为AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片AT89S52替换。对 8. 单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP 的长处。对 四、简答 4. 解释什么是单片机的在系统编程(ISP)与在线应用编程(IAP)。 答:单片机的在系统编程ISP(In System Program),也称在线编程,只需一条与PC机USB口或串口相连的ISP下载线,就可把仿真调试通过的程序代码从PC机在线写入单片机的Flash存储器内,省去了编程器。在线应用编程(IAP)就是可将单片机的闪存内的应用程序在线修改升级。

第2章思考题及习题2参考答案 一、填空 1. 在AT89S52单片机中,如果采用6MHz晶振,一个机器周期为。答:2μs 2. AT89S52单片机的机器周期等于个时钟振荡周期。答:12 9. AT89S52单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为AT89S52单片机的PC是16位的,因此其寻址的范围为 KB。答:64 10. AT89S52单片机复位时,P0~P3口的各引脚为电平。答:高 11. AT89S52单片机使用片外振荡器作为时钟信号时,引脚XTAL1接,引脚XTAL2的接法是。答:片外振荡器的输出信号,悬空 二、判断对错 1. 使用AT89S52单片机且引脚EA=1时,仍可外扩64KB的程序存储器。错 2. 区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。错 3. AT89S52单片机共有32个特殊功能寄存器,它们的位都是可以用软件设置的,因此,都

STM8单片机入门快速教程

STM8单片机入门快速教程 一、前言 因个人在学习STM8时遇到许多困惑,所以编译一个 STM8快速入门教程,望能为初学者提供一些帮助。二、STM8使用的编译软件和下载软件 STM8有对应库函数,但我用的是IAR编译软件,是直 接操作寄存器,所以就不对库函数多少什么。IAR是最 近一两年才支持STM8编译的,所以软件嘚找好,注册 机嘚选对。下载软件我是用现成的“轩微科技STM8编 程下载器”淘宝要60多一个。因操作寄存器所以要具 备几个文档,具体我配带在文件里面了。编程用的头文 件是#include 或#include , 根据型号而定,有的型号不一样定义的地址会不一样 的。 三、IO的输出、输入 每个单片机我想最重要懂的应该是它怎么输出高低电平还怎么输入。STM8管脚分三级流水控制。分别有方向寄存器、控制寄存器、还有输出/输入寄存器。 方向寄存器:是控制IO口成输出还是输入状态 控制寄存器:有两个,是控制IO口以什么模式输出或输入 因为高级单片机有很多种输出模式,比如上拉 输入,推挽输出等....。

输出/输入寄存器:其分别有单独的输出寄存器和输入寄存器,输出寄存器给其高低电平就输出高低电平 (条件是配置为输出状态时)。输入寄存器无 论是在输出还是输入模式都可读取IO的高低 电平状态。 其具体设置可下面: DDR CR1 CR2 引脚设置 0 0 0 悬浮输入 0 0 1 上拉输入 0 1 0 中断悬浮输入 0 1 1 中断上拉输入 1 0 0 开漏输出 1 1 0 推挽输出 1 X 1 输出(最快速度为10MHZ)

51单片机及C语言入门教程

51单片机 及C语言入门教程 注:排成16开版式,是为了方便自已打印阅读。请不要用于非法用途。 2007.12.20

51单片机及C语言入门教程 第一课 建立您的第一个C项目 使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。 以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。(安装的方法和普通软件相当这里就不做介绍了) 安装好后,你是不是迫不及待的想建立自己的第一个C程序项目呢?下面就让我们一起来建立一个小程序项目吧。或许你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。 首先当然是运行KEIL51软件。怎么打开?噢,天!那你要从头学电脑了。呵呵,开个玩笑,这个问题我想读者们也不会提的了:P。运行几秒后,出现如图1-1的屏幕。 图1-1启动时的屏幕

接着按下面的步骤建立您的第一个项目: (1)点击Project菜单,选择弹出的下拉式菜单中的New Project,如图1-2。接着弹出一个标准Windows文件对话窗口,如图1-3,这个东东想必大家是见了N次的了,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。在"文件名"中输入您的第一个C程序项目名称,这里我们用"test",这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行。"保存"后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。 图1-2New Project菜单 图1-3文件窗口 (2)选择所要的单片机,这里我们选择常用的Ateml公司的AT89C51。此时屏幕如图1-4

小程序入门小程序AppID是什么AppID有什么用如何找到小程序AppID

很多?人问?小?齿轮,AppID是什什么?有什什么?用?怎么找到它? 现在,我们就正式讲解?一下。 ————————————————————————————— Q1:什什么是AppID? A1:AppID是?小程序的「身份证号码」。 Q2:AppID有什什么?用? A2:AppID是在开发者?工具中上传?小程序,和绑定公众号的必备“密码”。 Q3:那么,应该 如何获取?小程序的 AppID 呢? A3:?方法其实很简单,以下分为两种情况说。 ?一、获取企业、部?门、?自?己开发的?小程序AppID ?小程序管理理员进?入微信公众平台、使?用?小程序帐户登录后, 点击左侧菜单中的「设置」,在「开发设置」?一项,就可以查询到?小程序的 AppID。

有了了 AppID,你?自?己的公众号也可以凭借 AppID,进?行行关联?小程序的操作。 当然,AppID 的作?用不不?止如此。?小程序的开发者需要使?用 AppID,在开发者?工具中进?行行真机调试、提交?小程序包到微信。 需要注意的是,只有通过管理理员扫码验证,?小程序帐户才能登录。也就是说,正常情况下,只有?小程序的管理理员才能查询到?小程序的 AppID。 ?二、公众号关联其它?小程序(?非?自?己制作开发) 1.向对?方的?小程序管理理员获取相应?小程序的 AppID; 2.在公众平台登录?自?己的公众号,点击左侧的「?小程序管理理」; 3.点击右上?角的「添加」,选择「关联?小程序」;

4.输?入?目标?小程序的 AppID。 确认关联操作后,公众平台会?自动向?小程序管理理员发送关联邀请;?小程序管理理员只需要在?手机上确认,即可成功将?小程序与公众号进?行行关联。

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