单片机实训题目
- 格式:doc
- 大小:77.50 KB
- 文档页数:4
单片机编程实习题目
题目一、基于18B20的温度测量
要求:用单片机采集数字温度传感器DS18B20转换后的温度数据,并将实时温度显示出来。
温度转换分辨率自定。
题目二、单片机控制的8*8点阵
要求:用实验台上的8*8点阵显示汉字“电子信息科学与技术系”。
汉字编码可用“取字模软件提取”
题目三、液晶LCD显示
要求:用实验台上的16列*1行的字符LCD显示器显示两屏字符:Welcome!Design By 姓名
题目四、模拟门铃呼叫器
要求:用矩阵键盘输入房间号码,同时将输入的房间号码显示出来。
有能力者可进一步添加“取消”和“确认”按键,实现误输入的清除和输入正确号码后的确认。
题目五、秒表设计
要求:用单片机内部的定时器设计一个秒表,可以用按键控制秒表的启动、停止、重置。
时间用LED或LCD显示。
题目六、LCD显示日历
要求:在单片机内设置一个初始时间(包含年月日时分秒),该时间在LCD上显示出来。
单片机一上电运行,该日历可以实时更新时间。
题目七、数字电压表设计
要求:用AD转换器测量0~5V的直流电压信号(由电位器给出),将电压显示出来。
题目八、自选。
单片机实训测验题1.两个数码管显示的初始值为00,利用利用一个按键启动按一秒加一计数(用T0定时实现),另外一个按键实现清零效果。
姓名姓名2. 设计一速度检测装置(即频率检测),当频率低于20HZ时,灯1亮,表示速度过低,当频率高于50HZ时,灯2亮,表示速度过高,20~50HZ之间速度正常,灯1,灯2均灭。
姓名姓名3.单片机通电后,8个发光二极管实现循环彩灯效果,代表系统处于待机状态,当一启动按键按下时,数码管启动30秒的倒计时,到0时,又回到循环彩灯状态。
姓名姓名4.对按键开关的按键次数进行计数,计数到20时,蜂鸣器(可用LED发光二极管代替)鸣叫3秒并回到0继续计数,用两个数码管显示。
姓名姓名5.利用1个按键开关实现4种循环彩灯效果的顺序切换,彩灯移位的时间间隔为0.2秒,利用另外一个按键控制彩灯的停启。
姓名姓名6. 工业流水线控制模拟程序;由按键启动电机的运行,1号电机运行10秒后停止,接着2号电机运行20秒后停止,接着3号电机运行30秒停止,回到初始等待状态。
姓名姓名7. 实现左循环递增、左循环递减、右循环递增、右循环递减四种循环彩灯效果,利用一按键控制循环彩灯的速度在0.5秒和0.1秒之间切换姓名姓名8. 四个数码管动态扫描显示,右边两个实现0~30秒加一计数,左边两个数码管显示30~0秒减一计数。
加一计数与减一计数同时进行。
姓名姓名9.利用T0的定时功能实现从0到20加一计数,时间间隔为1秒,当加到20后进行减一计数,如此循环往复,由两个数码管显示姓名姓名10.编程频率计程序,实现频率为30~99HZ赫兹频率信号的测量,当频率大于99HZ时,数码管显示“F”表示溢出,用两个数码管动态扫描显示。
姓名姓名11.利用T0的定时功能实现从0到300以0.1秒时间间隔加一计数,到300时停止计数,发光二极管闪烁,代表时间到,清零键按下时,发光二极管停止闪烁,回到0重新开始加一计数。
(由三个数码管动态扫描显示)姓名姓名12.利用T0的定时功能实现从0到60的加一计数,2个数码管动态扫描显示,时间间隔为0.5秒,当加到60时回到0,中途暂停键按下时可使显示停止,清零按键按下时实现清零效果。
《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例第01 篇基础程序设计01 闪烁的LED/* 名称:闪烁的LED说明:LED按设定的时间间隔闪烁*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED=P1^0;//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){while(1){LED=~LED;DelayMS(150);}}02 从左到右的流水灯/* 名称:从左到右的流水灯说明:接在P0口的8个LED从左到右循环依次点亮,产生走马灯效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){P0=0xfe;while(1){P0=_crol_(P0,1); //P0的值向左循环移动DelayMS(150);}}03 8只LED左右来回点亮/* 名称:8只LED左右来回点亮说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){uchar i;P2=0x01;while(1){for(i=0;i<7;i++){《单片机C 语言程序设计实训100例---基于8051和PROTEUS仿真》案例P2=_crol_(P2,1); //P2的值向左循环移动DelayMS(150);}for(i=0;i<7;i++){P2=_cror_(P2,1); //P2的值向右循环移动DelayMS(150);}}}04 花样流水灯/* 名称:花样流水灯说明:16只LED分两组按预设的多种花样变换显示*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code Pattern_P0[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff};uchar code Pattern_P2[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff3 上海师范大学信息与机电工程学院—倪继锋};//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){uchar i;while(1){ //从数组中读取数据送至P0和P2口显示for(i=0;i<136;i++){P0=Pattern_P0[i];P2=Pattern_P2[i];DelayMS(100);}}}05 LED模拟交通灯/* 名称:LED模拟交通灯说明:东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮,红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。
《单片机基础与实训》试题四班级: 姓名: 学号:一、填空题(每空1分,共15分)1.MCS—51单片机的P0—P4口均是_______I/O口,其中的P0口和P2口除了可以进行数据的输入、输出外,通常还用来构建系统的_______和_______,在P0—P4口中,_______为真正的双向口,_______为准双向口。
2.访问8031片外数据存储器MOVX指令采用的是_______寻址方式;访问片外程序存储器MOVC指令采用的是_______寻址方式。
3.MCS—51单片机外部中断请求信号有电平方式和_______,在电平方式下,当采集到INT0、INT1的有效信号为_______时,激活外部中断。
4.定时器/计数器的工作方式3是指的将_______拆成两个独立的8位计数器。
而另一个定时器/计数器此时通常只可作为_______使用。
5.MCS—96单片机的最大寻址空间是_______,该空间的地址范围为_______,系统上电及复位的程序入口地址为_______,芯片配置字节CCB的地址为_______。
二、简答题(每题5分,共15分)1.51系列单片机具有几个中断源,分别是如何定义的?其中哪些中断源可以被定义为高优先级中断,如何定义?2.各中断源对应的中断服务程序的入口地址是否能任意设定?3.如果想将中断服务程序放置在程序存储区的任意区域,在程序中应该作何种设置?请举例加以说明。
三、参数计算题(共16分)1.已知一单片机系统的外接晶体振荡器的振荡频率为11.059MHz,请计算该单片机系统的拍节P、状态S、机器周期所对应的时间是多少?指令周期中的单字节双周期指令的执行时间是多少?四、改错题(共5分,每小题1分)以给出的指令操作码为依据,请判断MCS—5l单片机的下列各条指令的书写格式是否有错误,如有请说明错误原因。
1.MUL R0R12.MOV A,@R73.MOV A,#3000H4.MOVC @A+DPTR,A5.LJMP #1000H五、寻址方式(5分,每问1分)说明MCS—51单片机的下列各条指令中源操作数的寻址方式(可直接在每条指令后面书写)1.ANL A,20H2.ADDC A,#20H3.JZ rel4.CLR C5.RRA六、指令序列 (12分)1.请将片外RAM20H—25H单元清零2.请将ROM3000H单元内容送R7七、编程题(18分)1.已知一MCS—51单片机系统的片内RAM 20H单元存放了一个8位无符号数7AH,片外扩展RAM的8000H存放了一个8位无符号数86H,试编程完成以上两个单元中的无符号数相加,并将和值送往片外RAM的01H、00H单元中,同时将所编写程序运行完成后的数据和状态添入下表中给出的PSW的有关位以及寄存器A、DPTR和RAM单元中。
1234,要求用按键修改数码管上的值一个按键作位选键、一个作加1键。
0000,要求实现电子钟功能,只显示分秒,按键用来校正电子钟的时间,一个按键作位选键、一个作加1键。
3、如下图所示,数码管初始显示12345678,要求用按键修改数码管上的值一个按键作位选键、一个作加1键。
4、如下图所示,甲乙两单片机,在甲单片机上有两按键,在乙单片机上有4只数码管,初始显示1234,要求用甲单片机的按键修改乙单片机上数码管的值一个按键作位选键、一个作加1键。
信号发生器,产生频率为1K的信号,用单片机测出此信号源的频率,并将频率值用16进制的方式显示在4位数码管上。
信号,此信号频率为1K,用单片机测出此信号源的每个周期中高电平的持续时间(测脉宽),并将测脉宽值用16进制的方式显示在4位数码管上。
一、数码管+按键disbuf0 equ 30hdisbuf1 equ 31hdisbuf2 equ 32hdisbuf3 equ 33hORG 0000hajmp mainmain:mov sp, #70hmov disbuf0, #4mov disbuf1, #3mov disbuf2, #2mov disbuf3, #1mov r4, #0mov r5, #0loop:call displaycall keyajmp loopdisplay:mov p2, #-1mov a, #disbuf0add a, r5mov r0, amov a, @r0mov dptr, #disptabmovc a, @a+dptrmov p0, amov dptr, #weitabmov a, r5movc a, @a+dptrmov p2, ainc r5cjne r5, #4, dispokmov r5, #0dispok:retdisptab:DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FHweitab:DB 0F7H,0FBH,0FDH,0FEHkey:jnb p3.0, key_seljnb p3.1, key_incajmp keyokkey_sel:inc r4cjne r4, #4, sel_upmov r4, #0sel_up:jnb p3.0, $ajmp keyokkey_inc:mov a, #disbuf0add a, r4mov r0, ainc @r0cjne @r0, #10, inc_upmov @r0, #0inc_up:jnb p3.1, $ajmp keyokkeyok:retend二、电子钟buf0 EQU 30Hbuf1 EQU 31Hbuf2 EQU 32Hbuf3 EQU 33Hcount_S EQU 40Hcount_M EQU 41HORG 0000HAjmp MainORG 001BHAjmp inter_T1 ;R5数码管个数;R0,R1送地址中的值Main: ;R2计数CALL init_T1MOV sp, #70HMOV R5, #0MOV buf0, #0MOV buf1, #0MOV buf2, #0MOV buf3, #0Loop:CALL DisplayAJMP Loopinit_T1:MOV A, TMODANL A, #0FH ;高四位清零,低四位保留ORL A, #10HMOV TMOD, AMOV TH1, #HIGH(-10000)MOV TL1, #LOW(-10000)SETB ET1SETB EASETB TR1RETinter_T1:PUSH ACCPUSH PSWINC R2CJNE R2, #100, Wait_SMOV R2, #0INC count_SMOV A, count_SCJNE A, #60, dealnumMOV count_S, #0INC count_MMOV A, count_MCJNE A, #60, dealnumMOV count_M, #0dealnum:CALL HextoBCDWait_s:MOV TH1, #HIGH(-10000)MOV TL1, #LOW(-10000)POP PSWPOP ACCRETIHextoBCD:MOV A, count_MMOV B, #10DIV ABMOV buf3, AMOV buf2, BMOV A, count_SMOV B, #10DIV ABMOV buf1, AMOV buf0, BRETDisplay:MOV P2,#-1MOV A, #buf0ADD A, R5MOV R0, AMOV A, @R0MOV DPTR, #DispTabMOVC A, @A+DPTRMOV P0, AMOV DPTR, #WeiTabMOV A, R5MOVC A, @A+DPTRMOV P2, AINC R5CJNE R5, #4, DispokMOV R5, #0Dispok:RETDispTab:DB 3FH, 06H, 5BH, 4FH, 66H, 6DHDB 7DH, 07H, 7FH, 6FH, 76H WeiTab:DB 0F7H,0FBH,0FDH,0FEHEND三、八位数码管+573disbuf0 equ 30hdisbuf1 equ 31hdisbuf2 equ 32hdisbuf3 equ 33hdisbuf4 equ 34hdisbuf5 equ 35hdisbuf6 equ 36hdisbuf7 equ 37hORG 0000Hajmp mainmain: mov sp,#70hmov disbuf0,#8mov disbuf1,#7mov disbuf2,#6mov disbuf3,#5mov disbuf4,#4mov disbuf5,#3mov disbuf6,#2mov disbuf7,#1mov r5,#0mov r4,#0loop: call disp;call delaycall keyajmp loopdisp: mov a,#disbuf0add a,r5mov r0,amov a,@r0mov p0,#-1setb p3.0clr p3.0mov dptr,#distabmovc a,@a+dptrmov p0,asetb p2.0clr p2.0mov dptr,#weitabmov a,r5movc a,@a+dptrmov p0,asetb p3.0clr p3.0inc r5cjne r5,#8,disokmov r5,#0disok: retkey: jnb p3.6,key_seljnb p3.7,key_incretkey_sel: inc r4cjne r4,#8,key_upmov r4,#0key_up: jnb p3.6,$retkey_inc: mov a,#disbuf0add a,r4mov r0,amov a,@r0inc acjne a,#10,upmov a,#0up: jnb p3.7,$mov @r0,aret;delay: mov r7,#0fh;l1: mov r6,#0fh; djnz r6,$; djnz r7,l1; retdistab: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhweitab: db 07fh,0bfh,0dfh,0efh,0f7h,0fbh,0fdh,0fehend四、串行通信- 按键ORG 0000Hajmp mainmain:mov sp, #70call init_esloop:call keyajmp loopkey:jnb P1.6, key_seljnb p1.7, key_incajmp keyokkey_sel:jnb p1.6, $mov a, #01hmov sbuf ,ajnb ti, $clr tiajmp keyokkey_inc:jnb p1.7, $mov a, #02hmov sbuf, ajnb ti, $clr tikeyok:retinit_es:mov a, tmodanl a, #0fhorl a, #20hmov tmod,amov scon, #50hmov th1, #(-11059200/(384*9600))setb essetb easetb tr1retend串行通信-接收disbuf0 equ 30hdisbuf1 equ 31hdisbuf2 equ 32hdisbuf3 equ 33horg 0000hajmp mainorg 0023hajmp inter_esmain:mov sp, #70hmov r4, #0mov r5, #0mov disbuf0, #1mov disbuf1, #2mov disbuf2, #3mov disbuf3, #4call init_esloop:call displayajmp loopinit_es:mov a, tmodanl a, #0fhorl a, #20hmov tmod, amov scon, #50hmov th1, #(-11059200/(384*9600))setb essetb easetb tr1retinter_es:push accpush pswclr rimov a, sbufcjne a, #01h, next_incinc r4cjne r4, #4, interokmov r4, #0ajmp interoknext_inc:cjne a, #02h, interokmov a, #disbuf0add a, r4mov r0, ainc @r0cjne @r0, #10, interokmov @r0, #0interok:pop pswpop accretidisplay:mov a, #disbuf0add a, r5mov r0, amov a, @r0mov p2, #-1mov dptr, #disptabmovc a, @a+dptrmov p0, amov dptr, #weitabmov a, r5movc a, @a+dptrmov p2, ainc r5cjne r5, #4, dispokmov r5, #0dispok:retdisptab:db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h, 7fh, 6fh weitab:db 0f7h, 0fbh, 0fdh, 0fehend五、测频率disbuf0 equ 30hdisbuf1 equ 31hdisbuf2 equ 32hdisbuf3 equ 33horg 0000hajmp mainorg 001bhajmp inter_t1main:mov sp, #70hcall init_t1loop:call displayajmp loopinit_t1:mov tmod, #15hmov th0, #0mov tl0, #0mov th1, #high(-10000)mov tl1, #low(-10000)setb et1setb easetb tr1setb tr0retinter_t1:push accpush pswinc r2mov th1, #high(-10000)mov tl1, #low(-10000)cjne r2, #100, okmov r2, #0clr tr0clr tr1call hextobcdmov th0, #0mov tl0, #0setb tr1setb tr0ok:pop pswpop accretihextobcd:mov a, th0mov b, #16div abmov disbuf3, amov disbuf2, bmov a, tl0mov b, #16div abmov disbuf1, amov disbuf0, bretdisplay:mov p2, #-1mov a, #disbuf0add a, r5mov r0, amov a, @r0mov dptr, #disptabmovc a, @a+dptrmov p0, amov dptr, #weitabmov a, r5movc a, @a+dptrmov p2, ainc r5cjne r5, #4, dispokmov r5, #0dispok:retdisptab:DB 3fh,06h, 5bh,4fh, 66h, 6dh, 7dh, 07h, 7fh, 6fh, 77h,7CH, 49H, 51H, 79H, 71Hweitab:DB 0F7H,0FBH,0FDH,0FEHEnd六、测脉宽disbuf0 equ 30hdisbuf1 equ 31hdisbuf2 equ 32hdisbuf3 equ 33horg 0000hajmp mainmain:mov sp, #70call init_t1loop:call pulsecall displayajmp loopinit_t1:mov a, tmodanl a, #0fhorl a, #90hmov tmod, aretpulse:mov th1, #0mov tl1, #0jb p3.3, $jnb p3.3, $setb tr1jb p3.3, $clr tr1call hextobcdhextobcd:mov a, th1mov b, #16div abmov disbuf3, amov disbuf2, bmov a, tl1mov b, #16div abmov disbuf1, amov disbuf0, bretdisplay:mov p2, #-1mov a, #disbuf0add a, r5mov r0, amov a, @r0mov dptr, #disptabmovc a, @a+dptrmov p0, amov dptr, #weitabmov a, r5movc a, @a+dptrmov p2, ainc r5cjne r5, #4, dispokmov r5, #0dispok:retdisptab:DB 3FH, 06H, 5BH, 4FH, 66H, 6DHDB 7DH, 07H, 7FH, 6FH, 77H, 7CH, 49H, 5EH, 79H, 71HWeiTab:DB 0F7H,0FBH,0FDH,0FEHEND。
单片机实训题目一:温度控制系统一、实训目的1. 熟练单片机系统开发的一般过程2. 掌握基于单片机的控制系统组建3. 熟悉单片机外围电路的连接及设计二、实训设备1. 单片机开发板(带蜂鸣器、DS18B20及LED小灯)一块2. PC机(安装有Keil uVision,及ISP烧写软件)一台三、实训内容设计并实现一个温度测量报警系统,系统可测量0~120℃区间的温度,测量结果动态显示到LED数码管上,当测量温度超过34℃时,系统发出声光报警。
四、相关知识点简介1. 数字式温度传感器DS18B20的使用DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
DS18B20采用1-wire单总线与控制器实现通信,1-wire 单总线是Maxim全资子公司Dallas 的一项专有技术,它采用单根信号线,既传输时钟又传输数据而且数据传输是双向的。
它具有节省I/O 口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。
关于DS18B20的更多特性及参数请参阅pdf数据手册。
2. 蜂鸣器相关知识一般而言,单片机系统中使用的是小型蜂鸣器,又分为有源蜂鸣器和无源蜂鸣器两类。
有源蜂鸣器内部带震荡源,所以只要一通电就会发声。
而无源蜂鸣器内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用一定频率的方波去驱动它。
有源蜂鸣器往往比无源的贵,因此,多数开发板上标配的均为无源蜂鸣器,其连接电路如图1-1所示。
也就是说,为了让蜂鸣器发出声音,单片机的管脚必须给蜂鸣器电路输出一个占空比为50%的方波,方波的频率决定音阶(注意:与音色及声强无关)。
设计任务①用单片机3个I/O口连接18个发光二极管,并排列成霓虹灯的模式。
②电路启动后,编程使P0口、P1口和P2口所接的发光二极管从第1个到第8个逐个被点亮,点亮时间保持一段时间,最后不断重复。
③分别按三个开关,编程实现:模式一、模式二和模式三如图所示显示模式。
④采用Proteus仿真软件设计硬件电路与编辑程序,在仿真中验证设计结果。
任务驱动三:交通电子秒表的设计与仿真设计任务①用数码管输出9~0的时间显示电路,以每秒钟跳变递减。
②用红色指示灯表示禁止通行,绿色灯表示允许通行。
设计任务①用两位数码管对外部脉冲信号进行计数,计数值最大为50,计满后又从0开始。
要求采用动态扫描的方法,编程实现端口数据的显示。
用两个数码管显示计数值,显示最大值为60。
②用光电耦合器件代替光电传感器,通过按键开关送出脉冲信号作为计数统计量。
任务驱动五、蓝球24S计时器的设计与仿真设计任务①用两位数码管实现蓝球24秒计时器的电路设计。
定时器从24秒开始倒计时,当显示时间为0时发出警示声。
②该计时器具有启动、暂停和清零功能。
任务驱动六、全方位交通信号灯电路设计与仿真设计任务①在行动导向六的基础上完成双通道指示灯和时间显示。
②设计人行道指示灯显示,并且要与双通道车辆指示同步。
任务驱动七:LED点阵电梯楼层显示电路的设计设计任务①用8×8LED点阵显示器,实现电梯运行方向和楼层显示。
②当电梯向上运行时,楼层号逐渐往上移动并用向上的三角形发光图像表示;若电梯向下运行时,楼层号逐渐往下移动并用向下的三角形发光图像表示。
九江职业技术学院课程设计课程:单片机课程设计题目:3乘3矩阵键盘设计班级:电气综1001姓名:田东指导老师:倪志莲目录1.课题要求*******************12.设计思路*******************23.硬件设计(仿真图)*********34.软件设计(软件程序)*******45.调试过程*******************56.个人总结*******************61.矩阵键盘的基本要求:实现9个按键键值从0~8显示,如果按下按键值9得时候,会显示字母F,而扩展要求:实现32个按键值从0~31显示,按下那个就会显示那个数字,如果按下32时就会显示FF.在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成3*3=9个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成12键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
键盘的操作方法:(1)、判断键盘中有无键按下将全部行线Y1-Y3置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与3根行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
(2)、判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
2设计思路:对于设计思路我想用流程图更能体现出程序的设计过程,更能够清晰的看出程序,同时在编写程序的时候思路也会很清晰,即使有外界的干扰也不会打乱自己有条不紊的设计过程,最主要的一点是能够让读程序的人更快的读懂程序,让读者能够知道编程的过程,以及编程的目的,甚至会练先想到编程的结果,这就是流程图的好处,只要流程图清晰明了,那么对于程序已经完成了50%,所以可见流程图的重要性。
上机考试操作要求(1)在桌面文件夹,用学号姓名命名。
将上机操作所有文件均建立在该文件夹内。
(2)按题目要求应用PROTEUS软件完成硬件图的绘制。
(3)用KEIL软件编写程序实现题目要求。
(4)进行仿真调试。
题目:1、设计单片机外接4位数码管的动态显示接口电路,编程实现4位数码管显示稳定的12342、设计单片机外接4位数码管的动态显示接口电路,编程实现4位数码管显示稳定的56783、设计单片机外接4位数码管的动态显示接口电路,编程实现4位数码管显示稳定的98764、设计单片机外接4位数码管的动态显示接口电路,编程实现4位数码管显示稳定的02465、设计单片机外接4位数码管的动态显示接口电路,编程实现4位数码管显示稳定的13576、设计单片机外接1位数码管和一个按键的电路。
编程实现:程序启动后,数码管不显示,当按键按下并释放后数码管循环显示0~9,当按键再次按下并释放后暂停显示。
循环该过程。
7、设计单片机外接1位数码管和2个按键的电路。
编程实现:程序启动后,数码管不显示,当按键1按下并释放后数码管循环显示0~9,当按键2按下并释放后暂停显示。
8、设计单片机外接1位数码管和一个按键的电路。
编程实现:程序启动后,后数码管循环显示0~9,当按键按下并释放后数码管暂停显示,当按键再次按下并释放后继续显示。
9、设计单片机外接1位数码管和2个按键的电路。
编程实现:程序启动后,数码管循环显示0~9,当按键1按下并释放后暂停显示。
当按键2按下并释放后继续显示。
10、设计单片机外接8个发光二极管的电路。
编程实现:8个发光二极管从第1个到第8个轮流显示的程序,每位显示停留时间以能识别为准。
11、设计单片机外接8个发光二极管的电路。
编程实现:8个发光二极管的1、3、5、7同时显示,停留一段时间后,2、4、6、8再同时显示,停留一段时间,循环显示。
12、设计单片机外接8个发光二极管的电路。
编程实现:8个发光二极管1、3、5、7同时显示,停留一段时间后,2、4、6、8再同时显示,停留一段时间,循环显示。
一流水灯控制(一个人一组,报告有擂同记为不及格)
基本要求:
1,设计一个单片机控制流水灯的驱动电路;
2,LED的个数要求大于16个;
3,实现流水灯;
扩展部分:
1,通过按键改变流水灯流动的状态;
2,其他;
二基于51单片机的电子记分牌(一个人一组,报告有擂同记为不及格)基本要求:
1,制作一个数码管显示的计分电路;
2,电子计分范围为0~99;
3,通过按键实现分数的加减;
扩展要求:
1,每次按键按下都有声光提示;
2,其他;
三电子拔河机(比较难,可以三人一组,报告有擂同记为不及格)基本要求:
1,制作一个电子拔河机电路,由一排LED发光二级管表示拔河的“电子绳”;
2,有裁判按钮;
扩展部分
1,获胜一方有声光提示;
2,其他;
四简易抢答器(一个人一组,报告有擂同记为不及格)
基本要求:
1,制作一个数码管显示的抢答器电路;
2,显示的选手号码为:0-9;
3,有裁判功能和清零功能;
4,抢答成功后要求有声光提示;
扩展部分:
1,增加选手个数;
2,其他;
五打地鼠娱乐机(比较难,可以三人一组,报告有擂同记为不及格)基本要求
1,制作一个数码管显示电路;
2,显示成功击打地鼠的个数,范围为:0-99;
3,地鼠个数为6个;(LED发光二级管表示地鼠)
扩展部分:
1,地鼠个数增加;
2,有难度调节按键
3,其他
六光控延时灯(可以一人或二人一组,报告有擂同记为不及格)
基本要求
1,制作光敏电阻检测电路;
2,当有光线时,LED灭一段时间;无光线时,LED亮一段时间。
扩展部分:
1,增加声控功能(有声无光时,LED亮一段时间);
2,可以调节LED亮的时间。
七计数器(可以一人或两人一组,报告有擂同记为不及格)
基本要求
1,制作红外对射检测电路,检测距离10cm;
2,两位静态显示数管码,显示通过红外对射线物体的次数。
3,当次数超过12时,显示清零同时声光报警。
扩展部分:
1,报警次数可调;
八题目自选,但必须与指导老师商量,经批准后方可进行设计。
注意:
(1)各班级填好附录一、二。
(2)元件统计最好以宿舍为单位,宿舍长统计好后交给班长进行班级汇总。
元件不要多买,用多少买多少!!!不要怕没有元件用,老师会多买一些常用的元件。
在号前统计好,未统计好的同学,自行购买元件(不予报销)。
(3)每个题目每个班只允许3个队相同,每个组只能买一个单片机。
(4)报告为3千字左右。
格式以数电报告格式为准。
班长在收报告时,若有同学格式不同,请让其改正!!!
附录1 电信XXX班实训题目统计表
附录2 电信XXX班元件统计表。