文档库 最新最全的文档下载
当前位置:文档库 › 基于C51的单片机电动机控制器制作

基于C51的单片机电动机控制器制作

基于C51的单片机电动机控制器制作
基于C51的单片机电动机控制器制作

计算技术信息发展

单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案

单片机原理及应用技术苏家建 课后习题参考答案 第三章MCS-51指令系统 3-1 MCS-51指令系统有哪几种寻址方式?按功能分类有哪几种指令? 3-2 设A=0FH,R0=30H,片内RAM的(30H)=0AH, (31H)=0BH, (32H)=0CH,下列程序段运行后的结果? MOV A,@R0 ;A=0AH MOV @R0,32H ;(30H)=0CH MOV 32H,A ;(32H)=0AH MOV R0,#31H ;R0=31H MOV A,@R0;A=(31H)=0BH 3-3 (1)R0的内容传送到R1 MOV A,R0 MOV R1,A (2)内部RAM 20H单元的内容传送到A MOV A,20H (3)外部RAM 30H单元的内容传送到R0 MOV R1,#30H MOVX A,@R1 MOV R0,A (4) 外部RAM 30H单元的内容传送到内部RAM 20H单元 MOV R1,#30H MOVX A,@R1 MOV 20H,A (5) 外部RAM 1000H单元的内容传送到内部RAM 20H单元 MOV DPTR,#1000H MOVX A,@DPTR MOV 20H,A (6)程序存储器ROM 2000H单元的内容传送到R1 MOV DPTR,#2000H CLR A MOVC A,@A+DPTR MOV R1,A (7) RAM 2000H单元的内容传送到内部RAM 20H单元 MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A (8) RAM 2000H单元的内容传送到外部RAM 30H单元 MOV DPTR,#2000H MOVX A,@DPTR MOV R0,#30H MOVX @R0,A (9) RAM 2000H单元的内容传送到外部RAM 1000H单元

基于AT89C51单片机的步进电动机控制系统设计

重庆科技大学 本科毕业论文 基于AT89C51单片机的步进电动机控制系统 设计 考生姓名: XXXXX X 准考证号: XXXXXXXXXXXX 专业层次:本科院(系):XXXXXXXXXXXXXXXXXXX 指导教师: XXXXXX 职称:讲师 重庆科技大学 二O一二年月日

基于AT89C51单片机的步进电动机控制系统 设计 考生姓名: XXXXXX 准考证号: XXXXXXXXXXXX 专业层次:本科 指导教师: XXXXXXX 院(系):机械与动力工程学院 重庆科技大学 二O一二年九月二十日

摘要 随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。 步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。 本设计是采用AT89C51单片机对步进电机的控制,通过I/O口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机。 实践证明,基于单片机控制的步进电机比传统的步进控制器具有更好的性能,更加简单、方便、可靠。本设计的主要研究对象就是开环伺服系统中最常用的执行器件——步进电机。 关键词:步进电机,单片机,正反转控制,键盘控制,LCD液晶显示

51单片机流水灯C语言源代码

#include #include #define uint unsigned int #define uchar unsigned char uchar z=50,e=0x00,f=0xff; uchar code table1[]={ 0x80,0xc0,0xe0,0xf0, 0xf8,0xfc,0xfe,0xff}; uchar code table2[]={ 0x7f,0x3f,0x1f,0x0f, 0x07,0x03,0x01,0x00}; uchar code table3[]={ 0x01,0x03,0x07,0x0f, 0x1f,0x3f,0x7f,0xff}; uchar code table4[]={ 0xe7,0xdb,0xbd,0x7e, 0xbd,0xdb,0xe7,0xff}; uchar code table5[]={ 0xe7,0xc3,0x81,0x00, 0x81,0xc3,0xe7,0xff}; uchar code table6[]={ 0x7e,0x3c,0x18,0x00, 0x18,0x3c,0x7e,0xff}; void delay(uchar); void lsd1(); void lsd2(); void lsd3(); void lsd4(); void lsd5(); void lsd6(); void lsd7(); void lsd8(); void lsd9(); void lsd10(); void lsd11(); void lsd12(); main() { while(1) { lsd1(); lsd2(); lsd3(); lsd4();

完整word版,C语言期末大作业

伊犁师范学院计算机科学系 实验训项目报告 一、小组成员及分工: 姓名:张雁 学号:0908******* 二、指导老师:王慧玲 三、说明程序编制要点,以及自己在项目制作中的难 点及解决办法: 编写的要点:编写N个函数分别用来求平均分;总分按降许序排列;按姓名查找学生的成绩;找出各科 最高分的学生姓名,学号等。编写主函数提供不 同的选择途径。 难点:函数之间的调用,姓名的比较和交换。 解决办法:通过参数的传递;用字符串处理函数。 四、说明项目中所涉及的知识点及难点: 知识点:基础知识,结构体,选择结构程序设计,循环结构程序设计,数组,字符数组,常用的字符串处理函数,函数的调用。 难点:函数的调用,循环程序设计。

五、附录源程序: 注:必须有一定的注释,说明函数功能以及主要语句所起的作用 #include "stdio.h" #include "string.h" #define m 5 void search(); /*声明按姓名查找学生的信息*/ void ave(); /*声明turn out average*/ void paixu(); /* 声明score pai mingci*/ void maxandmin(); /*声明maxandmin score student's number,name and every course score*/ struct student /*声明define a struct*/ { int num; /*student’s number */ char name[10]; int math,english,chinese; /*three course score*/ int no; /* student mingci*/ float sum; float ave; }stu[m]; main() { int i; int q=0,p;

单片机原理与应用技术教学大纲

《单片机原理与应用技术》教学大纲 一、课程名称 单片机原理与应用技术 二、先修课程 电子技术类基础课程和微机应用类基础课程 三、课程性质与任务 课程性质: 本课程是高职高专电子类相关专业的的一门专业课程。本大纲可作为(高中后大专、对口单招、五年制高职)层次学生的教学参考。 课程的任务: 它以MCS-51单片机为例,详细介绍片内结构、工作原理、接口技术和单片机在各领域中的应用。为学生进一步学习微机在智能仪表、工业控制领域中的应用技术奠定必要的基础。 四、课程教学目标 1、知识目标 (1)熟练掌握单片机内部硬件结构、工作原理及指令系统,掌握程序的设计基本方法,能够较熟练地设计常用的汇编语言源程序; (2)掌握单片机的接口技术,熟悉常用的外围接口芯片及典型电路。 (3)熟悉设计、调试单片机的应用系统的一般方法,具有初步的软、硬件设计能力。 (4)能够熟练地掌握一种单片机开发系统的使用方法。 2、能力目标 初步具备应用单片机进行设备技术改造、产品开发的能力。 五、教学内容 第一章微机基础知识 (一)教学目的 熟悉微处理器、微型机和单片机的概念及组成。掌握计算中常用数制及数制间的转换,了解BCD码和ASCII码。熟悉数据在计算机中的表示方法。 (二)教学重点与难点 重点:

计算中常用数制及数制间的转换。 难点: 微处理器、微型机和单片机的概念及组成,微机的工作过程 (三)教学内容 1、微处理器、微机和单片机的概念; 2、微机的工作过程。 (四)本章小结 1、数制有二进制、十进制、十六进制等。 2、计算机系统中常包含有地址总线、数据总线、控制总线 3、微处理器是由运算器、控制器两部组成 4、单片机是由输入、输出、接口电路、时钟电路、存储器、运算器、控 制器几部分组成 (五)思考题 1、试用计算机汇编语言指令完成12*34+56÷7-8的计算步骤? 第二章 MCS-51单片机的结构和原理 (一)教学目的 熟悉MCS- 51单片机内部结构、引脚功能以及单片机执行指令的时序;掌握单片机存储器结构和输入/输出端口结构特点。掌握堆栈的使用。 (二)教学重点与难点 重点: 1、8051的存储器配置及特点; 2、21个特殊功能寄存器(SFR)的功能; 3、堆栈的概念; 4、复位电路。 难点: 1、MCS- 51单片机内部结构; 2、CPU时序。 (三)教学内容

单片机大作业

大连理工大学本科设计报告(单片机原理综合设计) 题目: 课程名称:单片机实验 学院(系):信通学院 专业:通信工程 班级:电通1202 学号:201201203 学生姓名:牛玉博 成绩: 20 15 年 5 月8 日

目录 1.题目及内容 (2) 2.设计思路 (2) 2.1数码管显示 (2) 2.2显示内容转换 (2) 2.3闪烁报警 (2) 2.4温度上下限的设置 (2) 2.5中断程序 (2) 3.相关资料 (3) 4.电路图 (3) 5.程序框图 (4) 5.1中断程序流程图 (4) 5.2主程序流程图 (6) 6.源程序 (6) 7.调试中所遇到的问题 (14) 8.调试解决了的问题. (14) 9.个人体会(总结) (14)

一、题目及内容 用汇编语言模拟电梯运动系统设计程序,要求有完成如下要求:利用zlg7290和pcf8563t以及A/D转换实现下述功能。 1.利用键盘改变显示内容(能读A/D转换值、读取时间), 并且闪烁显示3秒,变成稳定显示。 2.键盘设定温度上限值和下限制,当温度达到上限值后, 显示闪烁;同样,当温度达到下限值后,同样发出报警, 并闪烁。 3.当时间设定值达到设定值后,同样发出报警,并闪烁。 4.时间闪烁与温度闪烁时间长短有区别。 二、设计思路 1.数码管显示 通过ZLG7290B的数码管显示,将数据转换成BCD码,然后通过字形码的对应关系显示,通过中断程序每秒读取一次数据。 2.显示内容转换 通过开关控制显示的内容, SW1低是时间,在SW1时间的情况下,SW2高是年月日;SW1高是温度,在SW1温度情况下,SW2高显示温度上限,SW2低,SW3高显示温度下限 3.闪烁报警 当条件满足报警时,通过调用显示程序,通过控制闪烁控制字,控制数码管相应的位置闪烁。时间报警闪烁一分钟,温度报警一直闪烁。 4.温度上下限的设置 通过键值设置上下限,通过不同按键对应于上限和下限的设置,然后的键值通过一定计算赋给上下限的存储空间。 5.中断程序 两个中断,其中中断0用于每秒显示,中断1用于键值的读取。

完整的单片机控制步进电机程序

#include "reg52.h" #include "INTRINS.H" #include #include #define uint unsigned int #define uchar unsigned char void check_addr(void); /*地址核对*/ uchar code slave_addr[4]={00, 01, 02, 255}; /*从机地址*/ uchar idata T0low, T0high,common_count,input_order,cmd_in_permit,interval; uchar sent_ok,speed_change,start_up,start_end,address_true,i; uint y1; uint code add[100]={60006,62771,63693,64154,64430,64614,64746,64845,64922,64983,65033,65075,651 11,65141,65167,65190,65211,65229,65245,65260,65273,65285,65296,65306,65315,65323,65331 ,65339,65345,65352,65358,65363,65368,65373,65378,65382,65387,65390,65394,65398,65401,6 5404,65407,65410,65413,65416,65418,65421,65423,65425,65428,65430,65432,65434,65435,654 37,65439,65441,65442,65444,65445,65447,65448,65450,65451,65452,65453,65455,65456,65457 ,65458,65459,65460,65461,65462,65463,65464,65465,65466,65467,65468,65469,65469,65470,6 5471,65472,65472,65473,65474,65475,65475,65476,65477,65477,65478,65478,65479,65480,654 80,65481}; sbit P2_0=P2^0; /*作输入步进电机的脉冲信号发送口*/ sbit P2_2=P2^2; /*作输入步进电机的旋转方向信号发送口*/ sbit P1_0=P1^0; /*作串口输出信号的使能口, P1_0=0时接通串口,输出信号*/ sbit WD=P1^7; /*看门狗*/ main() { P2_0=0; P2_2=0; /*步进电机的旋转方向待试验后确定*/ P1_0=1; /*开机时需要关断,串口发送功能,需要时再接通*/ WD=1; /*看门狗先为1,电平翻转为喂狗*/ i=0; common_count=0; cmd_in_permit=0; input_order=0; interval=0; address_true=1; speed_change=0; start_up=0;

51单片机控制直流电机PWM调速C语言程序

#include #define uchar unsigned char #define uint unsigned int sbit KEY1 = P3^4; sbit KEY2 = P3^5; sbit KEY3 = P3^6; sbit IN1 = P1^0; sbit IN2 = P1^1; sbit ENA = P1^2; sfr ldata=0x80; sbit dula=P2^6; sbit wela=P2^7; //sbit lcden=P3^4; //uchar timer,ms,t_set = 1; uchar T_N=100; uchar T_N1=100; uchar T_H_N=50; uchar T_H_N1=50; void msplay(uchar,uchar); uchar code x1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //uchar code x2[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; uchar code x3[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; //uchar code x4[]={0x01,0x02,0x04,0x08,0x10,0x20}; void delay(uint z) //延时函数 { uint x; for(x=z;x>0;x--); }

单片机c语言编程控制流水灯

说了这么多了,相信你也看了很多资料了,手头应该也有必备的工具了吧!(不要忘了上面讲过几个条件的哦)。那个单片机究竟有什么 功能和作用呢?先不要着急!接下来让我们点亮一个LED(搞电子的应该知道LED是什么吧^_^) 我们在单片机最小系统上接个LED,看我们能否点亮它!对了,上面也有好几次提到过单片机最小系统了,所谓单片机最小系统就是在单片机 上接上最少的外围电路元件让单片机工作。一般只须连接晶体、VCC、GND、RST即可,一般情况下,AT89C51的31脚须接高电平。 #include //头文件定义。或用#include其具体的区别在于:后者定义了更多的地址空间。 //在Keil安装文件夹中,找到相应的文件,比较一下便知! sbit P1_0 = P1 ^ 0; //定义管脚 void main (void) { while(1) { P1_0 = 0;//低电平有效,如果把LED反过来接那么就是高电平有效 } } 就那么简单,我们就把接在单片机P1_0上的LED点亮了,当然LED是低电平,才能点亮。因为我们把LED的正通过电阻接至VCC。 P1_0 = 0; 类似与C语言中的赋值语句,即把0 赋给单片机的P1_0引脚,让它输出相应的电平。那么这样就能达到了我们预先的要求了。 while(1)语句只是让单片机工作在死循环状态,即一直输出低电平。如果我们要试着点亮其他的LED,也类似上述语句。这里就不再讲了。 点亮了几个LED后,是不是让我们联想到了繁华的街区上流动的彩灯。我们是不是也可以让几个LED依次按顺序亮呢?答案是肯定的!其 实显示的原理很简单,就是让一个LED灭后,另一个立即亮,依次轮流下去。假设我们有8个LED分别接在P1口的8个引脚上。硬件连接,在 P1_1--P1_7上再接7个LED即可。例程如下: #include sbit P1_0 = P1 ^ 0; sbit P1_1 = P1 ^ 1; sbit P1_2 = P1 ^ 2; sbit P1_3 = P1 ^ 3; sbit P1_4 = P1 ^ 4; sbit P1_5 = P1 ^ 5; sbit P1_6 = P1 ^ 6; sbit P1_7 = P1 ^ 7; void Delay(unsigned char a) { unsigned char i; while( --a != 0) {

单片机期末总结材料 最完整版

单片机期末复习总结 1.MCS-51单片机芯片包含哪些主要功能? 8051单片机是个完整的单片微型计算机。芯片部包括下列主要功能部件: 1)8位CPU; 2)4KB的片程序存储器ROM。可寻址64KB程序存储器和64KB外部数据存储器; 3)128B部RAM; 4)21个SFR; 5)4个8位并行I/O口(共32位I/O线); 6)一个全双工的异步串行口; 7)两个16位定时器/计数器;0 8)5个中断源,两个中断优先级; 9)部时钟发生器。 2.MCS-51单片机的4个I/O口在使用上各有什么功能? 1)P0口:8位双向三态端口,外接上拉电阻时可作为通用I/O口线,也可在总线外扩时用作数据总线及低8位地址总线。 2)P1口:8位准双向I/O端口,作为通用I/O口。 3)P2口:8位准双向I/O端口,可作为通用I/O口,也可在总线外扩时用作高8位地址总线。 4)P3口:8位准双向I/O端口,可作为通用I/O口,除此之外,每个端口还有第二功能。实际应用中常使用P3口的第二功能。 P3的第二功能:

【注】:P0口必须接上拉电阻; I/O口准双向:MCS-51单片机I/O口做输入之前要先输出1.这种输入之前要先输出1的I/O口线叫做准双向I/O口,以区别真正的输入,输出的双向I/O口。 3. MCS-51单片机的存储器分为哪几个空间?是描述各空间作用? 8051存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间: 1)64KB片片外统一编址的程序存储器地址空间,地址围:0000H~FFFFH,对于8051单片机,其中地址0000H~0FFFH围为4KB的片ROM地址空间,1000H ~ FFFFH为片外ROM 地址空间; 2)256B的部数据存储器地址空间,地址围为00H~FFH,对于8051单片机,部RAM分为两部分,其中地址围00H ~ 7FH(共128B单元)为部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;对于8052系列单片机还有地址围为80H~FFH的高128B的静态RAM。 3)64KB的外部数据存储器地址空间:地址围为0000H~FFFFH,包括扩展I/O端口地址空间。

基于51单片机控制直流电机的设计

可以实现的功能是: 按下左转键则开始向左转动 按下右转键则向右转动 按下停止键则开始逐渐停止转动 按下调速键一次则会加速一档 按下调速键二次则会加速二档 按下调速键三次则会加速三档 按下调速键四次则会加速四档 按下调速键五次则会回到最初速度重新记档位 设计思路: 直流电机只要能提供一定的直流就可以转动,改变电压极性可以改变转动方向,可以通过给直流电机提供脉冲信号来驱动它,脉冲信号的占空比可以影响到直流电机的平均速度,因此可以通过调整占空比从而能实现调速的目的。直流电机的驱动电路要有过流保护作用,图中的二极管就直到这个作用,另外电机的驱动电流是比较大的所以需要用三极管来放大电流。程序的关键就是如何实现占空比的调整,这个可以通过对51单片机定时器重装初值进行改变,从而改变时间。用51实现PWM信号的输出,相对麻烦点,要是AVR就可以方便地实现PWM信号,由见51单片机的局限性与AVR单片机的优势。 原理图

详细程序: #include #define uchar unsigned char #define uint unsigned int sbit PW1=P2^0 ; sbit PW2=P2^1 ; //控制电机的两个输入 sbit accelerate=P2^2 ; //调速按键 sbit stop=P2^3 ; //停止按键 sbit left=P2^4 ; //左转按键 sbit right=P2^5 ; //右转按键 #define right_turn PW1=0;PW2=1 //顺时针转动 #define left_turn PW1=1;PW2=0 //逆向转动 #define end_turn PW1=1;PW2=1 //停转 uint t0=25000,t1=25000; //初始时占空比为50% uint a=25000; // 设置定时器装载初值 25ms 设定频率为20Hz uchar flag=1; //此标志用于选择不同的装载初值 uchar dflag; //左右转标志 uchar count; //用来标志速度档位 void keyscan(); //键盘扫描 void delay(uchar z); void time_init(); //定时器的初始化 void adjust_speed(); //通过调整占空比来调整速度 void main()

最经典的51单片机经典流水灯汇编程序

单片机流水灯汇编程序设计 开发板上的8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。 程序A: ;用最直接的方式实现流水灯 ORG 0000H START:MOV P1,#01111111B ;最下面的LED点亮 LCALL DELAY;延时1秒 MOV P1,#10111111B ;最下面第二个的LED点亮 LCALL DELAY;延时1秒 MOV P1,#11011111B ;最下面第三个的LED点亮(以下省略) LCALL DELAY MOV P1,#11101111B LCALL DELAY MOV P1,#11110111B LCALL DELAY MOV P1,#11111011B LCALL DELAY MOV P1,#11111101B LCALL DELAY MOV P1,#11111110B LCALL DELAY MOV P1,#11111111B ;完成第一次循环点亮,延时约0.25秒 AJMP START ;反复循环 ;延时子程序,12M晶振延时约250毫秒 DELAY: MOV R4,#2 L3: MOV R2 ,#250 L1: MOV R3 ,#250 L2: DJNZ R3 ,L2 DJNZ R2 ,L1 DJNZ R4 ,L3 RET END 程序B: ;用移位方式实现流水灯

ajmp main ;跳转到主程序 org 0030h ;主程序起始地址 main: mov a,#0feh ;给A赋值成11111110 loop: mov p1,a ;将A送到P1口,发光二极管低电平点亮 lcall delay ;调用延时子程序 rl a ;累加器A循环左移一位 ajmp loop ;重新送P1显示 delay: mov r3,#20 ;最外层循环二十次 d1: mov r4,#80 ;次外层循环八十次 d2: mov r5,#250 ;最内层循环250次 djnz r5,$ ;总共延时2us*250*80*20=0.8S djnz r4,d2 djnz r3,d1 ret end 51单片机经典流水灯程序,在51单片机的P2口接上8个发光二极管,产生流水灯的移动效果。 ORG 0 ;程序从0地址开始 START: MOV A,#0FEH ;让ACC的内容为11111110 LOOP: MOV P2,A ;让P2口输出ACC的内容 RR A ;让ACC的内容左移 CALL DELAY ;调用延时子程序 LJMP LOOP ;跳到LOOP处执行 ;0.1秒延时子程序(12MHz晶振)=================== DELAY: MOV R7,#200 ;R7寄存器加载200次数 D1: MOV R6,#250 ;R6寄存器加载250次数 DJNZ R6,$ ;本行执行R6次 DJNZ R7,D1 ;D1循环执行R7次 RET ;返回主程序

大工13秋《单片机原理及应用》大作业

网络教育学院 《单片机原理及应用》大作业 题目:单片机原理及应用 学习中心:重庆万州奥鹏学习中心 层次:专升本 专业:电气工程及其自动化 年级: 2013 年秋 学号: 121511409524 学生姓名:李芳荣

单片机电子时钟设计 一、引言 单片机技术在计算机中作为独立的分支,有着性价比高、集成度高、体积少、可靠性高、控制功能强大、低功耗、低电压、便于生产、便于携带等特点,越来越广泛的被应用于实际生活中。单片机全称,单片机微型计算机,从应用领域来看,单片机主要用来控制系统运行,所以又称微控制器或嵌入式控制器,单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。 二、时钟的基本原理分析 利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。 为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。 三、时钟设计分析 针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。 在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现

单片机原理及应用习题答案

思考与练习题1 1.1单项选择题 (1)单片机又称为单片微计算机,最初的英文缩写是( D ) A.MCP B.CPU C.DPJ D.SCM (2)Intel公司的MCS-51系列单片机是( C )的单片机。 A.1位 B.4位 C.8位 D.16位 (3)单片机的特点里没有包括在内的是( C ) A.集成度高 B.功耗低 C.密封性强 D.性价比高 (4)单片机的发展趋势中没有包括的是( B ) A.高性能 B.高价格 C.低功耗 D.高性价比 (5)十进制数56的二进制数是( A ) A.00111000B B.01011100B C.11000111B D.01010000B (6)十六进制数93的二进制数是( A ) A.10010011B B.00100011B C.11000011B D.01110011B (7)二进制数11000011的十六进制数是( B ) A. B3H B.C3H C.D3H D.E3H (8)二进制数11001011的十进制无符号数是( B ) A. 213 B.203 C.223 D.233 (9)二进制数11001011的十进制有符号数是( B ) A. 73 B.-75 C.-93 D.75 (10)十进制数29的8421BCD压缩码是( A ) A.00101001B B.10101001B C.11100001B D.10011100B (11)十进制数-36在8位微机中的反码和补码是( D ) A.00100100B、11011100B B.00100100B、11011011B C.10100100B、11011011B D.11011011B、11011100B (12)十进制数+27在8位微机中的反码和补码分别是( C ) A.00011011B、11100100B B.11100100B、11100101B C.00011011B、00011011B D.00011011B、11100101B (13)字符9的ASCII码是( D ) A.0011001B B.0101001B C.1001001B D.0111001B (14)ASCII码1111111B的对应字符是( C ) A. SPACE B.P C.DEL D.{ (15)或逻辑的表达式是( B ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (16)异或逻辑的表达式是( C ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (17)二进制数10101010B与00000000B的“与”、“或”和“异或”结果是( B ) A.10101010B、10101010B、00000000B B.00000000B、10101010B、10101010B C.00000000B、10101010B、00000000B D.10101010B、00000000B、10101010B (18)二进制数11101110B与01110111B的“与”、“或”和“异或”结果是( D ) A.01100110B、10011001B、11111111B B.11111111B、10011001B、01100110B C.01100110B、01110111B、10011001B D.01100110B、11111111B、10011001B (19)下列集成门电路中具有与门功能的是( D ) A.74LS32 B.74LS06 C.74LS10 D.74LS08

单片机控制电机调速实验报告

重庆邮电大学综合实验报告——单片机控制步进电机调速 学生姓名:组长:AAAA 组员:AAAAAAAA 学号:XXXXX XXXXXXXXXXXXX 所在学院:自动化 班级:XXXXX 专业:机械设计制造及其自动化 指导老师:XXXX 成绩评定: 检测与控制实验中心

目录 一、实验要求与目的 (3) 1、设计要求 (3) 2、实验目的 (3) 二、设计思路 (3) 三、实验原理 (4) 1、步进电机 (4) 2、步进电机控制系统结构 (4) 3、速度控制算法 (5) 四、功能概述及方案设计 (5) 1、显示模块 (5) 2、AD转换模块 (6) 3、步进电机细分驱动模块 (6) 五、实验运行程序 (7) 六、实验心得 (13) 参考文献 (13)

一、实验要求与目的 1、设计要求 1、步进电机的给定速度由电位器通过AD转换输入 2、只有给定速度和实际速度显示功能 3、实际速度通过红外光电开关(或霍尔元件)检查 4、步进电机具有细分功能:1/2细分 1/4细分 1/8细分 5、测试步进电机的响应时间及曲线 2、实验目的 1、熟悉步进电机的工作原理 2、熟悉51系列单片机的工作原理及调试方法 3、设计基于51系列单片机控制的步进电机调速原理图 4、实现51系列单片机对步进电机的速度控制 5、了解霍尔元件和步进电机细分驱动芯片tb6560的使用 二、设计思路 主控芯片采用STC89C52单片机,显示采用1602液晶,由于步进电机速度设定由电位器输入,使用外部AD tlc5510,AD时钟源接89C52 ALE引脚,AD为并行,AD使用单片机P1口,可以直接读取,根据对应数据设定速度。步进电机速度控制采用闭环控制,由于传统的PID控制算法波动较大,我们采用分级设定加速度的办法,并把编码器反馈回来的速度与设定速度进行比较确定是加速还是减速,软件模拟加速减速过程,步进电机细分由驱动芯片TB6560提供,由于驱动细分由m1、m2口电平决定,我们采取直接通过拨码开关设定电平,从而设定驱动细分值。

用单片机控制的LED流水灯设计(电路、程序全部给出)

1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。 2.硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATM EL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz 工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。 图1 流水灯硬件原理图 从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要

单片机大作业 - 马强

《单片机原理与应用》 大作业 班级:1411电科 姓名:马强 学号:2016511010

《单片机原理与应用》大作业(一)作业内容: 基于STC89C51单片机设计一个流水灯项目。实现功能:(1)实现LED灯的点亮和熄灭。 (2)实现LED灯的依次点亮。 (3)实现LED灯的循环点亮。 基于以上要实现的目标我进行了设计和分析,代码如下:#include #include #define uchar unsigned char #define uint unsigned int void delay(uint); uchar tmp,i; void main() { tmp=0x7f; P0=tmp; for(i=0;i<7;i++) { tmp=_cror_(tmp,1); delay(500); P0=tmp; } P0=0xfe; for(i=0;i<7;i++) { tmp=_crol_(tmp,1); delay(500); P0=tmp; }

} void delay(z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } 仿真结果: 点亮一个LED 依次点亮

循环点亮结论:

《单片机原理与应用》大作业(二) 作业内容: 基于STC89C51单片机设计一个按键控制数码管项目。实现功能: (1)数码管的点亮。 (2)按键按下检测。 (3)按键“K1”按下数码管以2Hz的频率循环显示0 ~ F,按键“K2”按下则数码管停止自动循环显示并以当前值为基础按下加一。 基于以上要实现的目标我进行了设计和分析,代码如下:、 /***************************************************************** *****/ #include #define uchar unsigned char uchar code table[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46 ,0x21,0x06,0x0e}; void k1(); void k2(); sbit key1=P3^0; sbit key2=P3^1; unsigned int i; void delay(unsigned int xms) { unsigned int x, y; for(x=xms;x>0;x--) for(y=110;y>0;y--); } void delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--);

单片机原理与应用技术实验报告(实验项目:定时器)

*****数学计算机科学系实验报告 专业:计算机科学与技术班级:实验课程:单片机原理与应用技术 姓名:学号:实验室:硬件实验室 同组同学: 实验时间:2013年3月20日指导教师签字:成绩: 实验项目:定时器 一实验目的和要求 定时器0实现1s定时,流水灯显示上的数据每秒加1。 二实验环境 PC机一台,实验仪器一套 三实验步骤及实验记录 1.在pc机上,打开Keil C。 2.在Keil C中,新建一个工程文件,点击“Project->New Project…”菜单。 3.选择工程文件要存放的路径 ,输入工程文件名 M, 最后单击保存。 4. 在弹出的对话框中选择 CPU 厂商及型号。 5.选择好 Atmel 公司的 89c51 后 , 单击确定。 6.在接着出现的对话框中选择“是”。 7.新建一个 C51 文件 , 点击file菜单下的NEW,或单击左上角的 New File快捷键。 8.保存新建的文件,单击SAVE。 9.在出现的对话框中输入保存文件名MAIN.C,再单击“保存”。 10.保存好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to Group ‘Source Group 1'。 11.选择要加入的文件 , 找到 MAIN.C 后 , 单击 Add, 然后单击Close。 12.在编辑框里输入代码如下: #include "reg51.h" //包含头文件 sbit LE1=P2^0; //位选573锁存器使能 sbit LE2=P2^1; //段选573锁存器使能 #define uchar unsigned char #define uint unsigned int

最新五种编程方式实现流水灯的单片机c程序讲课教案

五种编程方式实现流水灯的单片机C程序 //功能:采用顺序结构实现的流水灯控制程序 /*此方式中采用的是字操作(也称为总线操作)*/ #include void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1 = 0xfe; //点亮第1个发光二极管,0.000389s delay(200); //延时 P1 = 0xfd; //点亮第2个发光二极管,0.155403s,0.1558 delay(200); //延时 P1 = 0xfb; //点亮第3个发光二极管 delay(200); //延时 P1 = 0xf7; //点亮第4个发光二极管 delay(200); //延时 P1 = 0xef; //点亮第5个发光二极管 delay(200); //延时 P1 = 0xdf; //点亮第6个发光二极管 delay(200); //延时 P1 = 0xbf; //点亮第7个发光二极管 delay(200); //延时 P1 = 0x7f; //点亮第8个发光二极管 delay(200); //延时 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数{ unsigned char j, k; //定义无符号字符型变量j和k for(k = 0; k < i; k++) //双重for循环语句实现软件延时 for(j = 0; j < 255; j++); } //功能:采用循环结构实现的流水灯控制程序 //此方式中采用的移位,按位取反等操作是位操作 #include //包含头文件REG51.H void delay(unsigned char i); //延时函数声明 void main() //主函数

相关文档
相关文档 最新文档