导航:首页 > 操作系统 > 单片机课程目标

单片机课程目标

发布时间:2022-05-21 16:26:41

⑴ 什么叫单片机采用单片机的目的与意义单片机课设的目的与意义

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
采用单片机可以完成很多功能,现在很多电子产品都要用到单片机。
因为单片机这么课是一门实践性很强的课程,单纯学习课本不能掌握这门知识,经过课程设计,你的硬件设计能力和编程能力都能得到提升。

⑵ 单片机学什么核心课程是那些

专业对数学和英语要求不低,学起来比较郁闷要拿高薪,英语是必需的;
吃技术这碗饭,动手能力和数学是基本功当然,也不要求你成为数学家,只要能看懂公式就可以了,比如微积分和概率统计公式,至少知道是在说些什么而线性代数要求就高一些,因为任何书在讲一个算法时,最后都会把算法化为矩阵计算(这样就能编程实现了,而现代的电子工程相当一部分工作都是编程)
对于动手能力,低年级最好能焊接装配一些小电路,加强对模拟、数字、高频电路(这三门可是电子线路的核心)的感性认识;工具吗就找最便宜的吧!电烙铁、万用表是必需的,如果有钱可以买个二手示波器电路图吗,无线电杂志上经常刊登,无线电爱好者的入门书对实际操作很有好处
另一块是单片机、CPLD/FPGA、DSP其中单片机是必会的,51系列单片机就可以,因为这个用得最多;找块51开发板(比较便宜)自己动手编编程序就可以了ARM单片机、FPGA、DSP开发板都比较贵,不过这是趋势,有条件就玩玩吧
编程方面:c是要会的,实际上单片机/DSP应用系统就常用c语言来开发数据结构和操作系统是计算机软件专业最核心的课程(北大老师认为,学过这两门课就认为是学过计算机了)大型单片机(比如ARM系列)经常使用嵌入式操作系统(比如uCLinux),因此除了windows编程外,有机会可以玩玩Linux编程

⑶ 学习单片机要学习哪些课程

单片机是软硬件结合的,要想学好单片机就要分别把软件和硬件都学好。硬件的话,应该要把数电、模电学好;软件的话,应该把编程语言学好,比如C语言、汇编语言……

⑷ 学好单片机的前提是什么

我觉得学习单片机你该注意以下几个方面:1.学习的目标。其实,我开始也是不知道如何下手学习。后来,我参加了学校的项目申报,电子设计大赛之后。就有了学习的目标和动力了。2.学习的方法。这个你可以加入几个BBS或加几个QQ群。与有技术的人在一起学习,他们会教你很多东西的。3.学习的资源。教师是最好的资源,其次一些软件(proteus,keilc,icc),一些开发板等都是你的号帮手。此外,我觉得一个非常重要的因素就是你自己。你有没有信心坚持做完一个项目。并总结得到属于你自己的知识。
要学好单片机应该学好哪几门课程?
重要的有微机原理,C语言程序设计,模电,数电。重要的是你要去做项目。
OK!祝你成功。

⑸ 学习单片机课程的核心是什么

单片机的主要学习内容是:
1、存储器结构:包括程序存储器、RAM(工作寄存器、位寄存器、用户寄存器、特殊功能寄存器、扩展RAM)
2、中断资源:外部中断、定时器中断、串口中断等
3、IO口:很多IO都是复用的,所以需要弄清楚具体意义及控制方法
4、各个功能模块:如RS232、SPI、定时计数器、I2C、PWM、WATCHDOG等等,这些模块有的单片机只有其中之一,有的多些。
5、最好学一下汇编,这样有利于你更好的理解这些东西。

⑹ 谈谈对单片机课程的理解认识意见和建议

  1. 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

  2. 概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。

  3. 单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。 它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。

  4. 单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。

  5. 一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!

  6. 由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。

  7. 一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。

  8. 一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。 可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。

  9. 不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。

  10. 它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

  11. 各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。

  12. 现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。

⑺ 单片机交通灯课程设计

/*****************************************************

十字路口交通灯控制C程序

******************************************************/

#defineucharunsignedchar

#defineuintunsignedint

#include<reg52.h>

/*****定义控制位**********************/

sbit Time_Show_LED2=P2^5;//Time_Show_LED2控制位

sbit Time_Show_LED1=P2^4;//Time_Show_LED1控制位

sbitEW_LED2=P2^3;//EW_LED2控制位

sbitEW_LED1=P2^2;//EW_LED1控制位

sbitSN_LED2=P2^1;//SN_LED2控制位

sbitSN_LED1=P2^0;//SN_LED1控制位

sbit SN_Yellow=P1^6;//SN黄灯

sbit EW_Yellow=P1^2;//EW黄灯

sbit EW_Red=P1^3;//EW红灯

sbit SN_Red=P1^7;//SN红灯

sbit EW_ManGreen=P3^0;//EW人行道绿灯

sbit SN_ManGreen=P3^1;//SN人行道绿灯

sbit Special_LED=P2^6;//交通正常指示灯

sbit Busy_LED=P2^7;//交通繁忙指示灯

sbit Nomor_Button=P3^5;//交通正常按键

sbit Busy_Btton=P3^6;//交通繁忙按键

sbit Special_Btton=P3^7;//交通特殊按键

sbit Add_Button=P3^3;//时间加

sbit Reces_Button=P3^4;//时间减

bit Flag_SN_Yellow;//SN黄灯标志位

bit Flag_EW_Yellow;//EW黄灯标志位

charTime_EW;//东西方向倒计时单元

charTime_SN;//南北方向倒计时单元

ucharEW=60,SN=40,EWL=19,SNL=19;//程序初始化赋值,正常模式

ucharEW1=60,SN1=40,EWL1=19,SNL1=19;//用于存放修改值的变量

ucharcodetable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//1~~~~9段选码

ucharcodeS[8]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84};//交通信号灯控制代码

/**********************延时子程序************************/

voidDelay(uchara)

{

uchari;

i=a;

while(i--){;}

}

/*****************显示子函数**************************/

voidDisplay(void)

{

charh,l;

h=Time_EW/10;

l=Time_EW%10;

P0=table[l];

EW_LED2=1;

Delay(2);

EW_LED2=0;

P0=table[h];

EW_LED1=1;

Delay(2);

EW_LED1=0;

h=Time_SN/10;

l=Time_SN%10;

P0=table[l];

SN_LED2=1;

Delay(2);

SN_LED2=0;

P0=table[h];

SN_LED1=1;

Delay(2);

SN_LED1=0;

h=EW1/10;

l=EW1%10;

P0=table[l];

Time_Show_LED1=1;

Delay(2);

Time_Show_LED1=0;

P0=table[h];

Time_Show_LED2=1;

Delay(2);

Time_Show_LED2=0;

}

/**********************外部0中断服务程序************************/

voidEXINT0(void)interrupt0using1

{

EX0=0;//关中断

if(Add_Button==0)//时间加

{

EW1+=5;

SN1+=5;

if(EW1>=100)

{

EW1=99;

SN1=79;

}

}

if(Reces_Button==0)//时间减

{

EW1-=5;

SN1-=5;

if(EW1<=40)

{

EW1=40;

SN1=20;

}

}

if(Nomor_Button==0)//测试按键是否按下,按下为正常状态

{

EW1=60;

SN1=40;

EWL1=19;

SNL1=19;

Busy_LED=0;//关繁忙信号灯

Special_LED=0;//关特殊信号灯

}

if(Busy_Btton==0)//测试按键是否按下,按下为繁忙状态

{

EW1=45;

SN1=30;

EWL1=14;

SNL1=14;

Special_LED=0;//关特殊信号灯

Busy_LED=1;//开繁忙信号灯

}

if(Special_Btton==0)//测试按键是否按下,按下为特殊状态

{

EW1=75;

SN1=55;

EWL1=19;

SNL1=19;

Busy_LED=0;//关繁忙信号灯

Special_LED=1;//开特殊信号灯

}

EX0=1;//开中断

}

/**********************T0中断服务程序*******************/

voidtimer0(void)interrupt1using1

{

staticucharcount;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

count++;

if(count==10)

{

if(Flag_SN_Yellow==1)//测试南北黄灯标志位

{SN_Yellow=~SN_Yellow;}

if(Flag_EW_Yellow==1) //测试东西黄灯标志位

{EW_Yellow=~EW_Yellow;}

}

if(count==20)

{

Time_EW--;

Time_SN--;

if(Flag_SN_Yellow==1)//测试南北黄灯标志位

{SN_Yellow=~SN_Yellow;}

if(Flag_EW_Yellow==1)//测试东西黄灯标志位

{EW_Yellow=~EW_Yellow;}

count=0;

}

}

/*********************主程序开始**********************/

voidmain(void)

{

Busy_LED=0;

Special_LED=0;

IT0=1;//INT0负跳变触发

TMOD=0x01;//定时器工作于方式1

TH0=(65536-50000)/256;//定时器赋初值

TL0=(65536-50000)%256;

EA=1;//CPU开中断总允许

ET0=1;//开定时中断

EX0=1;//开外部INTO中断

TR0=1;//启动定时

while(1)

{/*******S0状态**********/

EW_ManGreen=0;//EW人行道禁止

SN_ManGreen=1;//SN人行道通行

Flag_EW_Yellow=0; //EW关黄灯显示信号

Time_EW=EW;

Time_SN=SN;

while(Time_SN>=5)

{P1=S[0];//SN通行,EW红灯

Display();}

/*******S1状态**********/

P1=0x00;

while(Time_SN>=0)

{Flag_SN_Yellow=1;//SN开黄灯信号位

EW_Red=1; //SN黄灯亮,等待左拐信号,EW红灯

Display();

}

/*******S2状态**********/

Flag_SN_Yellow=0;//SN关黄灯显示信号

Time_SN=SNL;

while(Time_SN>=5)

{P1=S[2];//SN左拐绿灯亮,EW红灯

Display();}

/*******S3状态**********/

P1=0x00;

while(Time_SN>=0)

{Flag_SN_Yellow=1;//SN开黄灯信号位

EW_Red=1; //SN黄灯亮,等待停止信号,EW红灯

Display();}

/***********赋值**********/

EW=EW1;

SN=SN1;

EWL=EWL1;

SNL=SNL1;

/*******S4状态**********/

EW_ManGreen=~EW_ManGreen;//EW人行道通行

SN_ManGreen=~SN_ManGreen;//SN人行道禁止

Flag_SN_Yellow=0; //SN关黄灯显示信号

Time_EW=SN;

Time_SN=EW;

while(Time_EW>=5)

{P1=S[4];//EW通行,SN红灯

Display();}

/*******S5状态**********/

P1=0X00;

while(Time_EW>=0)

{Flag_EW_Yellow=1;//EW开黄灯信号位

SN_Red=1;//EW黄灯亮,等待左拐信号,SN红灯

Display();}

/*******S6状态**********/

Flag_EW_Yellow=0; //EW关黄灯显示信号

Time_EW=EWL;

while(Time_EW>=5)

{P1=S[6];//EW左拐绿灯亮,SN红灯

Display();}

/*******S7状态**********/

P1=0X00;

while(Time_EW>=0)

{Flag_EW_Yellow=1;//EN开黄灯信号位

SN_Red=1;//EW黄灯亮,等待停止信号,SN红灯

Display();}

/***********赋值**********/

EW=EW1;

SN=SN1;

EWL=EWL1;

SNL=SNL1;

}

}

⑻ 单片机学习主要涉及哪些课程

高中物理的电学定律(欧姆定律,串并联等之类的)
电工(电烙铁的使用和各种元器件的识别使用)
模数电(别害怕,只要会做每一章的最简单的一两道题就足够了)
计算机原理(我也不知道干神马用的)
电子小制作一本(需要动手制作几个)
C语言编程(能达到会使用函数和指针就可以了)
数学(主要是四则运算……)
大量的芯片和单片机的DATASHEET(保守估计也有几千万册,不过只要能会读一两册就可以了)
通信(各种通信)
以上的知识都是建立在单片机的开发应用上。

如果你只是想要这一科及格,那么以上什么都不涉及。

⑼ 单片机课程设计

附2:程序
ORG 0000H
LJMP START
ORG 0003H
LJMP JIA
ORG 0013H
LJMP JIAN
ORG 0030H
FLAG1 BIT F0 ;DS18B20存在标志位
DQ BIT P2.2
TEMPER_L EQU 29H
TEMPER_H EQU 28H
A_BIT EQU 35H
B_BIT EQU 36H
START:
MOV IE,#85H
MOV 30H,#30
SHEZHI:MOV R1,#30H
ACALL DISPLAY
MOV P2,#0FFH
MOV A,P2
MOV C,ACC.0
JNC SHEZHI
LJMP MAIN

DISPLAY:MOV A,@R1;将29H中的十六进制数转换成10进制
MOV B,#10 ;10进制/10=10进制
DIV AB
MOV B_BIT,A ;十位在A
MOV A_BIT,B ;个位在B
MOV DPTR,#TAB ;指定查表启始地址
SETB P3.7 ;选中第一个数码管
MOV A,A_BIT ;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
MOV P1,A ;送出个位的7段代码
LCALL DELAY ; 调用延时
CLR P3.7
SETB P3.6 ;选中第二个数码管
MOV A,B_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P1,A ;送出十位的7段代码
LCALL DELAY
CLR P3.6
RET
JIA:
MOV P2,#0FFH
MOV A,P2
MOV C,ACC.0
JC OUT
INC @R1
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
OUT:
RETI
JIAN:
MOV P2,#0FFH
MOV A,P2
MOV C,ACC.0
JC OUT1
DEC @R1
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
OUT1:
RETI
DELAY: ;延时子程序
MOV R5,#120
NOP
NOP
D1: MOV R6,#100
D2: DJNZ R6,D2
DJNZ R5,D1
RET

;**************主程序开始************
MAIN:

LCALL INIT_18B20
;LCALL RE_CONFIG
LCALL GET_TEMPER
LJMP CHANGE

;**********DS18B20复位程序*****************
INIT_18B20: SETB DQ
NOP
CLR DQ
MOV R0,#0FBH
TSR1: DJNZ R0,TSR1 ;延时
SETB DQ
MOV R0,#25H
TSR2: JNB DQ ,TSR3
DJNZ R0,TSR2
TSR3: SETB FLAG1 ;置标志位,表明DS18B20存在
CLR P0.5 ;二极管指示
AJMP TSR5
TSR4: CLR FLAG1
LJMP TSR7
TSR5: MOV R0,#06BH
TSR6: DJNZ R0,TSR6
TSR7:SETB DQ ;表明不存在
RET

;*****************读转换后的温度值****************
GET_TEMPER:
SETB DQ
LCALL INIT_18B20
JB FLAG1,TSS2
RET ;若不存在则返回
TSS2: MOV A,#0CCH ;跳过ROM
LCALL WRITE_18B20
MOV A,#44H ;发出温度转换命令
LCALL WRITE_18B20

;LCALL DISPLAY ;延时
LCALL INIT_18B20
MOV A,#0CCH ;跳过ROM
LCALL WRITE_18B20
MOV A,#0BEH ;发出读温度换命令
LCALL WRITE_18B20
LCALL READ2_18B20 ;读两个字节的温度
RET
;***************写DS18B20程序************
WRITE_18B20:
MOV R2,#8
CLR C
WR1:
CLR DQ
MOV R3,#6
DJNZ R3,$
RRC A
MOV DQ,C
MOV R3,#23
DJNZ R3,$
SETB DQ
NOP
DJNZ R2,WR1
SETB DQ
RET

;***********读18B20程序,读出两个字节的温度*********
READ2_18B20:
MOV R4,#2 ;低位存在29 H,高位存在28H
MOV R1,#29H
RE00: MOV R2,#8
RE01: CLR C
SETB C
NOP
NOP
CLR DQ
NOP
NOP
NOP
SETB DQ
MOV R3,#7
DJNZ R3,$
MOV C,DQ
MOV R3,#23
DJNZ R3,$
RRC A
DJNZ R2,RE01
MOV @R1,A
DEC R1
DJNZ R4,RE00
RET
;************读出的温度进行数据转换**************

CHANGE: MOV A,29H
MOV C,28H.0 ;将28H中的最低位移入C
RRC A
MOV C,28H.1
RRC A
MOV C,28H.2
RRC A
MOV C,28H.3
RRC A
MOV 29H,A
MOV R1,#29H
LCALL DISPLAY ;调用数码管显示子程序
CLR C
MOV A,30H
SUBB A,29H
JC BJ

LJMP MAIN

BJ:CPL P0.0
CPL P0.1

LJMP MAIN

;***********************************
D1MS: MOV R7,#80 ;1MS延时(按12MHZ算)
DJNZ R7,$
RET
;*************************
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END

阅读全文

与单片机课程目标相关的资料

热点内容
魔术app怎么用 浏览:338
单片机有4个8位的io口 浏览:895
win10rar解压缩软件 浏览:164
plc教程pdf 浏览:667
pythonshell清屏命令 浏览:278
检测到加密狗注册服务器失败 浏览:203
解压后手机如何安装 浏览:518
极客学院app为什么下架 浏览:13
图片批量压缩绿色版 浏览:651
东北程序员帅哥 浏览:707
加密封条风噪小 浏览:974
安阳少儿编程市场 浏览:499
云服务器建设原理 浏览:259
javajunit4for 浏览:847
华为服务器如何进阵列卡配置 浏览:435
apache服务器ip地址访问 浏览:720
如何买到安卓手机预装软件 浏览:537
冤罪百度云不要压缩 浏览:89
苏州云存储服务器 浏览:179
解压收纳原声 浏览:388