桂林电子科技大学信息科技学院嵌入式实训下文档格式.docx
《桂林电子科技大学信息科技学院嵌入式实训下文档格式.docx》由会员分享,可在线阅读,更多相关《桂林电子科技大学信息科技学院嵌入式实训下文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
![桂林电子科技大学信息科技学院嵌入式实训下文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/22/2ac72f29-4c3f-44fc-ab28-1d5c2f229ad7/2ac72f29-4c3f-44fc-ab28-1d5c2f229ad71.gif)
unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsignedchardisp[2]={9,9};
unsignedcharsmg_flag=0;
voiddelay(void)
{
unsignedchara,b;
for(b=173;
b>
0;
b--)
for(a=143;
a>
a--);
}
voidsent(unsignedchartemp)
EA=0;
SBUF=temp;
while(!
TI);
TI=0;
EA=1;
voiddisplay(void)
if(smg_flag)
{
P0=table[disp[0]];
smg1=0;
smg2=1;
}
else
P0=table[disp[1]];
smg1=1;
smg2=0;
smg_flag=~smg_flag;
voidscan(void)
unsignedchartime_count=0;
unsignedcharkey_flag=0;
if(!
key_stat)
delay();
if(!
key_stat)
{
while(!
key_stat)
;
sent('
s'
);
}
elseif(!
key_clear)
p'
key_up)
t'
key_down)
b'
voidinit(void)
TMOD=0x21;
SCON=0x50;
TH0=0x0DC;
TL0=0x00;
TH1=0xFD;
TL1=TH1;
TR1=1;
ET0=1;
TR0=1;
ES=1;
smg1=1;
smg2=1;
led=1;
beep=0;
key_stat=1;
key_up=1;
key_clear=1;
key_down=1;
voidmain(void)
init();
while
(1)
scan();
voidtimer(void)interrupt1
display();
voidcom(void)interrupt4
{
unsignedcharrx_data=SBUF-10;
if(rx_data==0xff)
led=1;
beep=1;
elseif(rx_data==0xfe)
led=0;
beep=0;
}
else
disp[0]=rx_data%100/10;
disp[1]=rx_data%10;
RI=0;
ARM:
#include"
shixun22.h"
ui_shixun22.h"
#include<
QPainter>
QByteArray>
shixun22:
:
shixun22(QWidget*parent):
QWidget(parent),
ui(newUi:
shixun22)
ui->
setupUi(this);
SEC=60;
Box->
setValue(SEC);
sec=20;
lightOn=0;
s1=newQTimer;
s2=newQTimer;
s1->
start(1000);
s2->
start(100);
connect(s2,SIGNAL(timeout()),this,SLOT(readCom()));
connect(s1,SIGNAL(timeout()),this,SLOT(display()));
connect(ui->
start,SIGNAL(clicked()),this,SLOT(start()));
myCom=newWin_QextSerialPort("
COM3"
QextSerialBase:
Polling);
myCom->
open(QIODevice:
ReadWrite);
myCom->
setBaudRate(BAUD9600);
setDataBits(DATA_8);
setParity(PAR_NONE);
setStopBits(STOP_1);
setFlowControl(FLOW_OFF);
setTimeout(50);
voidshixun22:
readCom()
QByteArraytemp=myCom->
readAll();
if(temp[0]=='
)on_start_clicked();
)on_stop_clicked();
)on_add_clicked();
)on_sub_clicked();
~shixun22()
deleteui;
on_add_clicked()
chartemp[2]={0,0};
sec++;
lcd->
display(sec);
temp[0]=sec+10;
write(temp);
update();
on_reset_clicked()
sec=ui->
value();
on_start_clicked()
on_sub_clicked()
//if(sec!
=0)
sec--;
//elsesec==99;
on_stop_clicked()
stop();
paintEvent(QPaintEvent*)
QPainterpainter(this);
painter.setPen(Qt:
black);
if(lightOn)
painter.setBrush(Qt:
red);
white);
painter.drawEllipse(300,10,25,25);
display()
if(sec!
=0){
else{
lightOn=!
lightOn;
main的:
QtGui/QApplication>
intmain(intargc,char*argv[])
QApplicationa(argc,argv);
shixun22w;
w.show();
returna.exec();
Shixun222.h:
#ifndefSHIXUN22_H
#defineSHIXUN22_H
QWidget>
QTimer>
QPaintEvent>
//#include"
posix_qextserialport.h"
win_qextserialport.h"
namespaceUi{
classshixun22;
classshixun22:
publicQWidget
Q_OBJECT
public:
explicitshixun22(QWidget*parent=0);
~shixun22();
voidpaintEvent(QPaintEvent*);
private:
Ui:
shixun22*ui;
intsec;
intSEC;
QTimer*s1;
QTimer*s2;
boollightOn;
Win_QextSerialPort*myCom;
privateslots:
voidon_Box_editingFinished();
voidon_lcd_overflow();
voidon_stop_clicked();
voidon_sub_clicked();
voidon_start_clicked();
voidon_reset_clicked();
voidon_add_clicked();
voidreadCom();
voiddisplay();
};
#endif//SHIXUN22_H