基于单片机的421542154光立方课程设计(编辑修改稿)内容摘要:
8D}, {0x95,0x81,0x54,0x09,0xDD,0x12,0x08,0x85}, {0x95,0x01,0x54,0x09,0xC9,0x12,0x08,0x85}, {0x95,0x01,0x54,0x01,0x89,0x12,0x08,0x84}, {0x95,0x01,0x40,0x01,0x89,0x02,0x08,0x80}, {0x95,0x00,0x40,0x01,0x88,0x02,0x08,0x00}, {0x94,0x00,0x00,0x00,0x88,0x00,0x08,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, }。 int j,k,i。 if(c==1) P3 = 0X00。 else if(c==2) P0 = 0X00。 else { P3 = 0XFF。 P0 = 0XFF。 } for(j=0。 j23。 j++) { for(k=0。 k10。 k++) { for(i=0。 i8。 i++) { // P0=0。 P2=tabP2[i]。 if(c == 1) P0=tabP0[j][i]。 else if(c == 2) P3 = tabP0[j][i]。 else P0=tabP0[j][i]。 DELAY_MS(time)。 } } } } void Righttoleft(uchar c,uchar time) //右面平移到左面 { unsigned char code tabP0[4][8]={ {0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F}, {0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0}, {0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00}, {0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00} }。 int j,k,i。 if(c==1) P3 = 0X00。 else if(c==2) P0 = 0X00。 else { P3 = 0XFF。 P0 = 0XFF。 } for(j=0。 j4。 j++) { for(k=0。 k10。 k++) { for(i=0。 i8。 i++) { // P0=0。 P2=tabP2[i]。 if(c == 1) P0=tabP0[j][i]。 else if(c == 2) P3 = tabP0[j][i]。 else { P0=tabP0[j][i]。 P3 = tabP0[j][i]。 } DELAY_MS(time)。 } } } } void Lefttoright(uchar c,uchar time) //左面平移到右面 { unsigned char code tabP0[4][8]={ {0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00}, {0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0}, {0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F} }。 int j,k,i。 if(c==1) P3 = 0X00。 else if(c==2) P0 = 0X00。 else { P3 = 0XFF。 P0 = 0XFF。 } for(j=0。 j4。 j++) { for(k=0。 k10。 k++) { for(i=0。 i8。 i++) { // P0=0。 P2=tabP2[i]。 if(c == 1) P0=tabP0[j][i]。 else if(c == 2) P3 = tabP0[j][i]。 else P0=tabP0[j][i]。 DELAY_MS(time)。 } } } } void turnD(uchar c,uchar time) //从右面到下面 { unsigned char code tabP0[6][8]={ {0x00,0x00,0x00,0x00,0xF0,0x0F,0x0F,0x0F}, {0xF0,0x00,0x00,0x00,0x00,0xF0,0x0F,0x0F}, {0x0F,0xF0,0x00,0x00,0x00,0x00,0xF0,0x0F}, {0x00,0x0F,0xF0,0x00,0x00,0x00,0x00,0xFF}, {0x00,0x00,0x0F,0xF0,0x00,0x00,0x00,0xFF}, {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF} }。 int j,k,i。 if(c==1) P3 = 0X00。 else if(c==2) P0 = 0X00。 else { P3 = 0XFF。 P0 = 0XFF。 } for(j=0。 j6。 j++) { for(k=0。 k10。 k++) { for(i=0。 i8。 i++) { // P0=0。 P2=tabP2[i]。 if(c == 1) P0=tabP0[j][i]。 else if(c == 2) P3 = tabP0[j][i]。 else P0=tabP0[j][i]。 DELAY_MS(time)。 } } } } void Toptofollowing(uchar c,uchar time) //上面平移到下面 { unsigned char code tabP0[4][8]={ {0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00}, {0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00}, {0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00}, {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF}, }。 int j,k,i。 if(c==1) P3 = 0X00。 else if(c==2) P0 = 0X00。 else { P3 = 0XFF。 P0 = 0XFF。 } for(j=0。 j4。 j++) { for(k=0。 k10。 k++) { for(i=0。 i8。 i++) { // P0=0。 P2=tabP2[i]。 if(c == 1) P0=tabP0[j][i]。 else if(c == 2) P3 = tabP0[j][i]。 else P0=tabP0[j][i]。 DELAY_MS(time)。 } } } } void Followingtotop(uchar c,uchar time) //下面平移到上面 { unsigned char code tabP0[4][8]={ {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF}, {0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00}, {0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00}, {0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00}, }。 int j,k,i。 if(c==1) P3 = 0X00。 else if(c==2) P0 = 0X00。 else { P3 = 0XFF。 P0 = 0XFF。 } for(j=0。 j4。 j++) { for(k=0。 k10。 k++) { for(i=0。 i8。 i++) { // P0=0。 P2=tabP2[i]。 if(c == 1) P0=tabP0[j][i]。 else if(c == 2) P3 = tabP0[j][i]。 else P0=tabP0[j][i]。 DELAY_MS(time)。 } } } } void Alllight(uchar c,uchar time) //右到左全亮 { unsigned char code tabP0[4][8]={ {0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F}, {0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF}, {0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF}, {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF} }。 int j,k,i。 if(c==1) P3 = 0X00。 else if(c==2) P0 = 0X00。 else { P3 = 0XFF。 P0 = 0XFF。 } for(j=0。 j4。 j++) { for(k=0。 k10。 k++) { for(i=0。 i8。 i++) { // P0=0。 P2=tabP2[i]。 if(c == 1) P0=tabP0[j][i]。 else if(c == 2) P3 = tabP0[j][i]。 else P0=tabP0[j][i]。 DELAY_MS(time)。 } } } } void Evel(uchar c,uchar time) // 斜面亮 { unsigned char code tabP0[7][8]={ {0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xF7}, {0x00,0x00,0x00,0xEC,0x00,0x00,0x00,0x73}, {0x00,0x00,0x00,0x4C,0x00,0x00,0x00,0x23}, {0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21}, {0x00,0x00,0x48,0x48,0x00,0x00,0x21,0x21}, {0x00,0x48,0x48,0x48,0x00,0x21,0x21,0x21}, {0x48,0x48,0x48,0x48,0x21,0x21,0x21,0x21}, }。 int j,k,i。 if(c==1) P3 = 0X00。 else if(c==2) P0 = 0X00。 else { P3 = 0XFF。 P0 = 0XFF。 } for(j=0。 j7。 j++) { for(k=0。 k10。 k++) { for(i=0。 i8。 i++) { P0=0。 P2=tabP2[i]。 if(c == 1) P0=tabP0[j][i]。 else if(c == 2) P3 = tabP0[j][i]。 else P0=tabP0[j][i]。 DELAY_MS(time)。 } } } } void Followtotop(uchar c,uchar time) //上面转移到后面 可以接旋转 { unsigned char code tabP0[10][8]={ {0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00}, {0xEE,0x11,0x00,0x0。基于单片机的421542154光立方课程设计(编辑修改稿)
相关推荐
A 或 B)之一串行输入;任意一个输出端为低电平,禁止新数据输入;在时钟端( clock)脉冲上升沿作用下 Q0 为低电平。 当 A、 B有一个为高电平,则另一 个就允许输入数据,并在 clock 7 上升沿作用下决定 Q0 的状态。 8 个 LED 数码管分别对应 8 个 74LS164,而 74LS164的七个输出分别对应一个数码管的段码。 当有数据来时, 74LS164
单字节指令双机器周期 双字节指令单机器周期 12 双字节指令双机器周期 三字节指令双机器周期 单字节指令四机器周期 (如单字节的乘除法指令 ) 本次设计中 MCU 单片机外接晶振为 12MHz 时具体值为: 振荡周期 (时钟周期 )= 1/12MHz= 1/12μs = 机器周期= 12*1/12μs = 1μs 指令周期= 1~ 4μs 说明: , 12MHz=1210 的 6 次方
时计数器 ,2 个 全双工串行通口 ,此外, AT89S52设计和配置了振荡频率可为 0Hz并可通过软件设置省电模式。 空闲模式下, CPU暂停工作,而 RAM 定时计数器,串行口,外中断 系统可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。 同时该芯片还具有 PDIP、TQFP 和 PLCC 等三 种封装形式,以适应不同产品的需求。 5 图 示
仓库温度监测系统设计与制作 6 非易失 存储器 制造技术制造,与工业标准的 MCS51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪速 存储器 组合在单个芯片中, ATMEL 的 AT89C51是一种高效微控制器。 AT89C51 单片机 为很多 嵌入式控制系统 提供了一种灵活性高且价廉的方案。 AT89C51 引脚功能 AT89C51 单片机为 40 引脚双列直插式封装
六、 各 单元模块设计 单片机最小系统模块 图 单片机最小系统 单片机最小系统包括主芯片,复位电路和晶振脉冲产生电路。 X1 为 12MHz 晶振,与 30Pf 电容并联,产生 1us 的脉冲信号作为单片机的“心脏”部分。 复位电路是开 11 关与 10uf 电容并联组成的上电自动复位电路,在 RST 端为高电平时单片机清零,也即开关按下 会产生清零信号。 RP1为排阻,作为 P0 端的上拉电阻
加简洁,本电子锁的密码锁采用简单易学但不为多数人知道的摩期码作为电路的密码输入。 关于摩斯码的介绍如下: 摩斯密码 是 20世纪使用较为广泛的电报传输使用的一种编码。 电报最早是由美国的摩尔斯在 1844年发明的,故也被叫做摩尔斯电码。 它由 一个输入按键在输入时按住 的间隔时间 长短 组成 来决定你的输入 :短促的点信号 . ,读 嘀 ( Di);保持一定时间的长信号 — ,读 嗒 ( Da)