以下程序为一个用状态机构成的交通灯,其中LEDR_H、LEDG_H、LEDY_H,为一个方向的红、绿、黄灯,LEDR_V、LEDG_V、LEDY_V,为另一个方向的红、绿、黄灯,Clk为频率为1Hz的时钟,则以下说法中正确的是 reg [1:0]state; always@(posedge Clk or negedge Rst) begin if(!Rst) begin LedR_H <= 0; ledg_h ledr_v ledg_v ledy_h ledy_v end else begin case(state) s1: ledr_h state s2: s3: if(cnt35>=30) begin LedR_H <= 1; ledg_h ledr_v ledg_v ledy_h ledy_v end else state s4: begin if(cnt35>=30) begin LedR_H <= 0; ledg_h ledr_v ledg_v ledy_h ledy_v end else state default: begin ledr_h endcase> A、该状态机是moore型
B、黄灯每次亮5秒
C、红灯每次亮35秒
D、绿灯每次亮35秒
第2题
实验题目(一) 实现梦幻LED显示 完成目标 梦幻LED灯按照下面规律变化,(自动化专业+自实) (1)第1s,8个LED全亮。 (2)第2s,8个LED全灭。 (3)第3s开始,LED开始从最右向左移动,当移动到最左边时。 (4)LED开始从最左边向最右移动,当移到最右边时。 (5)8个LED其中4个LED间隔亮,剩下4个LED间隔灭。 (6)返回(1),周而复始的变化。 2, 要求设计中,所有出现的变量,网络名字以 xxxx_学号后3位的形式命名!!! 3. 完成要求1,最多得到85分,剩下15分发挥部分,不得出现任何雷同的设计内容!!! 4. 引脚约束条件,参考教材第7章内容的设计原理部分。 5。建议方案(1)采用状态机 ; (2)使用计数器,输出驱动case语句的描述方式。 6。实验完成后,将设计代码和设计中的分析整理成设计报告,上传。 7。实验报告不得出现任何雷同内容,将根据实验报告评估完成实验的质量。 8。实验限时2小时完成,实验报告在一天内完成,请同学预先准备。 实验题目(二)计数器的设计(测控专业) 1. 实现N=12、(测控1班)、N=13(测控2班)和N=15(测控3班)进制计数器的设计。 (1)计数器以2Hz频率,开始从0,递增计数到N,然后,从N递减计数到0。 (2)可以控制计数器的暂停和连续工作。 (3)可以设置计数器的计数初值,然后从计数初值开始递增计数,然后按(2)继续。 (4)当计数器溢出时,用一个LED指示一下。 2. 要求设计中,所有出现的变量,网络名字以 xxxx_学号后3位的形式命名!!! 3. 完成要求1,最多得到85分,剩下15分发挥部分,不得出现任何雷同的设计内容!!! 4. 引脚约束条件,参考教材第7章内容的设计原理部分。 5. 实验完成后,将设计代码和设计中的分析整理成设计报告,上传。 6. 实验报告不得出现任何雷同内容,将根据实验报告评估完成实验的质量。 7. 实验限时2小时完成,实验报告在一天内完成,请同学预先准备。
第3题
单片机的 P34、P35、P36、P37口分别接LED1、LED2、LED3、LED4, 输出低电平点亮LED灯,P20、P21口分别接按键K1、K2,按键按下输入单片机为低电平,程序如下: #include<reg52.h> sbit K1=P2^0; sbit K2=P2^1; bit flag_add=0,flag_rdu=0; void Delay10ms(unsigned char i) //@11.0592MHz { unsigned char j; i =i* 18;j = 235; do{ while (--j); } while (--i); } void main() { char i=0; while(1) { if(K1==0) { flag_add=1;flag_rdu=0; } if(K2==0) { flag_add=0;flag_rdu=1; } if(flag_add)i++; if(flag_rdu)i--; Delay10ms(10); P3=~(i<<4); if(i>=16)i=0; if(i<0)i=15; }> A、按下K1后,4个LED组成0-15的自动减法计数器;
B、按下K1后,4个LED组成0-15的自动加法计数器;
C、按下K2后,4个LED组成0-15的自动减法计数器;
D、在无按键按下的情况下,4个灯全灭。
第4题
题43图
ORG 0000H
AJMP START
ORG ① ;定时器T0入口地址
MOV TL0,0B0H
MOV TH0,3CH
DJNZ 30H, ②
MOV A,R7
INC A
ANL A, ③ H
MOV R7,A
ADD A,T0_5-1D_1
MOVC ④
T0_1: MOV P1,A
MOV 30H,10 ;第2和第4种状态的计数次数
CJNE R7,0,T0_2
MOV 30H, ⑤ ;第1种状态的计数次数
SJMP T0_3
T0_2: CJNE R7,2,TD_3
MOV 30H, ⑥ ;第3种状态的计数次数
T0_3: RETI
T0_5: DB 0DEH, ⑦ H,0F3H,0E5H
;每种状态的显示代码(没用到的引脚输出应为“1”)
START: MOV TMOD,01H
MOV TL0,0BOH
MOV TH0,3CH
MOV 30H,200
MOV R7,0
MOV IE,82H
SETB ⑧
MOV P1,0DEH
LOOP: SJMP LOOP
①______; ②______; ③______; ④______;
⑤______; ⑥______; ⑦______;⑧______。
附:有关特殊功能寄存器各位内容:
第5题
单片机的P34、P35、P36、P37口分别接LED1、LED2、LED3、LED4,输出低电平点亮LED灯, P20口接按键K1,按键按下时单片机输入低电平,程序如下: #include<reg52.h> sbit key = P2^0; unsigned char count = 0; unsigned char tab1[]={0xcf,0x3f}; //LED状态 unsigned char tab2[]={0x0f,0xff}; //LED状态 unsigned char n; void delay(unsigned int i) { unsigned int j; for(;i>0;i--) for(j=0;j<125;j++) {;} } void main() { while(1) if(key="=0)" delay(10); count++; while(!key); if(count="=3)" count="1;" for(n="0;n<2;n++)" p3="tab1[n];" delay(100);> A、第1次按键,P34、P35的2个LED和P36、P37的2个LED轮流亮灭;
B、第2次按键,4个LED同时亮灭;
C、按1次按键,P34、P35、P36、P37的4个LED依次亮灭;
D、第3次按键,P34、P35的2个LED和P36、P37的2个LED轮流亮灭。
第6题
单片机的P34、P35、P36、P37口分别接LED1、LED2、LED3、LED4,输出低电平点亮LED灯, P32口接按键K1,按键按下时单片机输入低电平,程序如下: #include <reg51.h> unsigned char key = 0; void main(void ) { char map0[4] = { 0x7f, 0xbf, 0xdf,0xef }; //LED状态数据 char map1[2] = { 0x3f, 0xcf }; //LED状态数据 unsigned char i = 0; int j = 0; IT0 = 1; EX0 = 1; EA = 1; while (1 ) { i ++; switch (key ) { case 0: {P3 = map0[i % 4 ]; break;} case 1: {P3 = map1[i % 2 ]; break; } } for (j = 0; j < 0x4000; j ++ ); } } void int0(void ) interrupt 0 using 0 { key ++; if(key==2)key=0; }
A、初始状态,4个LED轮流亮灭;
B、第1次按键,P34、P35的2个LED和P36、P37的2个LED轮流亮灭;
C、第2次按键,4个LED轮流亮灭
D、第3次按键,P34、P35的2个LED和P36、P37的2个LED轮流亮灭。
第8题
A.在无按键按下的情况下,初始界面为2个LED灭;
B.K1按下,LED1亮;
C.K2按下,LED1亮;
D.K2按下,LED1与LED2全亮。
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!