【51單片機】【protues仿真】基于51單片機公交報站系統

目錄

一、主要功能

二、使用步驟

三、硬件資源

四、軟件設計

五、實驗現象

一、主要功能

主要功能如下:
1、LCD12864顯示時間、日期、公交車車站、溫度等
2、按鍵設置時間,顯示公交車信息
3、串口播報相應站點信息
4、按鍵控制上行、下行、手動播報站
5、LED指示上行、下行信息

二、使用步驟

基于51單片機的公交報站系統,lcd屏幕顯示時間,溫度,站點信息等等,通過按鍵來控制對應信息報站。

三、硬件資源

1、51單片機核心模塊
2、按鍵模塊
3、溫度傳感器
4、蜂鳴器模塊
5、時鐘模塊
6、LCD12864顯示模塊

四、軟件設計

#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
#include "value.h"
#include <UART.h>
sbit x_key=P1^3;
sbit s_key=P1^4;
sbit bz_key=P1^5;
sbit gb_key=P1^6;
sbit x_LED=P2^6;
sbit s_LED=P2^7;
sbit key_zhantai=P3^7;
sbit key_gongjiao=P1^7;
uchar x_mode,s_mode;
uchar x_num,s_num;
bit flag_200ms = 1;
uchar flag_c_en;
bit flag_100ms;
sbit dq=P3^2;?? ? ?//18b20 IO口的定義
uint temperature ; ? ?//溫度變量
uint flag_zhantai ; ? ?//站臺顯示標志位
uint flag_gongjiao ; ? ?//公交顯示標志位
/************ 延時函數 ?*****************/
void delay_uint(uint z)
{
?while(z--);
}
/********************************************************************
* 名稱 : delay_1ms()
* 功能 : 延時1ms函數
* 輸入 : q
* 輸出 : 無
***********************************************************************/
void delay_1ms(uint q)
{?? ?
?uint i,j;
?for(i=0;i<q;i++)
?for(j=0;j<115;j++);
}
uchar dis_lcd[10];
#include "lcd12864bu.h"
/******************顯示時間函數***************************/
void dis_shijian()?? ?//顯示時間
{
?write_shu16(0,0*8,shi,0);
?write_shuzi(1,0*2,2*8,fuhao[1],0);?? ??? ?
?write_shu16(0,3*8,fen,0);?? ?
?write_shuzi(1,0*2,5*8,fuhao[1],0);?? ??? ?
?write_shu16(0,6*8,miao,0);

?write_yhanzi(2,0,5*16,qita[6]-1); ? //星期
?//write_shu16(0,14*8,week,0);
?if(week==0)
?{
? write_yhanzi(1,0,7*16,xingqi[0]);
?}
?if(week==1)
?{
? write_yhanzi(1,0,7*16,xingqi[1]); ?
?}
?if(week==2)
?{
? write_yhanzi(1,0,7*16,xingqi[2]); ??
?}
?if(week==3)
?{
? write_yhanzi(1,0,7*16,xingqi[3]); ??
?}
?if(week==4)
?{
? write_yhanzi(1,0,7*16,xingqi[4]); ??
?}
?if(week==5)
?{
? write_yhanzi(1,0,7*16,xingqi[5]); ??
?}
?if(week==6)
?{
? write_yhanzi(1,0,7*16,xingqi[6]); ??
?}
?write_shu16(1*2,0*8,0x20,0);
?write_shu16(1*2,2*8,nian,0);
?write_shuzi(1,1*2,4*8,fuhao[0],0);?? ?
?write_shu16(1*2,5*8,yue,0);
?write_shuzi(1,1*2,7*8,fuhao[0],0);?? ?
?write_shu16(1*2,8*8,ri,0);

?write_shu18b20(1*2,12*8,temperature,0);?? ?
?write_shuzi(1,1*2,14*8,dian,0);
}
/************初始化顯示*****************/
void init_12864_dis() //初始化顯示
{
?cs1=1; //左屏開顯示
?cs2=0;?? ??? ?
?dis_shijian();?? ?//顯示時間?? ?
}
/***********************18b20初始化函數*****************************/
void init_18b20()
{
?bit q;
?dq=1;?? ??? ??? ??? ?//把總線拿高
?delay_uint(1);?? ? ? ?//15us
?dq=0;?? ??? ??? ??? ?//給復位脈沖
?delay_uint(80);?? ??? ?//750us
?dq=1;?? ??? ??? ??? ?//把總線拿高 等待
?delay_uint(10);?? ??? ?//110us
?q=dq;?? ??? ??? ??? ?//讀取18b20初始化信號
?delay_uint(20);?? ??? ?//200us
?dq=1;?? ??? ??? ??? ?//把總線拿高 釋放總線
}

/*************寫18b20內的數據***************/
void write_18b20(uchar dat)
{
?uchar i;
?for(i=0;i<8;i++)
?{?? ??? ??? ??? ??? ? //寫數據是低位開始
? dq=0;?? ??? ??? ? //把總線拿低寫時間隙開始?
? dq=dat&0x01; //向18b20總線寫數據了
? delay_uint(5);?? ? // 60us
? dq=1;?? ??? ??? ? //釋放總線
? dat>>=1;
?}?? ?
}

/*************讀取18b20內的數據***************/
uchar read_18b20()
{
?uchar i,value;
?for(i=0;i<8;i++)
?{
? dq=0;?? ??? ??? ? //把總線拿低讀時間隙開始?
? value>>= 1;?? ? //讀數據是低位開始
? dq=1;?? ??? ??? ? //釋放總線
? if(dq==1)?? ??? ? //開始讀寫數據?
? value|=0x80;
? delay_uint(5);?? ? //60us?? ?讀一個時間隙最少要保持60us的時間
?}
?return value;?? ??? ? //返回數據
}

/*************讀取溫度的值 讀出來的是小數***************/
uint read_temp()
{
?uint value;
?uchar low;?? ??? ??? ? ? //在讀取溫度的時候如果中斷的太頻繁了,就應該把中斷給關了,否則會影響到18b20的時序
?init_18b20();?? ??? ? ? //初始化18b20
?write_18b20(0xcc);?? ? ? //跳過64位ROM
?write_18b20(0x44);?? ? ? //啟動一次溫度轉換命令
?delay_uint(50);?? ??? ? ? //500us

?init_18b20();?? ??? ? ? //初始化18b20?? ?
?write_18b20(0xcc);?? ? ? //跳過64位ROM
?write_18b20(0xbe);?? ? ? //發出讀取暫存器命令
?? ?
?EA=0;
?low=read_18b20();?? ? ? //讀溫度低字節
?value=read_18b20(); ?//讀溫度高字節
?EA =1;
?value<<=8;?? ??? ? ? //把溫度的高位左移8位
?value|=low;?? ??? ? ? //把讀出的溫度低位放到value的低八位中
?value*=0.625;?? ? ? ? ? //轉換到溫度值 小數
?return value;?? ??? ? ? //返回讀出的溫度 帶小數
}

/******************顯示時間函數***************************/
void dis_shijian_set()?? ?//顯示時間
{
?write_shu16(0*2,0*8,0x20,0);
?write_shu16(1*2,2*8,shi,0);
?write_shu16(1*2,6*8,fen,0);?? ?
?write_shu16(1*2,10*8,miao,0);

?write_shu16(0*2,2*8,nian,0);?? ?
?write_shu16(0*2,6*8,yue,0);?? ?
?write_shu16(0*2,10*8,ri,0);

?write_yhanzi(1,4,5*16,xingqi[week]);?? ??? ??? ?
}

/******************時間芯片顯示函數**********************/?? ? ??
void ds1302_dis()
{
?uchar miao_1;
?if(menu_1 == 0)
?{
? read_time();
? if(miao_1 != miao)
? {
? ?miao_1 = miao;
? ?dis_shijian();?? ?//顯示時間
? }
?}
}

/********************獨立按鍵程序*****************/
uchar key_can;?? ? //按鍵值
void key()?? ? //獨立按鍵程序
{
?static uchar key_new;
?key_can=20; ? ? ? ? ? ? ? ? ? //按鍵值還原
?P3|=0x78; ? ? ? ? ? ? ? ? ? ? //對應的按鍵IO口輸出為1
?if((P3&0x78)!=0x78)?? ??? ?//按鍵按下
?{
? delay_1ms(1);?? ? ? ? ?? ?//按鍵消抖動
? if(((P3&0x78)!=0x78)&&(key_new==1))
? {?? ??? ??? ??? ??? ??? ?//確認是按鍵按下
? ?key_new=0;
? ?switch(P3&0x78)
? ?{
?? ??? ?case 0x70:key_can=1;break;?? ? //得到按鍵值
?? ??? ?case 0x68:key_can=2;break;?? ? //得到按鍵值
?? ??? ?case 0x58:key_can=3;break;?? ? //得到按鍵值
?? ??? ?case 0x38:key_can=4;break;?? ? //得到按鍵值
? ?}
? }?? ??? ??? ?
?}
?else?
?key_new=1;?? ?
}

/**********************設置函數************************/
void key_with()
{
?if(key_can==4) ? //退出鍵
?{
? qingling();
? init_12864_dis(); //初始化顯示
? flag_200ms=1;
? menu_1=0;
?}
?if(key_can==1)?? ?//設置鍵
?{
? menu_1 ++;
? flag_200ms=1;
? if(menu_1==1)
? {
? ?x_num=0;
? ?s_num=0;
? ?x_mode=0;
? ?s_mode=0;
? ?qingling();
? ?init_12864_set1();
? }
? if(menu_1>7)
? menu_1 = 1;
?}
?if(menu_1!=0)
?{
? if(menu_1==1)?? ??? ? ?//設置年
? {
? ?if(key_can==2)?? ?//加
? ?set_ds1302time(1,&nian,0x99);?? ??? ?
? ?if(key_can==3)?? ?//減?? ? ?
? ?set_ds1302time(0,&nian,0x99);?? ?
? }
? if(menu_1==2)?? ??? ? ?//設置月
? {
? ?if(key_can==2)?? ?//加
? ?set_ds1302time(1,&yue,0x13);?? ??? ?
? ?if(key_can==3)?? ?//減?? ? ?
? ?set_ds1302time(0,&yue,0x13);?? ?
? }
? if(menu_1==3)?? ??? ? ?//設置日
? {
? ?if(key_can==2)?? ?//加
? ?set_ds1302time(1,&ri,0x32);?? ??? ?
? ?if(key_can==3)?? ?//減?? ? ?
? ?set_ds1302time(0,&ri,0x32);?? ?
? }
? if(menu_1==4)?? ??? ? ?//設置時
? {
? ?if(key_can==4)?? ?//加
? ?set_ds1302time(1,&shi,0x24);?? ??? ?
? ?if(key_can==3)?? ?//減?? ? ?
? ?set_ds1302time(0,&shi,0x24);?? ?
? }
? if(menu_1==5)?? ??? ? ?//設置分
? {
? ?if(key_can==2)?? ?//加
? ?set_ds1302time(1,&fen,0x60);?? ??? ?
? ?if(key_can==3)?? ?//減?? ? ?
? ?set_ds1302time(0,&fen,0x60);?? ?
? }
? if(menu_1==6)?? ??? ? ?//設置秒
? {
? ?if(key_can==2)?? ?//加
? ?set_ds1302time(1,&miao,0x60);?? ??? ?
? ?if(key_can==3)?? ?//減?? ? ?
? ?set_ds1302time(0,&miao,0x60);?? ?
? }
? if(menu_1==7)?? ??? ? ?//設置星期
? {
? ?if(key_can==2)?? ?//加
? ?set_ds1302time(1,&week,0x8);?? ??? ?
? ?if(key_can==3)?? ?//減?? ? ?
? ?set_ds1302time(0,&week,0x8);?? ?
? }
? dis_shijian_set();?? ?//顯示時間
? switch(menu_1)?? ? ? // 光標顯示
? {
? ?case 1:write_shu16(0*2,2*8,nian,1);break;
? ?case 2:write_shu16(0*2,6*8,yue,1);break;
? ?case 3:write_shu16(0*2,10*8,ri,1);break;
? ?case 4:write_shu16(1*2,2*8,shi,1);break;
? ?case 5:write_shu16(1*2,6*8,fen,1);break;
? ?case 6:write_shu16(1*2,10*8,miao,1);break;
? ?case 7:write_yhanzi(1,4,5*16,xingqi[week]);break;
? }
? write_time();?? ? ? //把時間寫進去
?}?? ??? ??? ?
}
/*********************定時器0、定時器1初始化******************/
void time0_init()?? ? ?
{?? ??? ??? ??? ??? ??
?EA=1;?? ? ?? ? ?//開總中斷
?TMOD=0X11;?? ? ?//定時器0、定時器1工作方式1
?ET0=1;?? ??? ? ?//開定時器0中斷?
?TR0=1;?? ??? ? ?//允許定時器0定時
}

void baozhan()
{
?? ?if(key_zhantai==0)
?{
? delay_1ms(20);
? if(key_zhantai==0)
? {
? ?qingling();
? ?x_mode=1;
? ?s_mode=0;
? ?x_num=0;
? ?s_num=0;
? ?x_LED=0;
? ?s_LED=0;
?? ??? ?
?? ?write_yhanzi(1,4,0*16,yihaozhan[0]); ? //一
? write_yhanzi(1,4,1*16,yihaozhan[1]); ? //號
? write_yhanzi(1,4,2*16,yihaozhan[2]); ? //站?

? write_yhanzi(1,4,4*16,erhaozhan[0]); ? //二
? write_yhanzi(1,4,5*16,erhaozhan[1]); ? //號
? write_yhanzi(1,4,6*16,erhaozhan[2]); ? //站
?? ?
?? ?write_yhanzi(1,6,0*16,sanhaozhan[0]); ? //三
? write_yhanzi(1,6,1*16,sanhaozhan[1]); ? //號
? write_yhanzi(1,6,2*16,sanhaozhan[2]); ? //站

? write_yhanzi(1,6,4*16,sinhaozhan[0]); ? //四
? write_yhanzi(1,6,5*16,sinhaozhan[1]); ? //號
? write_yhanzi(1,6,6*16,sinhaozhan[2]); ? //站
? }
? while(!key_zhantai);
?}

?if(x_key==0 || key_gongjiao==0)
?{
? delay_1ms(20);
? if(x_key==0 || key_gongjiao==0)
? {
? ?qingling();
? ?x_mode=1;
? ?s_mode=0;
? ?x_num=0;
? ?s_num=0;
? ?x_LED=0;
? ?s_LED=1;
? ?write_yhanzi(1,4,0*16,daoda[0]); ? //到
? ?write_yhanzi(1,4,1*16,daoda[1]); ? //達
? ?write_shuzi(1,2*2,4*8,fuhao[1],0);//:

? ?write_yhanzi(1,6,0*16,xiayizhan[0]); ? //下
? ?write_yhanzi(1,6,1*16,xiayizhan[1]); ? //站
? ?write_shuzi(1,3*2,4*8,fuhao[1],0); //:
? }
? while((!x_key) || (!key_gongjiao));
?}
?if(s_key==0 || key_gongjiao==0)
?{
? delay_1ms(20);
? if(s_key==0 || key_gongjiao==0)
? {
? ?qingling();
? ?x_mode=0;
? ?s_mode=1;
? ?x_num=0;
? ?s_num=0;
? ?x_LED=1;
? ?s_LED=0;
? ?write_yhanzi(1,4,0*16,daoda[0]); ? //到
? ?write_yhanzi(1,4,1*16,daoda[1]); ? //達
? ?write_shuzi(1,2*2,4*8,fuhao[1],0);//:

? ?write_yhanzi(1,6,0*16,xiayizhan[0]); ? //下
? ?write_yhanzi(1,6,1*16,xiayizhan[1]); ? //站
? ?write_shuzi(1,3*2,4*8,fuhao[1],0); //:
? }
? while((!s_key) || (!key_gongjiao));
?}
?if((bz_key==0)&&(x_mode==1))
?{
? delay(20);
? if((bz_key==0)&&(x_mode==1))
? {
?? ??? ?x_num++; ?
?? ? ?x_num%=6;
?? ??? ?}
?? ??? ? ?while(!bz_key);
? }
?if((bz_key==0)&&(s_mode==1))
?{
? delay(20);
?? ?if((bz_key==0)&&(s_mode==1))
? {
?? ??? ?s_num++; ?
?? ? ?s_num%=6;
? }
? while(!bz_key);
?}
?if(gb_key==0)
?{
? delay_1ms(20);
? if(gb_key==0)
? {
? ??? ?x_mode=0;
? ? s_mode=0;
? ? x_num=0;
? ? s_num=0;
?? ?x_LED=1;
? ? s_LED=1;
?? ?qingling();
? }
?}
}
void yuyin()
{
?/******************************下行報站顯示***********/
?if(x_num==1)
?{

?? ??
? write_yhanzi(1,4,3*16,yihaozhan[0]); ? //一
? write_yhanzi(1,4,4*16,yihaozhan[1]); ? //號
? write_yhanzi(1,4,5*16,yihaozhan[2]); ? //站?

? write_yhanzi(1,6,3*16,erhaozhan[0]); ? //二
? write_yhanzi(1,6,4*16,erhaozhan[1]); ? //號
? write_yhanzi(1,6,5*16,erhaozhan[2]); ? //站
?? ? ?? ? delay(500);
?? ?
?}
?if(x_num==2)
?{
? write_yhanzi(1,4,3*16,erhaozhan[0]); ? //二
? write_yhanzi(1,4,4*16,erhaozhan[1]); ? //號
? write_yhanzi(1,4,5*16,erhaozhan[2]); ? //站

? write_yhanzi(1,6,3*16,sanhaozhan[0]); ? //三
? write_yhanzi(1,6,4*16,sanhaozhan[1]); ? //號
? write_yhanzi(1,6,5*16,sanhaozhan[2]); ? //站

?}

?if(x_num==3)
?{
? write_yhanzi(1,4,3*16,sanhaozhan[0]); ? //三
? write_yhanzi(1,4,4*16,sanhaozhan[1]); ? //號
? write_yhanzi(1,4,5*16,sanhaozhan[2]); ? //站

? write_yhanzi(1,6,3*16,sinhaozhan[0]); ? //四
? write_yhanzi(1,6,4*16,sinhaozhan[1]); ? //號
? write_yhanzi(1,6,5*16,sinhaozhan[2]); ? //站

?}
?if(x_num==4)
?{
? write_yhanzi(1,4,3*16,sinhaozhan[0]); ? //四
? write_yhanzi(1,4,4*16,sinhaozhan[1]); ? //號
? write_yhanzi(1,4,5*16,sinhaozhan[2]); ? //站

? write_yhanzi(1,6,3*16,zhongdianzhan[0]); ? //終
? write_yhanzi(1,6,4*16,zhongdianzhan[1]); ? //點
? write_yhanzi(1,6,5*16,zhongdianzhan[2]); ? //站

?}
?if(x_num==5)
?{
? write_yhanzi(1,4,3*16,zhongdianzhan[0]); ? //終
? write_yhanzi(1,4,4*16,zhongdianzhan[1]); ? //點
? write_yhanzi(1,4,5*16,zhongdianzhan[2]); ? //站

? write_yhanzi(1,6,0*16,ganxiechengzuo[0]); ? //感
? write_yhanzi(1,6,1*16,ganxiechengzuo[1]); ? //謝
? write_yhanzi(1,6,2*16,ganxiechengzuo[2]); ? //乘
? write_yhanzi(1,6,3*16,ganxiechengzuo[3]); ? //坐
? write_yhanzi(1,6,4*16,ganxiechengzuo[4]); ? //本
? write_yhanzi(1,6,5*16,ganxiechengzuo[5]); ? //公
? write_yhanzi(1,6,6*16,ganxiechengzuo[6]); ? //車
??


?}
?/******************************上行報站顯示***********/
?if(s_num==1)
?{
?? ? ?write_yhanzi(1,6,0*16,xiayizhan[0]); ? //下
? ?write_yhanzi(1,6,1*16,xiayizhan[1]); ? //站
? ?write_shuzi(1,3*2,4*8,fuhao[1],0); //:
?? ??
? write_yhanzi(1,4,3*16,sinhaozhan[0]); ? //四
? write_yhanzi(1,4,4*16,sinhaozhan[1]); ? //號
? write_yhanzi(1,4,5*16,sinhaozhan[2]); ? //站?

? write_yhanzi(1,6,3*16,sanhaozhan[0]); ? //三
? write_yhanzi(1,6,4*16,sanhaozhan[1]); ? //號
? write_yhanzi(1,6,5*16,sanhaozhan[2]); ? //站

?}
?if(s_num==2)
?{
? write_yhanzi(1,4,3*16,sanhaozhan[0]); ? //三
? write_yhanzi(1,4,4*16,sanhaozhan[1]); ? //號
? write_yhanzi(1,4,5*16,sanhaozhan[2]); ? //站

? write_yhanzi(1,6,3*16,erhaozhan[0]); ? //二
? write_yhanzi(1,6,4*16,erhaozhan[1]); ? //號
? write_yhanzi(1,6,5*16,erhaozhan[2]); ? //站
?}
?if(s_num==3)
?{
? write_yhanzi(1,4,3*16,erhaozhan[0]); ? //二
? write_yhanzi(1,4,4*16,erhaozhan[1]); ? //號
? write_yhanzi(1,4,5*16,erhaozhan[2]); ? //站

? write_yhanzi(1,6,3*16,yihaozhan[0]); ? //一
? write_yhanzi(1,6,4*16,yihaozhan[1]); ? //號
? write_yhanzi(1,6,5*16,yihaozhan[2]); ? //站?
?}
?if(s_num==4)
?{
? write_yhanzi(1,4,3*16,yihaozhan[0]); ? //一
? write_yhanzi(1,4,4*16,yihaozhan[1]); ? //號
? write_yhanzi(1,4,5*16,yihaozhan[2]); ? //站?

? write_yhanzi(1,6,3*16,zhongdianzhan[0]); ? //終
? write_yhanzi(1,6,4*16,zhongdianzhan[1]); ? //點
? write_yhanzi(1,6,5*16,zhongdianzhan[2]); ? //站
?}
?if(s_num==5)
?{
? write_yhanzi(1,4,3*16,zhongdianzhan[0]); ? //終
? write_yhanzi(1,4,4*16,zhongdianzhan[1]); ? //點
? write_yhanzi(1,4,5*16,zhongdianzhan[2]); ? //站

? write_yhanzi(1,6,0*16,ganxiechengzuo[0]); ? //感
? write_yhanzi(1,6,1*16,ganxiechengzuo[1]); ? //謝
? write_yhanzi(1,6,2*16,ganxiechengzuo[2]); ? //乘
? write_yhanzi(1,6,3*16,ganxiechengzuo[3]); ? //坐
? write_yhanzi(1,6,4*16,ganxiechengzuo[4]); ? //本
? write_yhanzi(1,6,5*16,ganxiechengzuo[5]); ? //公
? write_yhanzi(1,6,6*16,ganxiechengzuo[6]); ? //車
?}
}

void main()
{?
?x_key=1;
?s_key=1;
?bz_key=1;
?gb_key=1;
?x_LED=1;
?s_LED=1;
?P0=P1=P2=P3=0xff;?? ??? ?//單片機IO口初始化為1?? ?
?init_ds1302();
?delay_1ms(5);
?init_lcd();
?delay_1ms(5);?? ?
?Clr_Scr();
?time0_init();
?delay_1ms(5);
?init_12864_dis(); //初始化顯示
?delay_1ms(5);
?? ??? ? ?? ?uart_cfg();?? ?
?while(1)
?{
? baozhan(); ? ? ? ? ?//顯示上站和下站字頭
? yuyin(); ? ? ? ? ? ?//顯示上站和下站是哪一站
? key();?? ? ? ? ? ? ? ?//改變key_san的值,判斷K1-K4哪個鍵按下即設置時間的4個鍵哪個被按下
? if(key_can<10) ?
? {
? ?key_with();?? ? ? ? ?//根據key_san的值執行相應程序
? }
? if(flag_100ms==1)
? {?? ??
? ?flag_100ms=0;
? }
? if(flag_200ms==1) ? ?//200ms
? {
? ?flag_200ms=0;
? ?temperature=read_temp();?? ?//先讀出溫度的值
? ?ds1302_dis(); ? ?//時鐘顯示函數,同時顯示溫度函數也在里面
? }
?}
}

五、實驗現象

演示視頻:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/98573.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98573.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98573.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第1節-PostgreSQL入門-從表中查詢數據

摘要&#xff1a;在本教程中,你將學習如何使用 PostgreSQL 的 SELECT 語句從表中檢索數據。 SELECT 語句 要從表中查詢數據,需使用 PostgreSQL 的 SELECT 語句。 以下是 SELECT 語句的基本語法: SELECT column1, column2, ... FROM table_name;在這種語法中: 首先,在 SELECT 關…

【C++進階】---- map和set的使用

1.序列式容器和關聯式容器 前?我們已經接觸過STL中的部分容器如&#xff1a;string、vector、list、deque、array、forward_list等&#xff0c;這些容器統稱為序列式容器&#xff0c;因為邏輯結構為線性序列的數據結構&#xff0c;兩個位置存儲的值之間?般沒有緊密的關聯關系…

430章:Python Web爬蟲入門:使用Requests和BeautifulSoup

在軟件交付日益高頻、用戶需求快速迭代的今天&#xff0c;版本發布流程的規范性直接決定了團隊的交付效率、產品質量和用戶滿意度。然而&#xff0c;許多團隊仍面臨以下痛點&#xff1a;發布混亂&#xff1a;分支管理隨意&#xff0c;代碼沖突頻發&#xff1b;質量失控&#xf…

代碼隨想錄第七天|● 454.四數相加II ● 383. 贖金信 ● 15. 三數之和 18.四數之和

本文所有題目鏈接/文章講解/視頻講解&#xff1a;https://programmercarl.com/0454.%E5%9B%9B%E6%95%B0%E7%9B%B8%E5%8A%A0II.html 454.四數相加II 有四個數組&#xff0c;如果要遍歷則時間復雜度太大 可以選擇分組&#xff0c;a和b一組&#xff0c;c和d一組 這樣就可以等同于…

Vue3源碼reactivity響應式篇之computed計算屬性

概述 vue3中&#xff0c;computed函數用于表示計算屬性&#xff0c;有惰性求值、響應式追蹤依賴的特點。本文將介紹computed的實現原理以及其機制細節。 源碼解析 computed計算屬性和computed方法、ComputedRefImpl類以及refreshComputed方法有關。 computed方法 computed暴露給…

[嵌入式embed]Keil5燒錄后STM32不自動運行,復位才能運行

[嵌入式embed]Keil5燒錄后STM32不自動運行,復位才能運行Keil5-驗證“Reset and Run”功能是否生效參考文章Keil5-驗證“Reset and Run”功能是否生效 參考文章 Keil5燒錄后STM32不自動運行&#xff1f;必須復位才能啟動的終極解決方案

阿里云Qwen3系列模型部署微調評測

與阿里云一起輕松實現數智化讓算力成為公共服務&#xff1a;用大規模的通用計算&#xff0c;幫助客戶做從前不能做的事情&#xff0c;做從前做不到的規模。讓數據成為生產資料&#xff1a;用數據的實時在線&#xff0c;幫助客戶以數據為中心改變生產生活方式創造新的價值。模型…

北京魯成偉業 | 三屏加固筆記本電腦C156F3

在工業控制、應急指揮、測控及無人機作業等對設備穩定性與環境適應性要求較高的領域&#xff0c;一款性能均衡且堅固耐用的計算機往往能為工作效率提供有力支撐。三屏加固筆記本電腦C156F3便是針對這類需求設計的設備&#xff0c;憑借多方面的特性&#xff0c;可滿足不同場景下…

七彩氛圍燈芯片EH3A01RGB驅動芯片定時開關IC方案

?在現代智能家居和個性化照明領域&#xff0c;EH3A01-442A-A24F小夜燈定時芯片憑借其多功能、低功耗和靈活配置的特點&#xff0c;成為LED氛圍燈、小夜燈及便攜式照明方案的理想選擇。本文將深入解析該芯片的核心功能、電氣特性及應用場景&#xff0c;幫助開發者與用戶全面掌握…

Spring Boot 項目新增 Module 完整指南

1. 模塊化開發的重要性 在軟件開發中&#xff0c;隨著項目規模的不斷擴大&#xff0c;??模塊化設計??已成為提高代碼可維護性和可復用性的關鍵實踐。通過將大型項目拆分為多個獨立模塊&#xff0c;開發團隊可以??并行開發??不同功能組件&#xff0c;降低代碼耦合度&…

Git cherry-pick 與分支重置技術實現代碼健全性保障下的提交記錄精簡

代碼健全性保障&#xff1a;上市審查中的 Git 提交記錄整理方案&#xff08;核心功能提交篩選流程&#xff09; 一、背景與目的 我司正處于上市籌備階段&#xff0c;券商需對核心系統進行 Git 代碼審查&#xff0c;并基于提交記錄生成測試報告。由于原始提交記錄包含大量細節性…

前后端聯調時出現的一些問題記錄

服務器的ip沒有設置成所有ip都能訪問的&#xff0c;或防火墻沒開跨域問題&#xff08;剛開始異源&#xff0c;有這個問題&#xff0c;主要是前端做一下配置代理&#xff0c;后端也可以配置跨域資源共享&#xff08;CORS&#xff09;&#xff09;Configuration public class Cor…

數字圖像處理-設計生成一個半球

1 實驗題目設計生成一個半球&#xff08;matlab&#xff09;。2 程序源代碼%Hemisphere clear,clc,close all %Sphere radius R1; %Set grid number n30; theta (-n:2:n)/n*pi; phi ([0,0:2:n])/n*pi/2; cosphi cos(phi); cosphi(1) 0; cosphi(end) 0; sintheta sin(thet…

mac M1上安裝windows虛擬機報錯

Parallels版本是18.0.02 mac&#xff1a;arm系統15.6.1 自動獲取windows11下載&#xff0c;安裝的時候報錯&#xff0c;藍屏&#xff0c;是因為安裝的版本不對&#xff0c;猜測原因應該是18.0.02不支持最新版的windows11&#xff0c;需要更新最新版的Parallels。 解決方案&am…

基于R語言機器學習方法在生態經濟學領域中的實踐技術應用

近年來&#xff0c;人工智能領域已經取得突破性進展&#xff0c;對經濟社會各個領域都產生了重大影響&#xff0c;結合了統計學、數據科學和計算機科學的機器學習是人工智能的主流方向之一&#xff0c;目前也在飛快的融入計量經濟學研究。表面上機器學習通常使用大數據&#xf…

第01章 初識MySQL與mysql8.0的安裝

初識 MySQL 文章目錄初識 MySQL引言一、數據庫基礎1.1 什么是數據庫1.2 表1.3 數據類型1.4 主鍵二、數據庫技術構成2.1 數據庫系統2.2 SQL 語言2.2.1 數據定義語言&#xff08;DDL&#xff09;2.2.2 數據操作語言&#xff08;DML&#xff09;2.2.3 數據查詢語言&#xff08;DQL…

【數據結構基礎習題】-1- 數據結構基本操作

一、順序表和鏈表習題 1. 順序表就地逆置#include <stdio.h> // 定義順序表結構 #define MAXSIZE 100 typedef struct {int data[MAXSIZE];int length; } SqList; // 就地逆置順序表 void reverseList(SqList *L) {int i, temp;for (i 0; i < L->length / 2; i) {…

【Java實戰?】從0到1:Spring Boot Web開發與接口設計實戰

目錄一、Spring Boot Web 基礎配置1.1 Web 起步依賴&#xff08;spring-boot-starter-web 導入與核心組件&#xff09;1.2 內置服務器配置&#xff08;Tomcat 端口、線程池、連接超時設置&#xff09;1.3 靜態資源訪問&#xff08;靜態資源存放路徑、自定義資源映射&#xff09…

房屋安全鑒定機構評價

房屋安全鑒定機構評價&#xff1a;如何選擇專業可靠的檢測服務在建筑行業快速發展的今天&#xff0c;房屋安全鑒定已成為保障建筑安全、預防事故的重要環節。面對市場上眾多的房屋安全鑒定機構&#xff0c;如何科學評價并選擇一家專業可靠的服務提供方&#xff0c;是許多業主、…

【算法專題訓練】19、哈希表

1、哈希表基礎知識 以鍵值對的方式進行數據存儲優點&#xff1a;哈希表數據結構在插入、刪除或查找一個元素時&#xff0c;都只需要O(1)的時間 哈希表設計三要點&#xff1a; 為了快速確定一個元素在哈希表中的位置&#xff0c;可以使用一個數組&#xff0c;元素的位置為他的…