武汉理工大学《单片机原理与应用》课程设计说明书
仿真结果图
10
4.2
武汉理工大学《单片机原理与应用》课程设计说明书
5 源程序
#include
#define uchar unsigned char sbit k1=P3^0; sbit k2=P3^1; sbit k3=P3^6; sbit k4=P3^7;
uchar z1,z2,z3,z4,z,speed; uchar code hz[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//\武\ 0x20,0x40,0x20,0xC0,0x24,0x7E,0x24,0x40, 0x24,0x40,0xA4,0x3F,0x24,0x22,0x24,0x22, 0x20,0x20,0xFF,0x03,0x20,0x0C,0x22,0x10, 0x2C,0x20,0x20,0x40,0x20,0xF8,0x00,0x00,
//\汉\ 0x10,0x04,0x60,0x04,0x02,0x7C,0x0C,0x03, 0xC0,0x80,0x02,0x80,0x1E,0x40,0xE2,0x20, 0x02,0x13,0x02,0x0C,0x02,0x13,0xE2,0x20, 0x1E,0x40,0x00,0x80,0x00,0x80,0x00,0x00,
//\理\ 0x04,0x20,0x84,0x60,0x84,0x20,0xFC,0x1F, 0x84,0x10,0x84,0x10,0x00,0x40,0xFE,0x44, 0x92,0x44,0x92,0x44,0xFE,0x7F,0x92,0x44, 0x92,0x44,0xFE,0x44,0x00,0x40,0x00,0x00,
//\工\ 0x00,0x20,0x04,0x20,0x04,0x20,0x04,0x20, 0x04,0x20,0x04,0x20,0x04,0x20,0xFC,0x3F, 0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20, 0x04,0x20,0x04,0x20,0x00,0x20,0x00,0x00,
//\大\
0x20,0x80,0x20,0x80,0x20,0x40,0x20,0x20, 0x20,0x10,0x20,0x0C,0x20,0x03,0xFF,0x00, 0x20,0x03,0x20,0x0C,0x20,0x10,0x20,0x20, 0x20,0x40,0x20,0x80,0x20,0x80,0x00,0x00,
11
武汉理工大学《单片机原理与应用》课程设计说明书
//\学\ 0x40,0x04,0x30,0x04,0x11,0x04,0x96,0x04, 0x90,0x04,0x90,0x44,0x91,0x84,0x96,0x7E, 0x90,0x06,0x90,0x05,0x98,0x04,0x14,0x04, 0x13,0x04,0x50,0x04,0x30,0x04,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
uchar code lie[]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7, 0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff};
void delay(uchar x) //延时函数 { uchar i,j; for(i=0;i void scanf_dir() //判断按键 { if(k1==0) { delay(3); z1=0,z2=1,z3=1,z4=1; } if(k2==0) { delay(3); z1=1,z2=0,z3=1,z4=1; } if(k3==0) { delay(3); z1=1,z2=1,z3=0,z4=1; } if(k4==0) { 12 武汉理工大学《单片机原理与应用》课程设计说明书 delay(3); z1=1,z2=1,z3=1,z4=0; } } //显示汉字 将编号为c的汉字从第b条开始显示n条到屏幕的l条开始 void left() //左移动 { uchar i,zishu,x; P1=0x00; for(zishu=0;zishu<6;zishu++) //6个字 { P0=0xff; P2=0xff; for(x=0;x<16;x++)//从左向右移动16次,(第一屏、第二屏。。。。) { if(z1!=0) break; for(z=0;z 13 武汉理工大学《单片机原理与应用》课程设计说明书 void showc(uchar c,uchar b,uchar n,uchar l) //右移动辅助函数 { uchar i; for(i=0;i void right()//右移动 { uchar i,zishu; P1=0x00; for(zishu=0;zishu<6;zishu++) { for(i=0;i<16;i++) { if(z2!=0) break; for(z=0;z 14