当年,我写的垃圾代码······
- 2025-07-17 15:31:22
在技术交流群经常会看到,有些刚参加工作的粉丝说:
自己写的很垃圾......
初学者的代码是什么水平......
想看看菜鸟写的代码是怎样的?
说句实话,那些所谓的大佬、大神、高级工程师,谁不是从初级的菜鸟阶段走过来的?
int main(void)
{
Delay(20); //等待LCD复位完成
P1M0 = 0x03; //端口模式配置(强上拉)
P10 = 0; //关闭继电器(LED)
UART_Init(); //UART串口初始化
TIMER_Init(); //定时器初始化
DA_Init(); //DA初始化
LCD_Init(); //液晶模块初始化(含界面、触摸控制等)
while(1)
{
PCON |= 0x01; //进入空闲模式(待机)
}
return 0;
}
void main(void)
{
uint8_t status;
uint8_t password[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
uint8_t addr_block = 0; //块地址(扇区 == 4块)
Sys_Initializes();
/* 开机状态, LED闪烁 */
LED1_ON;
DelaySoftware(0xFF0);
LED1_OFF;
LED2_ON;
FM17xx_Initializes();
while(1)
{
status = Request(RF_CMD_REQUEST_ALL);
if(status == FM1715_OK)
{
DelaySoftware(0x10);
status = AntiColl();
if(status == FM1715_OK)
{
SendStrings(UID, 4);
}
status = Select_Card();
if(status == FM1715_OK)
{
status = Load_keyE2_CPY(password);
if(status == TRUE)
{
status = Authentication(UID, addr_block/4, RF_CMD_AUTH_LA); //验证x扇区keyA
if(status == FM1715_OK)
{
LED2_OFF;
status=MIF_READ(buffer, addr_block); //读取x扇区x-x块数据
SendStrings(buffer, 16);
addr_block++;
if(40 == addr_block)
{
addr_block = 0;
}
}
}
}
}
LED1_ON;
DelaySoftware(0x1F0);
LED1_OFF;
LED2_ON;
DelaySoftware(0x1F0);
}
}
void main(void)
{
uint8_t key_val;
uint8_t succeed_id;
uint64_t cnt_wakeup= 0;
Sys_Initializes();
PERIP_POWER_ON;
LED_BACK_ON;
LED_R_OFF;
LED_G_ON;
BEEP_Normal(1);
BEEP_OFF;
LED_BACK_OFF;
LED_G_OFF;
/* 电机反转 */
MOTO_OUT;
MOTO_RIGHT;
delayms(200);
MOTO_CLOSE;
if(0 == BATTERY_READ)
{ //<电量低、请更换电池>
NY3P_Play(NY3P_VID2, DELAY_MS_VID2, VOICE_WAIT);
}
while(1)
{
/* 1.IC卡扫描 */
if(search_card_op() == M1_OK) //寻卡
{
CLRWDT();
SWDTEN = 0;
if(set_pcd_picc_link() == M1_OK)
{
PERIP_POWER_ON;
NY3P_Reset();
BEEP_Short(1);
PcdHalt(); //RC523进入停机模式
if(FLAG_N_RESTORE == Restore_Check(TYPE_NONE))
{ //处于非出厂状态下,验证IC卡开门
if(CARD_OK == APP_Card_Verify(MLastSelectedSnr, &succeed_id, TYPE_CARD))
{
Verify_Dual(SUCCEED_TYPE_CARD, succeed_id, gFlag_OpenWay);
}
}
}
}
else
{
if(1 == gFlag_IRQ)
{
cnt_wakeup++;
if(0x400 < cnt_wakeup)
{
cnt_wakeup = 0;
gFlag_IRQ = 0;
}
}
else
Sys_Sleep();
}
if(1 == gFlag_IRQ)
{
CLRWDT();
SWDTEN = 0;
PERIP_POWER_ON;
/* 2.触摸键盘扫描 */
if(KEY_NULL != (key_val = TouchKey_Scan(KEYVOICE_ON)))
{
LED_BACK_ON;
Respond_Key_Fp(key_val); //响应键盘
LED_BACK_OFF;
}
/* 3.独立信号扫描 */
if(KEY_NULL != (key_val = Independ_Signal_Scan(KEYVOICE_OFF)))
{
switch(key_val)
{
/* 3.1验证指纹 */
case WAKEUP_VAL:
{
INFOR_Music(DO3,300);
LED_BACK_ON;
Respond_Key_Fp(KEY_NULL);
LED_BACK_OFF;
}break;
/* 3.2恢复出厂 */
case RESTORE_VAL:
{
INFOR_Music(DO3,300);
Restore();
}break;
/* 3.3一键开锁 */
case YKAJ_VAL:
{
INFOR_Music(DO3,300);
moto_ctr();
}break;
}
}
}
}
}
int main(void)
{
uint8_t key_val;
System_PowerOn_Initializes();
Led_Off();
LED2_OFF;
DCT_CLOSE; //电磁铁-关闭
//检测语音顺序
for(key_val=1; key_val<43; key_val++)
Ny3p_Play(key_val, 2000, VOICE_DELAY_WAIT, VOICE_ON);
Display_CurrentBattery();
TIMTiming1_Ns(8);
TIMTiming2_Nms(10);
while(1)
{
if(FLAG_VALID == gTIMTiming2_FlagOver)
{
Display_CurrentTime(); //显示当前时间
TIMTiming2_Nms(500);
}
if((key_val = KEY_Scan(KEYVOICE_OFF)) != KEY_NONE)
{
if(KEY_BACK != key_val)
{
/* 密码 */
Led_Key();
Verify_PW();
}
else
{
KEY_VOICE();
}
LED1_OFF;
OLED_Clear_Sel(0,6);
Display_Sign();
Display_CurrentTime();
TIMTiming1_Ns(8);
TIMTiming2_Nms(10);
}
if((key_val = Independ_Signal_Scan(KEYVOICE_ON)) != KEY_NONE)
{
switch(key_val)
{
/* 指纹 */
case KEY_BLH1_WEAKUP:
{
Led_Fun();
Verify_FP1();
}break;
/* 设置 */
case KEY_SET:
{
Led_Fun();
Menu_Fun();
}break;
/* 复位 */
case KEY_RESTORE:
{
Restore();
}break;
/* 防撬(小偷) */
case KEY_THIEF:
{
Warning_Thief();
}break;
}
LED1_OFF;
OLED_Clear_Sel(0,6);
Display_Sign();
Display_CurrentTime();
TIMTiming1_Ns(8);
TIMTiming2_Nms(10);
}
if(FLAG_VALID == gTIMTiming1_FlagOver)
{
Low_Power();
}
}
}

END


往期精选:

请点下【♡】给小编加鸡腿

声明:本文内容及配图由入驻作者撰写或合作网站授权转载。文章观点仅代表作者本人,不代表科技区角网立场。仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
点击这里
扫码添加微信

- 点赞 0
-
分享
微信扫一扫
-
加入群聊
扫码加入群聊