① 51單片機打開定時器中斷中的ET0中E代表的英語是什麼
enable timer0,使能定時器0中斷,E代表英語的enable,它所在寄存器叫IE也就是interrupt enable,同理EX0 :enable exteral0
② 51單片機 8*8點陣26個英文字母怎麼樣顯示 要從上到下的編碼
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
//--------------------------------------------
ucharcodeTable_of_Digits[40][8]=
{
{0x1C,0x22,0x22,0x22,0x22,0x22,0x22,0x1C},//0
{0x08,0x18,0x08,0x08,0x08,0x08,0x08,0x1C},//1
{0x1C,0x22,0x02,0x02,0x1C,0x20,0x20,0x3E},//2
{0x1C,0x22,0x02,0x1C,0x02,0x02,0x22,0x1C},//3
{0x08,0x18,0x28,0x48,0x7C,0x08,0x08,0x08},//4
{0x3E,0x20,0x20,0x3E,0x02,0x02,0x22,0x1C},//5
{0x1C,0x22,0x20,0x3C,0x22,0x22,0x22,0x1C},//6
{0x3E,0x02,0x04,0x08,0x10,0x10,0x10,0x10},//7
{0x1C,0x22,0x22,0x1C,0x22,0x22,0x22,0x1C},//8
{0x1C,0x22,0x22,0x22,0x1E,0x02,0x22,0x1C},//9
{0x00,0x1C,0x22,0x22,0x22,0x3E,0x22,0x22},//A
{0x00,0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C},//B
{0x00,0x1C,0x22,0x20,0x20,0x20,0x22,0x1C},//C
{0x00,0x3C,0x22,0x22,0x22,0x22,0x22,0x3C},//D
{0x00,0x3E,0x20,0x20,0x3E,0x20,0x20,0x3E},//E
{0x00,0x3E,0x20,0x20,0x3E,0x20,0x20,0x20},//F
{0x00,0x1C,0x22,0x20,0x3E,0x22,0x22,0x1C},//G
{0x00,0x22,0x22,0x22,0x3E,0x22,0x22,0x22},//H
{0x00,0x1C,0x08,0x08,0x08,0x08,0x08,0x1C},//I
{0x00,0x3E,0x08,0x08,0x08,0x08,0x28,0x18},//J
{0x00,0x20,0x2C,0x30,0x20,0x30,0x2C,0x20},//K
{0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x3E},//L
{0x00,0x42,0x66,0x5A,0x42,0x42,0x42,0x42},//M
{0x00,0x00,0x2C,0x32,0x22,0x22,0x22,0x22},//n
{0x00,0x1C,0x22,0x22,0x22,0x22,0x22,0x1C},//O
{0x00,0x3C,0x22,0x22,0x3C,0x20,0x20,0x20},//P
{0x00,0x1C,0x22,0x22,0x22,0x2A,0x26,0x1F},//Q
{0x00,0x38,0x24,0x24,0x38,0x30,0x28,0x24},//R
{0x00,0x1C,0x22,0x20,0x1C,0x02,0x22,0x1C},//S
{0x00,0x3E,0x08,0x08,0x08,0x08,0x08,0x08},//T
{0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//U
{0x00,0x22,0x22,0x22,0x14,0x14,0x08,0x00},//V
{0x00,0x41,0x41,0x49,0x55,0x55,0x63,0x41},//W
{0x00,0x00,0x42,0x24,0x18,0x18,0x24,0x42},//X
{0x00,0x22,0x22,0x14,0x08,0x10,0x20,0x00},//Y
{0x00,0x3E,0x02,0x04,0x08,0x10,0x20,0x3E},//Z
};
//---------------------------------------
ucharcodexdat[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
ucharcodeydat[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//---------------------------------------
uchari=0;
ucharj=0;
uchart=0;
ucharNum_Index,disnum;
ucharkey;
ucharxi;
ucharyi;
//---------------------------------------
ucharcodedisstr[]="C201600102020";//顯示內容可以自己定義
//---------------------------------------
sbitwe1=P1^1;
sbitwe2=P1^3;
//---------------------------------------
//主程序
//---------------------------------------
voidmain()
{
//P1=0x80;
Num_Index=0;//從0開始顯示
TMOD=0x01;//T0方式0
TH0=(65536-2000)/256;//2ms定時
TL0=(65536-2000)%256;
IE=0x82;
key=0;
xi=0;
yi=0;
EX0=1;
IT0=1;
TR0=1;//啟動T0
while(1);
}
//---------------------------------------
//外部中斷0中斷函數
//按鍵處理
//---------------------------------------
voidext_int0()interrupt0
{
key++;
key&=0x03;
}
//---------------------------------------
//定時器0中斷函數
//顯示控制
//---------------------------------------
voidLED_Screen_Display()interrupt1
{
TH0=(65536-2000)/256;//2ms定時
TL0=(65536-2000)%256;
switch(key)
{
//顯示點陣圖形
case0:
P0=0xff;
if(disstr[Num_Index]>='A')disnum=disstr[Num_Index]-'A'+10;
elsedisnum=disstr[Num_Index]-'0';
we1=1;
P0=~Table_of_Digits[disnum][i];
we1=0;
P0=0xff;//輸出位碼和段碼
we2=1;
P0=ydat[i];
we2=0;
if(++i==8)i=0;//每屏一個數字由8個位元組構成
if(++t==250)//每個數字刷新顯示一段時間
{
t=0;
if(++Num_Index==13)Num_Index=0;//顯示下一個數字
}
break;
//流水燈「點」模式
case1:
we1=1;
P0=~xdat[xi];
we1=0;
we2=1;
P0=ydat[yi];
we2=0;
if(++t==250)//每個數字刷新顯示一段時間
{
t=0;
yi++;
if(yi>7){yi=0;xi++;}
if(xi>7)xi=0;
}
break;
//流水燈「行列」模式
case2:
we1=1;
P0=0x00;
we1=0;
P0=0xff;//輸出位碼和段碼
we2=1;
P0=xdat[i];
we2=0;
if(++t==250)//每個數字刷新顯示一段時間
{
if(++i==8)i=0;//每屏一個數字由8個位元組構成
t=0;
}
break;
default:
key=0;
i=0;
j=0;
t=0;
xi=0;
yi=0;
Num_Index=0;
we1=1;
P0=0xff;
we1=0;
we2=1;
P1=0x80;
we2=0;
break;
}
}
③ 用89c51單片機寫一個數碼管顯示HELLO的程序,是在一個七段數碼管上依次出現幾個字母
在數碼管依次排列好這一句話,首先取模,然後寫顯示函數,寫完函數放置while(1)中無限循環下去
代碼如下:
#include; //用的是單獨操作,沒有用匯流排
sbit led1 = P1^0;
sbit led2 = P1^1;
sbit led3 = P1^2;
sbit led4 = P1^3;
sbit led5 = P1^4;
sbit led6 = P1^5;
sbit led7 = P1^6; //看清楚自己的管腳,不一定對應,這里採用P0對應段選
code unsigned char led_paly[5] = {0x76,0x79,0x38,0x38,0x5c};// H E L L O
void delay(unsigned int um)//延時函數
{
int i,j;
for(i = 0;i < um;i++)
{
for(j = 0;j < 200;j++);
}
}
void display()
{
P0 = led_paly[0];//顯示局尺桐H
led2 = 0;
delay(50);
led2 = 1;
P0 = led_paly[1];//顯示E
led3 = 0;
delay(50);
led3 = 1;
P0 = led_paly[2];//顯示L
led4 = 0;
delay(50);
led4 = 1;
P0 = led_paly[3];//顯示E
led5 = 0;
delay(50);
led5 = 1;
P0 = led_paly[4];//顯示O
led6 = 0;
delay(50);
led6 = 1;
}
void main(void)
{
while(1)
{
display();
}
}
(3)51單片機顯示字母e擴展閱讀:
51單片機的介面作用
P0口:可以被定義為桐坦數據/地址的低八位,能夠用於外部程序/數據存儲器。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
P1口:標准輸入輸出I/O,P1口管腳寫入1後,被內部上拉為高,可用作輸入。在FLASH編程和校驗時,P1口作為第八位地址接收。
P2口:既困棗可用於標准輸入輸出I/O,也可用於外部程序存儲器或數據存儲器訪問時的高八位地址。
P3口:既可以做標准輸入輸出I/O,也可作為AT89C51的一些特殊功能口。
④ 51單片機如何在1602液晶屏上顯示一個字母
/*-----------------------------------------------
名稱:LCD1602
內容:通過標准程序靜態顯示字元
引腳定義如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK
------------------------------------------------*/
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
#include<intrins.h>
sbit RS = P2^4; //定義埠
sbit RW = P2^5;
sbit EN = P2^6;
#define RS_CLR RS=0
#define RS_SET RS=1
#define RW_CLR RW=0
#define RW_SET RW=1
#define EN_CLR EN=0
#define EN_SET EN=1
#define DataPort P0
/*------------------------------------------------
uS延時函數,含有輸入參數 unsigned char t,無返回值
unsigned char 是定義無符號字元變數,其值的范圍是
0~255 這里使用晶振12M,精確延時請使用匯編,大致延時
長度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{
while(--t);
}
/*------------------------------------------------
mS延時函數,含有輸入參數 unsigned char t,無返回值
unsigned char 是定義無符號字元變數,其值的范圍是
0~255 這里使用晶振12M,精確延時請使用匯編
------------------------------------------------*/
void DelayMs(unsigned char t)
{
while(t--)
{
//大致延時1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*------------------------------------------------
判忙函數
------------------------------------------------*/
bit LCD_Check_Busy(void)
{
DataPort= 0xFF;
RS_CLR;
RW_SET;
EN_CLR;
_nop_();
EN_SET;
return (bit)(DataPort & 0x80);
}
/*------------------------------------------------
寫入命令函數
------------------------------------------------*/
void LCD_Write_Com(unsigned char com)
{
while(LCD_Check_Busy()); //忙則等待
RS_CLR;
RW_CLR;
EN_SET;
DataPort= com;
_nop_();
EN_CLR;
}
/*------------------------------------------------
寫入數據函數
------------------------------------------------*/
void LCD_Write_Data(unsigned char Data)
{
while(LCD_Check_Busy()); //忙則等待
RS_SET;
RW_CLR;
EN_SET;
DataPort= Data;
_nop_();
EN_CLR;
}
/*------------------------------------------------
清屏函數
------------------------------------------------*/
void LCD_Clear(void)
{
LCD_Write_Com(0x01);
DelayMs(5);
}
/*------------------------------------------------
寫入字元函數
------------------------------------------------*/
void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data)
{
if (y == 0)
{
LCD_Write_Com(0x80 + x);
}
else
{
LCD_Write_Com(0xC0 + x);
}
LCD_Write_Data( Data);
}
/*------------------------------------------------
初始化函數
------------------------------------------------*/
void LCD_Init(void)
{
LCD_Write_Com(0x38); /*顯示模式設置*/
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
LCD_Write_Com(0x08); /*顯示關閉*/
LCD_Write_Com(0x01); /*顯示清屏*/
LCD_Write_Com(0x06); /*顯示游標移動設置*/
DelayMs(5);
LCD_Write_Com(0x0C); /*顯示開及游標設置*/
}
/*------------------------------------------------
主函數
------------------------------------------------*/
void main(void)
{
LCD_Init();
LCD_Clear();//清屏
while (1)
{
LCD_Write_Char(7,0,'o');
LCD_Write_Char(8,0,'k');
while(1);
}
}
⑤ 51單片機顯示字母E
建立個數碼管段碼表,然後用查表的方式,翻譯段碼,0-9、A-F就都有了。
⑥ 51單片機字元液晶屏(LMC1602)輸出端RS,RW還有E分別都有什麼作用
51單片機字元液晶屏(LMC1602)輸出端rs的功能是存儲控制信息,反映當前指令執行寄存器結果的各種狀態信息,選擇高電平1的數據寄存器和低電平0的指令寄存器。
51單片機字元液晶屏(lmc1602)的輸出rw用來讀寫信號。當高電平為1時,執行讀取操作。
51單片機字元液晶屏(LMC1602)的輸出端E作為輸入引腳,只有當引腳激活時,晶元才能工作。一般來說,這是高水平的有效,如果符號是負跳躍,則表示低水平有效。
(6)51單片機顯示字母e擴展閱讀:
RS介面任意信號線在輸出端的電壓為負邏輯關系。即:邏輯「1」為-3-15V;邏輯「0」:+3-15V,雜訊容限為2V,即要求接收機將高於+3V的信號識別為邏輯「0」,低於-3V的信號識別為邏輯「1」,它與ttl電平不兼容,需要用電平轉換電路與ttl電路連接。
如果rs介面信號電平過高,介面電路晶元容易損壞,該介面使用信號線和信號回線形成公共地面傳輸形式,這種共地傳輸方式容易產生共模干擾,抗雜訊干擾能力弱。
⑦ 51單片機,我在學習控制數碼管靜態顯示時,總跟我實驗的結果相反(如,我控制為」1「,它卻顯示」E「
按發光二極體單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極體的陽極接到一起形成公共陽極(COM)的數碼管,共陽數碼管在應用時應將公共極COM接到+5V,當某一欄位發光二極體的陰極為低電平時,相應欄位就點亮,當某一欄位的陰極為高電平時,相應欄位就不亮。共陰數碼管是指將所有發光二極體的陰極接到一起形成公共陰極(COM)的數碼管,共陰數碼管在應用時應將公共極COM接到地線GND上,當某一欄位發光二極體的陽極為高電平時,相應欄位就點亮,當某一欄位的陽極為低電平時,相應欄位就不亮。
⑧ 求助會玩51單片機的大神,最近初學單品機,想請教一段代碼,現象是是數碼管依次顯示 L 0 U E
http://blog.163.com/asm_c/blog/static/24820311320119135410516/
動態顯示。
樓主掘基自己得編判談謹一些侍此段碼,即可顯示:L 0 U E — Y 0 U。