标题:
LCD1602滚动显示的单片机源码
[打印本页]
作者:
hhhh123as
时间:
2018-5-1 15:03
标题:
LCD1602滚动显示的单片机源码
单片机源程序如下:
#include <REGX52.H>
sbit mal=P1^7; //第一电机左拐
sbit mar=P1^6; //第一电机右拐
sbit mbl=P1^5; //第二电机左拐
sbit mbr=P1^4; //第二电机右拐
sbit mc=P1^3; //第三个动力
sbit md=P1^2; //第四个动力
sbit d1=P3^5;
sbit d2=P3^4;
sbit led=P3^7;
unsigned char numz=0;
//舵机正脉宽500us~2500us,负脉宽为(20000us-正脉宽)
//对应到定时器值461-2=459,到2713-2=2711 ,变化范围2252,如果每档变化125,可以有18档
unsigned char d11=0,d10=0,d21=0,d20=0,da=0,db=0;
void delayms(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
void main()
{unsigned char i;
for (i=0;i<=10;i++) //闪烁,以示主板工作正常
{
led=~led; delayms(2000);
}
TMOD=0x21; //使用定时器1和0
SCON=0x50; //串口使用工作方式1
TH1=0xfd; //串口的波特率,9600
TL1=0xfd;
//定时器0初始化
TH0=0xff;
TL0=0x82; //初始值125,cpu工作频率为11.0592M
ET0=1; //允许定时中断
TR0=1; //启动定时器0
TR1=1; //打开定时器1
EA=1; //打开中断总开关
ES=1; //打开串口中断开关
while(1){ }
}
void ck() interrupt 4
{
unsigned char a=0;
EA=0;
if(RI)
{ a=SBUF;
switch(a)
{
case 'Z':numz++;break;
case 'A':{if(numz==6){mal=1;mar=0;mbl=0;mbr=1;numz=0;led=~led;}}break; //前进
case 'B':{if(numz==6){mal=1;mar=0;mbl=1;mbr=0;numz=0;led=~led;}}break; //左拐
case 'C':{if(numz==6){mal=1;mar=1;mbl=1;mbr=1;numz=0;led=~led;}}break;//停
case 'D':{if(numz==6){mal=0;mar=1;mbl=0;mbr=1;numz=0;led=~led;}}break;//右拐
case 'E':{if(numz==6){mal=0;mar=1;mbl=1;mbr=0;numz=0;led=~led;}}break;//后退
case 'F':{if(numz==6){md=~md; led=~led;}}break;
case 'G':{if(numz==6){mc=~mc;led=~led;}}break;
case 'H':{if(numz==6){ led=~led;}}break;
case 'I':{if(numz==6){ numz=0;led=~led;}}break;
case 'J':{if(numz==6){ numz=0;led=~led;}}break;
case 'K':{if(numz==6){ numz=0;led=~led;}}break;
case 'Y':numz=0;break;
default:numz=0;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
LCD1602滚动显示.zip
(22.76 KB, 下载次数: 21)
2018-5-1 15:03 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1