第一篇:6程序分析
《單片機原理及應用》題庫六
(程序分析)
程序2 電子秒表工作程序 void main(){ TMOD=0x01;
//定時器T0工作在方式1 TH0=0xD8;
// T0裝入時間常數
TL0=0xf0;
EA=1;
//允許 中斷
ET0=1;
//允許 定時器T0中斷
TR0=1;
//啟動定時器T0
while(1)
//無條件循環
{
for(k=0;k<3;k++)
{
P0=b[k];
//送出數碼管段碼
P2=k;
//送出數碼管位選碼
delaym(3);//調用延時函數
} } } } time0_int(void)interrupt 1
//T0中斷服務程序 {
TH0=0xD8;
TL0=0xF0;
i++;
if(i==100)
//到1秒
{
i=0;
second1++;
}
if(second1==10)//到10秒
{
second2++;
second1=0;
}
if(second2==10)//到100秒
{second3++;
second2=0;
second1=0;
}
b[2]=a[second3];//轉換為段碼顯示
b[1]=a[second2];
b[0]=a[second1];
} 程序3 電子時鐘程序 void main(){ TMOD=0x01;
//定時器T0工作在方式1 TH0=0xD8;
// T0延時長度延時10mS TL0=0xf0;
EA=1;
//允許中斷
ET0=1;
//允許定時器T0中斷 TR0=1;while(1){
for(k=0;k<5;k++)
//顯示時鐘的分秒
{
P0=b[k];
P2=k;
delaym(3);
} } } time0_int(void)interrupt 1
//T0中斷服務程序 {
TH0=0xD8;
TL0=0xF0;
i++;
if(i==100)
//到1秒
{
i=0;
second++;
}
if(second==60)//到1分鐘
{second=0;
fen++;
}
w=fen/10;
x=fen%10;
y=second/10;
z=second%10;
b[4]=a[w];
//顯示分十位段碼
b[3]=a[x];
//顯示分個位段碼
b[2]=0xbf;
//數碼管顯示“-”
b[1]=a[y];
//顯示秒十位段碼
b[0]=a[z];
//顯示秒個位段碼
}
程序4
矩陣式按鍵掃描,讀取按鍵的行列編碼。unsigned char Keycan(void){
unsigned char rcode, ccode;
P1 = 0xF0;
// P1口對鍵盤輸出 鍵盤掃描信號
if((P1&0xF0)!= 0xF0)
{
delay(1);// 調用巖石函數函數實現軟件去抖動
if((P1&0xF0)!= 0xF0)
//如果不相等說明 有鍵按下
{ rcode = 0xFE;
// 逐行掃描初值
while((rcode&0x10)!= 0)
{
P1 = rcode;
// 輸出行掃描碼
if((P1&0xF0)!= 0xF0)//
{
ccode =(P1&0xF0)|0x0F;//取入列代碼
//do{;}
while((P1&0xF0)!= 0xF0);//等待鍵釋放
return((~rcode)+(~ccode));// 返回
}
else
rcode =(rcode<<1)|0x01;//行輸出代碼移1位
}
}
return 0;// 無鍵按下,返回
} 程序6 從計算機鍵盤輸入月份,通過計算機串口顯示相應的日子。#include
//包含8952單片機頭文件 #include
//包含計算機串口頭文件 #define uint unsigned int void main(){ uint month;uint day;SCON=0x50;
//串行口工作在方式1,允許接收。
TMOD=0x20;//定時器1工作在方式2
TCON=0x40;TH1=0xE8;
//裝入波特率對應的時間常數
TL1=0xE8;TI=1;TR1=1;
}
printf(“input monthn”);//要求輸入月份
scanf(“%d”,&month);//讀取鍵盤輸入的月份數值。
switch(month)//查閱月份
{ case 1: case 3: case 5: case 7: case 8: case 10: case 12:day=31;//1、3、5、7、8、10、12上顯示31日
break;case 4: case 6: case 9: case 11:day=30;//4、6、9、11顯示30日
break;case 2:day=28;//2月份顯示28日
break;default:day=1;//都不是,日期1
} printf(“month,has dayn”,&month,&day);//在屏幕上顯示對應月份的日期
}
程序8 數碼顯示程序 unsigned char b[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};數碼管段碼,加1個全滅段碼
unsigned char c[8];//規定顯示段碼數組為8
void display()
{ unsigned char i;
for(i=0;i<8;i++)//顯示8個數據
{
P0=c[i];//送出段碼
P2=i;//送出位選碼
delay(2);
} } 程序96 串口接收程序
#include
//16個
#define uchar unsigned char uchar idata buf[8];main(){ uchar i;SCON= 0x50;
//規定串口工作方式1,允許接收。,PCON=0;
//SMOD=0 TMOD= 0x20;
//定時器1 工作在定時方式2
TH1= 0xe6;
//12MHz 1200波特率 TL1= 0xe6;TR1= 1;
//啟動釘子定時器1
while(1)
//不斷接收數據 { for(i=0;i<9;i++)
{
while(RI==0)
//查詢接收一幀數據完畢否
RI=0;
buf[i]=SBUF;
//從串口接收數據存入數組 buf[]
} } } 程序10 串口發送程序,發送89S51 #include
uint j;SCON= 0x40;
//規定串口工作在方式1,發送數據
PCON=0;
//SMOD=0 TMOD= 0x20;
//定時器1工作在方式2
TH1= 0xe6;
//12MHz 1200波特率 TL1= 0xe6;TR1= 1;
//啟動定時器1
while(1)
//不斷發送數據
{
i=0;
while(trdata[i]!=0x00)
//00結束 { SBUF=trdata[i];
//將數據送到串口發送器SBUF
while(TI==0);
TI=0;
i++;
}
for(j=0;j<50000;j++);
} } //延時8μS×50000 =0.4秒
第二篇:6程序分析
《單片機原理及應用》題庫六
(程序分析)
程序1
流水燈程序
#include
//包含8952單片機頭文件 void delaym(unsigned int t)
// 延時子程序,入口參數ms,延遲時間=t*1ms,t取值范圍0~65535 {
unsigned char j;
//j取值范圍0~255 while(t--){ for(j = 0;j < 250;j++);
//j進行的內部循環,1次延遲8us } }
void main(){
unsigned int i;
while(1)
{
unsigned char a=0xfe;
for(i=0;i<8;i++)
{
P0=a;
delaym(200);
a<<=1;
//循環左移1位
} } }
程序2 電子秒表工作程序 void main(){ TMOD=0x01;
//定時器T0工作在方式1 TH0=0xD8;
// T0裝入時間常數
TL0=0xf0;
EA=1;
//允許 中斷
ET0=1;
//允許 定時器T0中斷
TR0=1;
//啟動定時器T0
while(1)
//無條件循環
{
for(k=0;k<3;k++)
{
P0=b[k];
//送出數碼管段碼
P2=k;
//送出數碼管位選碼
delaym(3);//調用延時函數
} } } } time0_int(void)interrupt 1
//T0中斷服務程序 {
TH0=0xD8;
TL0=0xF0;
i++;
if(i==100)
//到1秒
{
i=0;
second1++;
}
if(second1==10)//到10秒
{
second2++;
second1=0;
}
if(second2==10)//到100秒
{second3++;
second2=0;
second1=0;
}
b[2]=a[second3];//轉換為段碼顯示
b[1]=a[second2];
b[0]=a[second1];
} 程序3 電子時鐘程序 void main(){ TMOD=0x01;
//定時器T0工作在方式1 TH0=0xD8;
// T0延時長度延時10mS TL0=0xf0;
EA=1;
//允許中斷
ET0=1;
//允許定時器T0中斷 TR0=1;while(1){
for(k=0;k<5;k++)
//顯示時鐘的分秒
{
P0=b[k];
P2=k;
delaym(3);
} } } time0_int(void)interrupt 1
//T0中斷服務程序 {
TH0=0xD8;
TL0=0xF0;
i++;
if(i==100)
//到1秒
{
i=0;
second++;
}
if(second==60)//到1分鐘
{second=0;
fen++;
}
w=fen/10;
x=fen%10;
y=second/10;
z=second%10;
b[4]=a[w];
//顯示分十位段碼
b[3]=a[x];
//顯示分個位段碼
b[2]=0xbf;
//數碼管顯示“-”
b[1]=a[y];
//顯示秒十位段碼
b[0]=a[z];
//顯示秒個位段碼
}
程序4
矩陣式按鍵掃描,讀取按鍵的行列編碼。unsigned char Keycan(void){
unsigned char rcode, ccode;
P1 = 0xF0;
// P1口對鍵盤輸出 鍵盤掃描信號
if((P1&0xF0)!= 0xF0)
{
delay(1);// 調用巖石函數函數實現軟件去抖動
if((P1&0xF0)!= 0xF0)
//如果不相等說明 有鍵按下
{ rcode = 0xFE;
// 逐行掃描初值
while((rcode&0x10)!= 0)
{
P1 = rcode;
// 輸出行掃描碼
if((P1&0xF0)!= 0xF0)//
{
ccode =(P1&0xF0)|0x0F;//取入列代碼
//do{;}
while((P1&0xF0)!= 0xF0);//等待鍵釋放
return((~rcode)+(~ccode));// 返回
}
else
rcode =(rcode<<1)|0x01;//行輸出代碼移1位
} }
}
return 0;// 無鍵按下,返回
}
程序5 按鍵取值計算程序
void KeyDeal(unsigned char Key)
{
if(Key!=0)
//再次判斷是否有按鍵按下
{
switch(Key)
//對按鍵的行列碼譯碼成0~15
{
case 0x11: K=0;break;
case 0x21: K=1;break;
case 0x41: K=2;break;
case 0x81: K=3;break;
case 0x12: K=4;break;
case 0x22: K=5;break;
case 0x42: K=6;break;
case 0x82: K=7;break;
case 0x14: K=8;break;
case 0x24: K=9;break;
case 0x44: K=10;break;
case 0x84: K=11;break;
case 0x18: K=12;break;
case 0x28: K=13;break;
case 0x48: K=14;break;
case 0x88: K=15;break;
default: break;
}
if(K<17)
{
c[7]=c[6];
//改變顯示位置,顯示代碼順序前移
c[6]=c[5];
c[5]=c[4];
c[4]=c[3];
c[3]=c[2];
c[2]=c[1];
c[1]=c[0];
c[0]=b[K];
//將0~15譯成段碼供顯示
}
} } 程序6 從計算機鍵盤輸入月份,通過計算機串口顯示相應的日子。#include
//包含8952單片機頭文件 #include
//包含計算機串口頭文件 #define uint unsigned int void main(){ uint month;uint day;SCON=0x50;
//串行口工作在方式1,允許接收。
TMOD=0x20;//定時器1工作在方式2
TCON=0x40;TH1=0xE8;
//裝入波特率對應的時間常數
TL1=0xE8;TI=1;TR1=1;printf(“input monthn”);//要求輸入月份
scanf(“%d”,&month);//讀取鍵盤輸入的月份數值。
switch(month)//查閱月份
{ case 1: case 3: case 5: case 7: case 8: case 10: case 12:day=31;//1、3、5、7、8、10、12上顯示31日
break;case 4: case 6: case 9: case 11:day=30;//4、6、9、11顯示30日
break;case 2:day=28;//2月份顯示28日
break;default:day=1;//都不是,日期1
} printf(“month,has dayn”,&month,&day);//在屏幕上顯示對應月份的日期
}
程序7 延時1秒子程序A ? void delay(void)
{ unsigned char m,n,s;//定義m,n,s為無符號字符型數值(0~255)
for(m=10;m>0;m--)
//m的用途控制第1重循環
for(n=100;n>0;n--)
for(s=124;s>0;s--);
//3個for指令總延時1mS×100× 10=1秒
延時子程序B void delay(unsigned char t){
while(t--)
// 由調用程序規定延時時間
{
unsigned char j;//j的取值范圍 0~255
for(j = 0;j<123;j++);//語句 延時1mS
} }
程序8 數碼顯示程序 unsigned char b[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};數碼管段碼,加1個全滅段碼
unsigned char c[8];//規定顯示段碼數組為8
void display()
{ unsigned char i;
for(i=0;i<8;i++)//顯示8個數據
{
P0=c[i];//送出段碼
P2=i;//送出位選碼
delay(2);
} } 程序96 串口接收程序
#include
//規定串口工作方式1,允許接收。,PCON=0;
//SMOD=0 TMOD= 0x20;
//定時器1 工作在定時方式2
TH1= 0xe6;
//12MHz 1200波特率
//16個
TL1= 0xe6;TR1= 1;
//啟動釘子定時器1
while(1)
//不斷接收數據 { for(i=0;i<9;i++)
{
while(RI==0)
//查詢接收一幀數據完畢否
RI=0;
buf[i]=SBUF;
//從串口接收數據存入數組 buf[]
} } } 程序10 串口發送程序,發送89S51 #include
uint j;SCON= 0x40;
//規定串口工作在方式1,發送數據
PCON=0;
//SMOD=0 TMOD= 0x20;
//定時器1工作在方式2
TH1= 0xe6;
//12MHz 1200波特率 TL1= 0xe6;TR1= 1;
//啟動定時器1
while(1)
//不斷發送數據
{
i=0;
while(trdata[i]!=0x00)
//00結束 { SBUF=trdata[i];
//將數據送到串口發送器SBUF
while(TI==0);
TI=0;
i++;
}
for(j=0;j<50000;j++);//延時8μS×50000 =0.4秒
} }
第三篇:專利意見程序分析
關于專利法對公眾意見的處理程序分析
1984年專利法第41條和第42條規定了異議程序的法律效力:“第四十一條 專利申請自公告之日起三個月內,任何人都可以依照本法規定向專利局對該申請提出異議。專利局應當將異議的副本送交申請人,申請人應當在收到異議副本之日起三個月內提出書面答復;無正當理由逾期不提出書面答復的,該申請即被視為撤回。第四十二條 專利局經審查認為異議成立的,應當作出駁回申請的決定,并通知異議人和申請人。”
在1992年修改專利法時,專利異議的程序都刪去了,所以說從1992年起已經沒有異議程序了,授權前只能提“意見”并僅供參考。2010年新頒布的專利法第48條規定:“自發明專利申請公布之日起至公告授予專利權之日止,任何人均可以對不符合專利法規定的專利申請向國務院專利行政部門提出意見,并說明理由。”
新專利法審查指南中關于對公眾意見的處理的原話摘錄細則: “任何人對不符合專利法規定的發明專利申請向專利局提出的意見,應當存入該申請文檔中供審查員在實質審查時考慮。如果公眾的意見是在審查員發出授予專利權的通知之后收到的,就不必考慮。專利局對公眾意見的處理情況,不必通知提出意見的公眾。”
通過分析我國現行的專利審查公眾意見提交制度,我們不難發現:無論是專利法實施細則還是《專利審查指南》,都沒有關于公眾意見的法律地位、作用,以及社會公眾如何提供意見等更為細致的規定,尤其是對公眾意見的使用情況,審查員是沒有義務告知提出意見的公眾的,也就是說,我國目前的專利審查公眾意見提交制度中是不存在反饋機制的。
從法律層面講,關于專利意見的提交沒有明確的程序規定,具體事宜周一將和專利事務所的專家進行商討。
第四篇:程序法案例分析
程序法案例分析
案例1
2002年9月30日,河南省孟州市質量技術監督局稽查人員對河南省孟州市電業樂萬家有限責任公司經銷的商品進行執法檢查時,發現該公司銷售的“五糧液”酒防偽標簽無暗記標記,涉嫌假冒,遂當場對該公司的177瓶“五糧液”酒進行了封存,并在公證人員的現場公證下提取酒樣品,經中國宜賓五糧液股份有限公司進行鑒定為假冒五糧液產品。之后,孟州市質量技術監督局對剩余的176瓶“五糧液”酒予以登記扣押。由于此案涉及貨值金額和社會影響較大,孟州市質量技術監督局依法將此案移交給該局上級單位焦作市質量技術監督局。同年11月26日,焦作市質量技術監督局向孟州市電業樂萬家有限責任公司送達了《行政處罰告知書》,確認該公司經銷的“五糧液”酒系以假充真產品,已違反了我國《產品質量法》第39條的規定,將依據我國《產品質量法》第50條的規定給予行政處罰。要求該公司在11月28日前將陳述意見送到焦作市質量技術監督局,逾期視為放棄權利;并說明如要求公開聽證,應于收到告知書之日起3日內提出,逾期未提出的,視為放棄權利。孟州市電業樂萬家有限責任公司在收到焦作市質量技術監督局送達告知書的當天就用郵政快件郵送了陳述意見,同時提出公開聽證的申請。可是次日,即11月29日,焦作市質量技術監督局就向該公司送達了(豫焦)質技監罰字[2002]第067號《行政處罰決定書》:
1、責令停止銷售以假充真的“五糧液”酒。
2、沒收176瓶以假充真的“五糧液”酒。
3、并處該公司以假充真“五糧液”酒貨值金額二倍罰款94560元。孟州市電業樂萬家有限責任公司對此處罰決定不服,以焦作市質量技術監督局????為由,向焦作市解放區法院提起行政訴訟。
討論內容:
1.技監局的執法有無疑點?
2.孟州市電業樂萬家有限責任公司的起訴理由可以是什么?
案例2
2002年8月13日,某市星光大酒店接待了一批“特殊客人”。這些客人用他們自帶的秤稱了他們所點的海鮮后,亮出了工作證:市質量技術監督局,并指出,他們的海鮮缺斤少兩。檢查結束后,拿出一張臨時手寫的便條式的檢查證明要求店方簽字,店方覺得事態嚴重,沒有簽。店方解釋稱是廚師抓海鮮時將兩個包廂的海鮮搞混了,并讓廚師親自向檢查人員解釋。8月24日,市質量技術監督局舉行了一個新聞發布會,指出經過明查暗訪,發現多家賓館、酒樓的海鮮缺斤少兩,并指出,按銷售單價計算,星光大酒店一次克扣消費者金額最多。各大媒體對此紛紛作了報道。星光成了眾矢之的。9月15日,星光大酒店以市質量技術監督局認定自己“故意缺斤少兩、克扣消費者”的行為已構成行政侵權為由,要求法院判定其通報批評的行為違法,令其為星光恢復名譽、消除不良影響。
問:此案爭論的焦點是什么?
若是作為被告應進行怎樣的辯論?
若是原告呢?他們會從哪些方面對被告的行為進行起訴呢?
案例三簡易程序的細節
某單位執法人員在處理一件違章案件時,在證據確鑿的前提下對當事人做出處罰決定。當事人對行政處罰告知書的內容無異議,對處罰金額也無異議。并在告知書上寫下“放棄陳述和申辯權利”,并按要求簽下自己的名字,落款日期是某年某月某日。隨后,執法人員給當事人開具行政處罰決定書,當事人也在送達回證簽上名,落款的日期也是某年某月某日。表面上看,這個案件調查取證程序合法,證據確鑿,法律文書制作程序上也并無大的疏漏,案件辦理得天衣無縫。但就是這樣一起看似已辦成鐵案的案件,時過數日,當事人卻一紙訴狀將行政執法機關告上法院,聲稱執法人員在程序上違法。在法庭對質時,行政機關舉充足的證據證明當事人的行為是違法行為,且當事人已在陳述告知筆錄上表示放棄申辯權利。而當事人的辯護律師卻辯稱:?????(由學生添加)案例四執法程序錯誤行政訴訟案
一、案情簡介
1997 年9 月17 日,某省技術監督局接到群眾投訴,稱其所購買的由鴻鑫企業集團有限責任公司開發的怡園公寓商品房面積不足,要求維護購房者利益。根據群眾投訴,省局稽查大隊進行了調查,并委托省房地產計量公正站進行實地測量。測量結果表明,有住戶投訴的4 棟商品房每套實際建筑面積都少于銷售建筑面積,其計量偏差不符合供需雙方事先約定的1 %。省局擬對鴻鑫企業集團有限責任公司進行行政處罰,依照政處罰法,向該公司履行了告知程序,鴻鑫企業集團有限責任公司進行了陳述和申辯,并要求舉行聽證。省局認為符合聽證條件,依法舉行了聽證。1998 年2月23 日下發了行政處罰決定書,決定對鴻鑫企業集團有限責任公司處以28000元的罰款。
鴻鑫企業集團有限公司對上述處罰不服,于1998 年2 月28日以行政處罰認定主體錯誤為由向人民法院提起行政訴訟。值此之時,省局經核查發現,怡園公寓真正的開發商是某房地產開發有限責任公司。該公司是鴻鑫企業集團有限責任公司的集團成員,是經工商登記注冊的有獨立法人資格的企業,是獨立的民事法律主體,其經營行為應自行獨立承擔法律責任,省局主動撤銷了原行政處罰決定,鴻鑫企業集團有限責任公司自愿撤訴,法院裁定撤訴。1998 年1 月26 日,省局更換了行政處罰對象,再次下發了行政處罰決定書。
某房地產開發有限責任公司和法定代表人對第二次行政處罰決定仍然不服,向法院再次提起了行政訴訟,其訴訟理由為?
第五篇:注冊會計師審計——分析程序
分析程序
就像了解一件產品一樣,我們每次想要了解一件產品首先都會問是干什么用的、具體在那些方面、具體怎么做、做得好不好…,想要了解分析程序也一樣。
分析程序是做什么用的呢?是研究不同財務數據及財務數據與非財務數據之間的關系,分析其是否異常來判斷是否存在重大錯報風險。
那么都什么時候使用這個程序呢?——貫穿于審計過程的始終。
那分析程序在風險評估的時候到底要怎么用呢?在風險評估的時候我們必須要用到分析程序,因為通過分析不同財務數據及財務數據與非財務數據之間的關系,才有助于注冊會計師識別異常的交易或者事項,以及對財務報表或審計產生影響的金額、比率、趨勢,才可以了解被審計單位環境。將其分析的結果和預期值之間相比較,如果出現不一致,則可能說明財務報表存在重大錯報風險。
與風險評估不用,在進行風險應對時,只有滿足了一定條件(重大錯報風險較低、數據間具有穩定的預期關系)才可以實施實質性分析程序。因為實質性程序包括實質性分析程序和細節測試。而只實施細節測試而不實施分析程序,同樣可以實現實質性程序的目的。但是有些時候實施分析程序能夠提供更充分的審計證據。分析程序的運用:
1、識別需要運用分析程序的賬戶余額和交易。
2、確定期望值。
3、確定可接受的差異額。
4、識別需要進一步調查的差異。
5、調查異常數據關系。
6、評估分析程序的結果。在這里還要注意:
1、數據的可靠性,主要在信息的來源和性質方面把好關來得到可靠的數據。
2、預期的準確程度,因為預期值的準確性能夠決定我們的分析程序是否有效。
3、對于可接受的差異額,更是要謹慎,因為差異就說明不一致,是否能夠承受就要看相關認定的重要性和計劃的保證水平。當然,相關認定越具有重要性,差異額就要越低,計劃的保證水平越高。
4、如果在期中實施實質性程序,那么可以對剩余期間的有效性進行測試,或者實施細節測試。
最后,分析程序用于總體復核。