单片机C语言代码手册 含100多个经典C程序.pdf
1 单片机单片机 C 语言代码手册语言代码手册 1 LED 灯灯 点亮一个点亮一个 LED include void main while 1 P0 0 x01 P2 0 x7d 流水灯闪烁流水灯闪烁 include sbit LED P0 0 void delay unsigned int i unsigned int j for i i 0 i for j 110 j 0 j void main LED 0 delay 60 LED 1 delay 10 流水灯流水灯 左移左移 include include unsigned char aa void delay unsigned int xms unsigned int i j for i xms i 0 i for j 110 j 0 j void main aa 0 xfe while 1 P0 aa delay 1000 aa crol aa 1 跑马灯跑马灯 include include void delayms unsigned char ms unsigned char i while ms for i 0 i 120 i void main unsigned char LED LED 0 xfe 11111110 P2 LED while 1 delayms 250 LED crol LED 1 循环右移 1位 点亮下一个LED P2 LED 用循环移位指令实现用循环移位指令实现 LED 流水灯效果流水灯效果 include include void delayms unsigned char i 延时子程序 unsigned char j while i for j 0 j 120 j void main unsigned char LED LED 0 xfe 0 xfe 1111 1110 while 1 P2 LED delayms 250 LED LED 1 循环右移 1 位 点亮下一个 LED 为左移 位 if LED 0 x00 LED 0 xfe 0 xfe 1111 1110 左右跑马灯左右跑马灯 include void delay unsigned int i unsigned char j for i i 0 i for j 255 j 0 j char LED void main unsigned char i while 1 LED 0 xfe for i 0 i 8 i P2 LED delay 500 LED LED 1 左移 LED LED 0 x01 移位后 后面的位为高电平 2 if LED 0 x7f break 提前退出 FOR 循环 for i 0 i 1 右移 LED LED 0 x80 移位后 后面的位为高电平 LED 作二进制加法作二进制加法 include void delay unsigned int i unsigned char j for i i 0 i for j 255 j 0 j void main unsigned char Num 0 xff while 1 P2 Num delay 1000 Num LED 闪烁闪烁 定时器定时器 include include unsigned char num aa 0 xfe void main TMOD 0 x01 TH0 65536 45872 256 TL0 65536 45872 256 EA 1 ET0 1 TR0 1 while 1 if num 1 num 0 P2 aa aa crol aa 1 void T0 time interrupt 1 TH0 65536 45872 256 TL0 65536 45872 256 num 2 数码管数码管 0 9 显示显示 include void delay2ms unsigned int delaytime unsigned int cnt for cnt 0 cnt9 cnt 0 delay2ms 2500 95 显示显示 include void delay2ms unsigned int delaytime unsigned int cnt for cnt 0 cnt delaytime 50 cnt unsigned char s 10 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f main unsigned char num 95 unsigned char cnt 0 while 1 switch cnt 2 case 0 P0 0 x02 P2 s num 10 break case 1 P0 0 x04 P2 s num 10 break delay2ms 1 138 片选实现动态显示片选实现动态显示 include include sbit LS138A P2 2 定义LS138译码器的输入A脚由P2 2控制 sbit LS138B P2 3 定义LS138译码器的输入 B脚由P2 3控制 sbit LS138C P2 4 定义LS138译码器的输入 C脚由P2 4控制 void delay unsigned int i 函数声名 char cnt unsigned char code Disp Tab 共阴数码管 0 9 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x40 void main 3 unsigned int i j 1 unsigned int led 10 cnt 0 while 1 进入循环状态 if cnt 50 cnt 0 延时计数 每扫描一次加一次 j 每隔 50 个扫描周期加一次 led 0 Disp Tab j 10000 1000 0 x80 led 1 Disp Tab j 1000 100 0 x80 led 2 Disp Tab j 100 10 0 x80 led 3 Disp Tab j 10 0 x80 led 4 Disp Tab j 10000 1000 千位 led 5 Disp Tab j 1000 100 百位带小数点 led 6 Disp Tab j 100 10 十位 led 7 Disp Tab j 10 个位 for i 0 i 0 i for j 200 j 0 j 单片机直接片选实现动态显示单片机直接片选实现动态显示 include include void delay unsigned int i 函数声名 char DelayCNT 定义变量 unsigned char code Disp Tab 共阴数码管 0 9 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x40 段码控制 unsigned char code dispbit 8 共阴数码管 1 8 个 0 xfe 0 xfd 0 xfb 0 xf7 0 xef 0 xdF 0 xbF 0 x7F 位选控制 查表法 void main unsigned int i LedNumVal 1 变量定义 unsigned int LedOut 10 变量定义 DelayCNT 0 while 1 if DelayCNT 20 控制数字变化速度 DelayCNT 0 20 个扫描周期清零一次 LedNumVal 每隔 20 个扫描周期加一次 LedOut 0 Disp Tab LedNumVal 10000 1000 LedOut 1 Disp Tab LedNumVal 1000 100 0 x80 LedOut 2 Disp Tab LedNumVal 100 10 LedOut 3 Disp Tab LedNumVal 10 LedOut 4 Disp Tab LedNumVal 10000 1000 千位 LedOut 5 Disp Tab LedNumVal 1000 100 0 x80 百位小数 LedOut 6 Disp Tab LedNumVal 100 10 十位 LedOut 7 Disp Tab LedNumVal 10 个位 for i 0 i 0 i for j 200 j 0 j 动态动态 静态静态 LED include include sbit LED8 1 P1 1 J14 接在 P1 1 上 void delay unsigned int i 函数声名 char DelayCNT char LED void main LED 0 x01 DelayCNT 0 while 1 if DelayCNT 10 点亮动静 LED 灯速度控制 DelayCNT 0 LED LED 0 i for j 200 j 0 j 数码管数码管 138 动态显示动态显示 include define uint unsigned int define uchar unsigned char sbit LS138A P2 2 sbit LS138B P2 3 sbit LS138C P2 4 uchar code led 8 void delay uint xms uint i j for i xms i 0 i for j 110 j 0 j uchar code table 0 x3f 0 x06 0 x5B 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f void main while 1 进入循环状态 uint cnt j LS138A 1 LS138B 1 LS138C 1 if cnt 50 cnt 0 延时计数 每扫描一次加一次 j 每隔 50 个扫描周期加一次 led 0 table j 10000 1000 led 1 table j 1000 100 led 2 table j 100 10 led 3 table j 10 led 4 table j 10000 1000 千位 led 5 table j 1000 100 百位带小数点 led 6 table j 100 10 十位 led 7 table j 10 个位 数码管数码管 依次显示依次显示 0 F include unsigned char code table 共阳数码管 0 x3F 0 x06 0 x5B 0 x4F 0 x66 0 x6D 0 x7D 0 x07 0 x7F 0 x6F 0 x77 0 x7C 0 x39 0 x5E 0 x79 0 x71 void delay unsigned int xms unsigned int i j for i xms i 0 i for j 110 j 0 j void main unsigned char cnt while 1 for cnt 0 cnt 16 cnt P0 table cnt delay 100 数码管数码管 直选动态显示直选动态显示 include unsigned char code dispiaybit 0 xfe 0 xfd 0 xfb 0 xf7 0 xef 0 xdf 0 xbf 0 x7f unsigned char code table 0 x06 0 x5B 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f void delay unsigned int xms unsigned int i j for i xms i 0 i for j 110 j 0 j void main unsigned char m while 1 for m 0 m 8 m P0 table m P1 dispiaybit m delay 1 数码管秒表数码管秒表 include void delay int xms unsigned int cnt for cnt 0 cnt 250 num cnt 0 一位静态显示一位静态显示 include include define NOP nop 定义空指令 void delay unsigned int i 函数声名 unsigned char code LED7Code 共阳极 0 x3F 0 x06 0 x5B 0 x4F 0 x66 0 x6D 0 x7D 0 x07 0 x7F 0 x6F 0 x77 0 x7C 0 x39 0 x5E 0 x79 0 x71 void main unsigned int LedNumVal 1 C 定义变量 while 1 if C 300 LedNumVal 每隔 300 个扫描周期加一次 C 0 每隔 300 个扫描清零 将字模送到 P0 口显示 P0 LED7Code LedNumVal 10 LED7 0 x7f 为小数点 共阴和共阳此处不一样 delay 150 调用延时程序 void delay unsigned int i char j for i i 0 i for j 200 j 0 j 3 蜂鸣器蜂鸣器 嘀嘀嘀嘀 include sbit buzz P3 4 main TMOD 0 x01 TH0 1000 256 TL0 1000 256 EA 1 ET0 1 TR0 1 for void T0 irq void interrupt 1 using 1 TH0 300 256 TL0 300 256 buzz buzz PZ 蜂鸣器蜂鸣器 include sbit beep P1 5 void delay unsigned int xms unsigned int i j for i xms i 0 i for j 110 j 0 j void main beep 1 delay 1 beep 0 delay 1 八月桂花八月桂花 本例采用 89C52 晶振为 11 0592MHZ 关于如何编制音乐代码 其实十分简单 各位可以看以下代码 频率常数即音乐术语中的音调 而节拍常数即音乐术语中的多少拍 include include sbit Beep P1 5 unsigned char n 0 n 为节拍常数变量 unsigned char code music tab 格式为 频率常数 节拍常 数 频率常数 节拍常数 0 x18 0 x30 0 x1C 0 x10 0 x20 0 x40 0 x1C 0 x10 0 x18 0 x10 0 x20 0 x10 0 x1C 0 x10 0 x18 0 x40 0 x1C 0 x20 0 x20 0 x20 0 x1C 0 x20 0 x18 0 x20 0 x20 0 x80 0 xFF 0 x20 0 x30 0 x1C 0 x10 0 x18 0 x20 0 x15 0 x20 0 x1C 0 x20 0 x20 0 x20 0 x26 0 x40 0 x20 0 x20 0 x2B 0 x20 0 x26 0 x20 0 x20 0 x20 0 x30 0 x80 0 xFF 0 x20 0 x20 0 x1C 0 x10 0 x18 0 x10 0 x20 0 x20 0 x26 0 x20 0 x2B 0 x20 0 x30 0 x20 0 x2B 0 x40 0 x20 0 x20 0 x1C 0 x10 0 x18 0 x10 0 x20 0 x20 0 x26 0 x20 0 x2B 0 x20 0 x30 0 x20 0 x2B 0 x40 0 x20 0 x30 0 x1C 0 x10 0 x18 0 x20 0 x15 0 x20 0 x1C 0 x20 0 x20 0 x20 0 x26 0 x40 0 x20 0 x20 0 x2B 0 x20 0 x26 0 x20 0 x20 0 x20 0 x30 0 x80 6 0 x20 0 x30 0 x1C 0 x10 0 x20 0 x10 0 x1C 0 x10 0 x20 0 x20 0 x26 0 x20 0 x2B 0 x20 0 x30 0 x20 0 x2B 0 x40 0 x20 0 x15 0 x1F 0 x05 0 x20 0 x10 0 x1C 0 x10 0 x20 0 x20 0 x26 0 x20 0 x2B 0 x20 0 x30 0 x20 0 x2B 0 x40 0 x20 0 x30 0 x1C 0 x10 0 x18 0 x20 0 x15 0 x20 0 x1C 0 x20 0 x20 0 x20 0 x26 0 x40 0 x20 0 x20 0 x2B 0 x20 0 x26 0 x20 0 x20 0 x20 0 x30 0 x30 0 x20 0 x30 0 x1C 0 x10 0 x18 0 x40 0 x1C 0 x20 0 x20 0 x20 0 x26 0 x40 0 x13 0 x60 0 x18 0 x20 0 x15 0 x40 0 x13 0 x40 0 x18 0 x80 0 x00 void int0 interrupt 1 采用中断 0 控制节拍 TH0 0 xd8 TL0 0 xef n void delay unsigned char m 控制频率延时 unsigned i 3 m while i void delayms unsigned char a 豪秒延时子程序 while a 采用 while a 不要采用 while a 各位可编译一下看看汇编结果就知道 了 void main unsigned char p m m 为频率常数变量 unsigned char i 0 TMOD TMOD 0 x01 TH0 0 xd8 TL0 0 xef IE 0 x82 play while 1 a p music tab i if p 0 x00 i 0 delayms 1000 goto play 如果碰到结束符 延时 1 秒 回到开始再来一遍 else if p 0 xff i i 1 delayms 100 TR0 0 goto a 若碰到休止符 延时 100ms 继续取下一音符 else m music tab i n music tab i 取频率常数 和 节拍常数 TR0 1 开定时器 1 while n 0 Beep Beep delay m 等待节拍完成 通过 P1 口输出音频 可多声道 哦 TR0 0 关定时器 1 5 继电器继电器 按键控制继电器按键控制继电器 include sbit RELAY P1 4 定义继电器对应单片机管脚 sbit K1 P2 7 定义按钮对应单片机管脚 void main if K1 RELAY 0 按钮按下 开启继电器 else RELAY 1 按钮松开 关闭继电器 4 按键按键 模拟开关模拟开关 include sbit K1 P3 0 sbit L1 P2 0 void delay unsigned int i unsigned int j for i i 0 i for j 110 j 0 j void main while 1 if K1 0 delay 100 if K1 0 L1 L1 while K1 按键键状态显示按键键状态显示 include include sbit BEEP P1 5 sbit RELAY P1 4 sbit K1 P0 0 sbit K2 P0 1 sbit K3 P0 2 sbit K4 P0 3 sbit K5 P0 4 sbit K6 P0 5 void beep main while 1 P2 0 xff if K1 0 7 P2 0 xfe if K2 0 P2 0 xfd if K3 P2 0 xfb if K4 P2 0 xf7 if K5 beep 喇叭发声 RELAY 1 if K6 RELAY 0 通过了反相器 void beep unsigned char i j for i 0 i 100 i BEEP BEEP BEEP 取反 for j 0 j 250 j 需要产生方波 nop BEEP 1 关闭蜂鸣器 按键移位按键移位 include include void delayms unsigned char ms void proc key unsigned char key v void delayms unsigned char ms unsigned char i while ms for i 0 i 120 i sbit K1 P0 0 对应按钮 K1 sbit K2 P0 1 对应按钮 K2 void main unsigned char key s key v key v 0 x03 P2 0 xfe while 1 key s scan key if key s key v delayms 10 key s scan key if key s key v key v key s proc key key v unsigned char scan key unsigned char key s key s 0 x00 key s K2 key s 1 key s K1 return key s void proc key unsigned char key v if key v else if key v 6 定时器定时器 中断中断 蜂铃器蜂铃器 timer1 include include sbit Beep P1 5 unsigned int USE C void main TMOD 0 x10 定时 计数器 1 工作于方式 1 TH0 0 x4C TL0 0 x00 50ms 定时常数 EA 1 开总中断 ET1 1 允许定时 计数器 1 中断 TR1 1 启动定时 计数器 1 中断 while 1 void Time1 void interrupt 3 TH1 0 x4c 50ms 定时 TL1 0 x00 if USE C 20 每隔 1 秒发声 Beep Beep USE C 0 中断中断 0 计数计数 1 位数码管显示位数码管显示 include include unsigned int LedNumVal 此表为 LED 的字模 0 1 2 3 4 5 6 7 8 9 A b c d E L P U Hidden 20 unsigned char code Disp Tab 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 x92 0 x82 0 xF8 0 x80 0 x90 0 x88 0 x83 0 xC6 0 xA1 0 x86 0 xbf 0 xc7 0 x8c 0 xc1 0 xff 0 xf7 8 void main void IT0 0 低电平触发 IT0 1 下降沿触发 EA 1 EX0 1 while 1 P0 Disp Tab LedNumVal 10 INT0 中断函数 void counter void interrupt 0 EX0 0 LedNumVal 中断计数 EX0 1 中断中断 0 计数计数 4 位数码管显示位数码管显示 试验 4 位数码管上显示外部中断计数 include include sbit LS138A P2 2 sbit LS138B P2 3 sbit LS138C P2 4 unsigned int LedNumVal 0 LedOut 8 此表为 LED 的字模 0 1 2 3 4 5 6 7 8 9 A b c d E L P U Hidden 20 unsigned char code Disp Tab 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 x92 0 x82 0 xF8 0 x80 0 x9 0 0 x88 0 x83 0 xC6 0 xA1 0 x86 0 xbf 0 xc7 0 x8c 0 xc1 0 xff 0 xf7 void delay unsigned int i char j for i i 0 i for j 200 j 0 j display unsigned char i LedOut 0 Disp Tab LedNumVal 10000 1000 LedOut 1 Disp Tab LedNumVal 1000 100 LedOut 2 Disp Tab LedNumVal 100 10 LedOut 3 Disp Tab LedNumVal 10 for i 0 i 8 i P0 LedOut i switch i case 0 LS138A 0 LS138B 0 LS138C 0 break case 1 LS138A 1 LS138B 0 LS138C 0 break case 2 LS138A 0 LS138B 1 LS138C 0 break case 3 LS138A 1 LS138B 1 LS138C 0 break case 4 LS138A 0 LS138B 0 LS138C 1 break case 5 LS138A 1 LS138B 0 LS138C 1 break case 6 LS138A 0 LS138B 1 LS138C 1 break case 7 LS138A 1 LS138B 1 LS138C 1 break delay 150 void main void P0 0 xff P1 0 xff P2 0 xff IT0 0 低电平触发 IT0 1 下降沿触发 EA 1 EX0 1 while 1 display INT0 中断函数 void counter void interrupt 0 EX0 0 LedNumVal 中断计数 EX0 1 INT0 INT1 include include sbit LS138A P2 2 sbit LS138B P2 3 sbit LS138C P2 4 unsigned int LedNumVal 1 LedNumVal 2 LedOut 8 unsigned char code Disp Tab 共阴数码管 0 9 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x40 void delay unsigned int i char j for i i 0 i for j 200 j 0 j void main void unsigned char i P0 0 xff P1 0 xff P2 0 xff IT0 0 低电平触发 IT0 1 下降沿触发 EX0 1 IT1 0 低电平触发 IT1 1 下降沿触发 9 EX1 1 EA 1 while 1 LedOut 0 Disp Tab LedNumVal 1 10000 1000 LedOut 1 Disp Tab LedNumVal 1 1000 100 0 x80 0 x7f 小数点 LedOut 2 Disp Tab LedNumVal 1 100 10 LedOut 3 Disp Tab LedNumVal 1 10 LedOut 4 Disp Tab LedNumVal 2 10000 1000 LedOut 5 Disp Tab LedNumVal 2 1000 100 LedOut 6 Disp Tab LedNumVal 2 100 10 LedOut 7 Disp Tab LedNumVal 2 10 for i 0 i 8 i P0 LedOut i switch i case 0 LS138A 0 LS138B 0 LS138C 0 break case 1 LS138A 1 LS138B 0 LS138C 0 break case 2 LS138A 0 LS138B 1 LS138C 0 break case 3 LS138A 1 LS138B 1 LS138C 0 break case 4 LS138A 0 LS138B 0 LS138C 1 break case 5 LS138A 1 LS138B 0 LS138C 1 break case 6 LS138A 0 LS138B 1 LS138C 1 break case 7 LS138A 1 LS138B 1 LS138C 1 break delay 150 INT0 中断函数 void counter0 void interrupt 0 EX0 0 delay 100 LedNumVal 1 EX0 1 INT1 中断函数 void counter1 void interrupt 2 EX1 0 delay 100 LedNumVal 2 EX1 1 T0 数码管数码管 include char num unsigned char Led 10 0 x3f 0 x06 0 x5B 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f void main TMOD 0 x01 EA 1 ET0 1 TR0 1 TH0 65536 45872 256 TL0 65536 45872 256 while 1 void T0 time interrupt 1 TH0 65536 45872 256 TL0 65536 45872 256 num if num 200 num 0 P0 0 x1e P2 Led 1 TIMEER0 试验数码管上显示定时器中断计数 include include sbit LS138A P2 2 定义 138 管脚 sbit LS138B P2 3 sbit LS138C P2 4 unsigned int LedNumVal LedOut 8 此表为 LED 的字模 0 1 2 3 4 5 6 7 8 9 A b c d E L P U Hidden 20 unsigned char code Disp Tab 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 x92 0 x82 0 xF8 0 x80 0 x9 0 0 x88 0 x83 0 xC6 0 xA1 0 x86 0 xbf 0 xc7 0 x8c 0 xc1 0 xff 0 xf7 系统初始化 void system Ini TMOD 0 x11 TH1 0 x1C 12 000M TL1 0 x18 IE 0 x8A TR1 1 void delay unsigned int i char j for i i 0 i for j 200 j 0 j void main system Ini while 1 unsigned char i LedOut 0 Disp Tab LedNumVal 10000 1000 LedOut 1 Disp Tab LedNumVal 1000 100 LedOut 2 Disp Tab LedNumVal 100 10 LedOut 3 Disp Tab LedNumVal 10 for i 0 i 500 计数 500 次 IntCnt 0 SecFlag 1 switch Counter 5 case 1 P0 0 x02 0000 0010 P2 LedSeg Sec 10 break case 2 P0 0 x04 0000 0100 P2 LedSeg Sec 10 break case 3 P0 0 x08 0000 1000 P2 LedSeg Min 10 break case 4 P0 0 x10 0001 0000 P2 LedSeg Min 10 break void InitTime 中断定时初始化 TMOD 0 x01 GATE C T M1 M0 GATE C T M1 M0 设置为定时器 0 的工作方式 1 0 0 0 0 0 0 0 1 TH0 0 xf8 装载初值 TL0 0 xcd TCON 0 x10 TF1 TR1 TF0 TR0 0000 控制启停 0 0 0 1 IE 0 x82 EA 00 ES ET1 EX1 ET0 EX0 中断允许控制 E enable 1 00 0 0 0 1 0 void main unsigned int Counter 0 bit StopFlag 0 0 Time Run 1 Time Stop InitTime 初始化单片机内部的定时器 以中断方式工作在 16 位模式 while 1 if StopFlag 0 走时 if SecFlag 计时程序 SecFlag 0 if Sec 59 Sec 0 if Min 59 Min 0 定时器定时器 按键按键 include reg51 h bit SecFlag 0 sbit TIMESTOP K P1 0 void Delay2ms unsigned int DelayTime 软件延时 unsigned int Count for Count 0 Count 500 计数 500 次 IntCnt 0 SecFlag 1 switch Counter 5 11 case 1 P0 0 x02 0000 0010 P2 LedSeg Sec 10 break case 2 P0 0 x04 0000 0100 P2 LedSeg Sec 10 break case 3 P0 0 x08 0000 1000 P2 LedSeg Min 10 break case 4 P0 0 x10 0001 0000 P2 LedSeg Min 10 break void InitTime 硬件延时 TMOD 0 x01 GATE C T M1 M0 GATE C T M1 M0 设置为定时器 0 的工作方式 1 0 0 0 0 0 0 0 1 TH0 0 xf8 装载初值 TL0 0 xcd TCON 0 x10 TF1 TR1 TF0 TR0 0000 控制启停 0 0 0 1 IE 0 x82 EA 00 ES ET1 EX1 ET0 EX0 E enable 中断允许控制 1 00 0 0 0 1 0 void main unsigned int Counter 0 bit StopFlag 0 0 Time Run 1 Time Stop InitTime 初始化单片机内部的定时器 以中断方式工作在 16 位模式 while 1 if StopFlag 0 走时 if SecFlag 计时程序 SecFlag 0 if Sec 59 Sec 0 if Min 59 Min 0 按键工作 让走时停止 StopFlag 1 if TIMESTOP K 0 Delay2ms 5 while TIMESTOP K 0 StopFlag StopFlag 7 LED 点阵点阵 显示数字显示数字 LED 点阵实验 流动显示 1 2 3 4 5 6 7 8 9 include unsigned char code tab 0 xfe 0 xfd 0 xfb 0 xf7 0 xef 0 xdf 0 xbf 0 x7f unsigned char code digittab 18 8 0 x00 0 x00 0 x3e 0 x41 0 x41 0 x41 0 x3e 0 x00 0 0 x00 0 x00 0 x00 0 x00 0 x21 0 x7f 0 x01 0 x00 1 0 x00 0 x00 0 x27 0 x45 0 x45 0 x45 0 x39 0 x00 2 0 x00 0 x00 0 x22 0 x49 0 x49 0 x49