久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
51單片機(jī)直流電機(jī)控制 帶proteus仿真和源碼
[打印本頁]
作者:
daxionghhh
時間:
2017-2-7 10:51
標(biāo)題:
51單片機(jī)直流電機(jī)控制 帶proteus仿真和源碼
51直流電機(jī)仿真原理圖:
0.png
(31.33 KB, 下載次數(shù): 76)
下載附件
2017-2-8 01:35 上傳
單片機(jī)源程序:
#include <reg51.h>
#include <intrins.h>
#define DATAOUT P2 //P2 use as data, you can change
#define SPEED 13
void ymove(char dir,unsigned char *ptr,char speed);
void xmove(char dir,unsigned char *ptr,char n,char speed);
void delay(unsigned int a);
void display();
void displaytime(char time);
void init164();
sbit ADATA=P2^0;
sbit ASCK=P2^1;
sbit LATCH=P2^2;
sbit BDATA=P2^3;
sbit BCLK=P2^4;
code unsigned char xin[32]={
0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x38, //心
0x1F,0x7C,0x3F,0xFE,0x3F,0xFE,0x3F,0xFE,
0x1F,0xFC,0x0F,0xF8,0x07,0xF0,0x03,0xE0,
0x01,0xC0,0x00,0x80,0x00,0x00,0x00,0x00};
code unsigned char zhong[32]={
0x01,0x00,0x01,0x00,0x01,0x04,0x7F,0xFE, //中
0x41,0x04,0x41,0x04,0x41,0x04,0x41,0x04,
0x7F,0xFC,0x41,0x04,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00};
code unsigned char guo[32]={
0x00,0x04,0x7F,0xFE,0x40,0x24,0x5F,0xF4, //國
0x41,0x04,0x41,0x04,0x41,0x44,0x4F,0xE4,
0x41,0x04,0x41,0x44,0x41,0x24,0x41,0x04,
0x5F,0xF4,0x40,0x04,0x7F,0xFC,0x40,0x04};
code unsigned char dui[32]={
0x7C,0x40,0x44,0x40,0x48,0x40,0x48,0x40, //隊(duì)
0x50,0x40,0x48,0x40,0x48,0x40,0x44,0xA0,
0x44,0xA0,0x44,0xA0,0x69,0x10,0x51,0x10,
0x42,0x08,0x44,0x06,0x48,0x04,0x00,0x00};
code unsigned char jia[32]={
0x10,0x00,0x10,0x00,0x10,0x04,0x12,0x7E, //加
0xFF,0x44,0x12,0x44,0x12,0x44,0x12,0x44,
0x12,0x44,0x22,0x44,0x22,0x44,0x22,0x44,
0x22,0x44,0x4A,0x7C,0x84,0x44,0x00,0x00};
code unsigned char you[32]={
0x00,0x40,0x40,0x40,0x30,0x40,0x10,0x44, //油
0x87,0xFE,0x64,0x44,0x24,0x44,0x0C,0x44,
0x14,0x44,0x27,0xFC,0xE4,0x44,0x24,0x44,
0x24,0x44,0x24,0x44,0x27,0xFC,0x24,0x04 };
code unsigned char gth[32]={
0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0, //!
0x03,0xC0,0x03,0xC0,0x03,0xC0,0x01,0x80,
0x01,0x80,0x01,0x80,0x00,0x00,0x01,0x80,
0x03,0xC0,0x01,0x80,0x00,0x00,0x00,0x00};
unsigned char idata buffer[32];
void main(void)
{
unsigned char i;
init164();
while(1)
{
for(i=0;i<32;i++)
buffer[i]=xin[i];
displaytime(1);
xmove(1,zhong,3,SPEED);
displaytime(1);
ymove(1,0,SPEED);
ymove(1,jia,SPEED);
ymove(1,you,SPEED);
ymove(1,0,SPEED);
xmove(0,jia,3,SPEED);
ymove(0,gth,SPEED);
ymove(0,0,SPEED);
xmove(1,xin,1,SPEED);
}
}
/************* 子函數(shù) ******************/
void delay(unsigned int a)
{
while(a--);
}
void display()
{
unsigned char hang,ib,k,tmp;
DATAOUT= 0x0;
BDATA = 0;
for(hang=0;hang<16;hang++)
{
ASCK =0;
LATCH=0;
BCLK =0;
for(ib=0;ib<2;ib++)
{
tmp = buffer[hang*2+ib];
for(k=0;k<8;k++)
{
tmp <<=1;
ASCK =0;
ADATA =CY;
ASCK =1;
}
}
DATAOUT|=0x14;
//LATCH=1;
//BCLK=1;
BDATA=1;
}
delay(64);
ASCK =0;
ASCK =1;
}
void displaytime(char time)
{
unsigned char i;
while(time--)
{
i=130;
while(i--)
display();
}
}
void init164()
{
char i;
BDATA=1;
for(i=0;i<16;i++)
{
BCLK =0;
BCLK =1;
}
}
void xmove(char dir,unsigned char *ptr,char n,char speed)
{ /* 方向 n是要移動的漢字個數(shù) 移動速度*/
unsigned char i=0, ib=0;
unsigned int tmp=0, speedm=0;
unsigned char buffer2[16]; //半個漢字的緩存
n*=2; //左半字和右半字,所以要x2
for(i=0;i<16;i++) //清零
buffer2[i]=0;
if(dir == 1)
{
/**** 向左移動 ****/
for(n;n>0;n--)
{
if(ptr != 0)
{
tmp = n%2; //判斷是左半字還是右半字
for(i=0;i<16;i++)
buffer2[i]=ptr[i*2+tmp];
if(tmp) //tmp為1時,將地址指向下一個漢字
ptr+=32;
}
for(tmp=8;tmp>0;tmp--) //要移動8列
{
ib=0;
for(i=0;i<16;i++)
{ //要移16行,共16個字節(jié)
buffer[ib] <<=1; //移第一個半字
if(buffer[ib+1] & 0x80)
buffer[ib]++;
ib++;
buffer[ib]<<=1; //移后半字
if(buffer2[i] & 0x80)
buffer[ib]++;
ib++;
buffer2[i]<<=1; //緩沖左半字向左移一位
}
speedm=speed; //更新點(diǎn)陣
while(speedm--)
display();
}
}
}
//--------------------------------------------------//
else
{
/****** 向右移動 ******/
for(n;n>0;n--)
{
if(ptr != 0)
{
tmp = (n+1) % 2 ; //判斷左半字還是右半字
for(i=0;i<16;i++)
buffer2[i]=ptr[i*2+tmp];
if(tmp == 0) //tmp為0時,將地址指向下一個漢字
ptr+=32;
}
for(tmp=8;tmp>0;tmp--) //要移動8列
{
ib=0;
for(i=0;i<16;i++)
{ //要移16行,共16個字節(jié)
buffer[ib+1] >>= 1; //移右半字
if(buffer[ib] & 0x01)
buffer[ib+1] |=0x80 ;
buffer[ib] >>= 1; //移左半字
if(buffer2[i] & 0x01)
buffer[ib] |= 0x80;
ib+=2;
buffer2[i] >>=1; //下個漢字的右半字向右移一位
}
speedm=speed;
while(speedm--) //更新點(diǎn)陣
display();
}
}
}
}
void ymove(char dir,unsigned char *ptr, char speed)
{ //dir=1上移動,dir=0為下移動
char i=0, j=0, ib=0;
unsigned int tmp=0, speedm=0;
if(dir==0)
{
/**** 向下移 ****/
ib=31;
for(i=16;i>0;i--) //下移16行
{
for(j=29;j>-1;j--)
buffer[j+2]=buffer[j]; //將上一行的內(nèi)容復(fù)制到下一行
if(ptr==0)
{ //移空時,buffer的首行用0移入
buffer[0]=0;
buffer[1]=0;
}
else
{ //否則,處理buffer的首行元素
buffer[1]=ptr[ib];
buffer[0]=ptr[ib-1];
ib=ib-2;
}
speedm=speed;
while(speedm--) //更新點(diǎn)陣
display();
}
}
/****** 向上移 *******/
else
{
ib=0; //數(shù)組元素序號
for(i=0;i<16;i++) //上移16行
{
for(j=0;j<30;j++) //將下一行的內(nèi)容復(fù)制到上一行
buffer[j]=buffer[j+2];
if(ptr==0) //移入為空,buffer的末行用0移入
{
buffer[30]=0;
buffer[31]=0;
}
else
{ //否則,處理buffer的末行元素
buffer[30]=ptr[ib];
buffer[31]=ptr[ib+1];
ib=ib+2;
}
speedm=speed; //更新點(diǎn)陣
while(speedm--)
display();
}
}
}
復(fù)制代碼
0.png
(44 KB, 下載次數(shù): 70)
下載附件
2017-2-8 01:35 上傳
所有資料打包下載(含仿真工程文件):
51直流電機(jī)帶proteus仿真.rar
(77.32 KB, 下載次數(shù): 114)
2017-2-7 10:50 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
進(jìn)擊的生菜
時間:
2017-12-6 09:52
樓主 牛X 正需要這個呢
作者:
蝶舞狂雷
時間:
2019-5-5 08:55
感謝樓主分享
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
精品一区二区在线视频
|
久草久草久草
|
欧美黑人狂野猛交老妇
|
欧美日韩综合精品
|
婷婷激情在线
|
香蕉视频久久久
|
欧美精品91
|
成人黄色在线
|
青青草网
|
久久精品无码一区二区三区
|
国产美女在线精品免费
|
国产三区av
|
午夜看电影在线观看
|
日韩一级黄色片
|
亚洲国产二区
|
玖玖玖av
|
国产激情一区二区三区
|
日本精品网站
|
亚洲综合在
|
日韩国产精品一区二区三区
|
中文字幕亚洲精品
|
亚洲欧美综合精品久久成人
|
九九热最新地址
|
日韩在线不卡视频
|
91玖玖
|
精品欧美一区二区在线观看视频
|
在线看一区二区三区
|
蜜臀久久
|
天天色综
|
国产精品美女www爽爽爽
|
91精品国产色综合久久
|
四虎影视在线
|
二区欧美
|
欧美韩一区二区三区
|
在线免费观看日本
|
日韩一区二区av
|
美女张开腿露出尿口
|
色婷婷九月
|
久久久久国产一级毛片高清网站
|
亚欧洲精品在线视频免费观看
|
黄色一级大片在线免费看产
|