1. The control dot matrix displays red and green alternately, flashing three times from top to bottom and from left to right.
wiring:
P0 connects to J12, P1 connects to J20, P2 connects to J19
/**
1. The control dot matrix displays red and green alternately, flashing three times from top to bottom and from left to right.
**/
#include
unsignedchar code table_LeftRight[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsignedchar code table_TopBottom[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
enum DisplayDirecte{
Left2Right,
Right2Left,
Top2Bottom,
Bottom2Top
};
void delay(void)
{
unsignedchar i,j,k;
for(k=10;k>0;k--)
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
/***********************************************************
Display rules
***********************************************************/
void DisplayRule(enum DisplayDirecte displayDirecte,unsignedchar index){
switch(displayDirecte){
case Left2Right:
P2=table_LeftRight[index];
P0=0xff;
P1=0xff;
break;
case Right2Left:
P1=table_LeftRight[7-index];
P0=0xff;
P2=0xff;
break;
case Top2Bottom:
P2=0x00;
P1=0xff;
P0=table_TopBottom[7-index];
break;
case Bottom2Top:
P1=0x00;
P2=0xff;
P0=table_TopBottom[index];
break;
}
}
/***********************************************************
Show 3 times
***********************************************************/
void Display3Time(enum DisplayDirecte displayDirecte){
unsignedchar i,RepeatTime;
for(RepeatTime=0;RepeatTime<3;RepeatTime++)//control the number of repetitions
{
for(i=0;i<8;i++)
{
DisplayRule(displayDirecte,i);
delay();
}
}
}
void main(void)
{
while(1)
{
Display3Time(Left2Right);
Display3Time(Right2Left);
Display3Time(Top2Bottom);
Display3Time(Bottom2Top);
}
}
2. Self-encoding, control LCD to display 0~F or some simple Chinese characters (red and green alternately displayed)
3./*****************************************************************************************
4.2. Self-encoding, control LCD to display 0~F or some simple Chinese characters (red and green alternately displayed)
5.******************************************************************************************/
#include
#define Lenth 19
unsignedchar code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //column selection
unsignedchar code digittab[Lenth][8]={
{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},//0
{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},//1
{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},//2
{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},//3
{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},//4
{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00},//5
{0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00},//6
{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},//7
{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},//8
{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00},//9
{0x00,0x00,0x7F,0x48,0x48,0x30,0x00,0x00},//P
{0x00,0x00,0x7F,0x48,0x4C,0x73,0x00,0x00},//R
{0x00,0x00,0x7F,0x49,0x49,0x49,0x00,0x00},//E
{0x00,0x00,0x3E,0x41,0x41,0x62,0x00,0x00},//C
{0x00,0x00,0x7F,0x08,0x08,0x7F,0x00,0x00},//H
{0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00},//I
{0x00,0x7F,0x10,0x08,0x04,0x7F,0x00,0x00},//N
{0x7C,0x48,0x48,0xFF,0x48,0x48,0x7C,0x00}, //
{0x18,0x24,0x42,0x21,0x42,0x24,0x18,0x00} //Heart shape
};
unsignedint timecount1 , timecount2;
unsignedchar cntx , cnty ;
void main(void)
{
cnty=0;
while(1)
{
if(cnty { P1=0xFF; P2=tab[cntx]; // Column line P0=digittab[cnty][cntx]; // 行线 } else//green { P2=0xFF; P1=tab[cntx]; // Column line P0=digittab[cnty-Lenth][cntx]; // 行线 } //Used to control the speed of dynamic scanning if(++timecount1>=50) { timecount1=0; if(++cntx>=8) cntx=0; } //Used to control the switching speed between moving characters if(++timecount2>=20000) { timecount2=0; if(++cnty>=Lenth*2)cnty=0; } } }
Previous article:Experiment 9 Infrared Receiver Microcontroller Decoding
Next article:Experiment 2 8-bit adder design
Recommended ReadingLatest update time:2024-11-16 14:44
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- TI Power
- New support for STM32WB55 in MicrPython
- Useful Information|Selected from TI CC3200-LAUNCHXL Evaluation Report
- 100k bridge
- [Zero-knowledge ESP8266 tutorial] Quick Start 6- Make your creations sound
- Remove a chip from a DDR3 1600Mhz 4G memory stick and then put it back together
- 【RT-Thread Reading Notes】7. RT-Thread Study Chapters 8-12 Reading Notes
- EEWORLD University ---- Introduction to Linux Kernel Programming
- ATSAM MCU
- Share your TouchGFX design and win an STM32F750 development board. Come on board!