導航:首頁 > 操作系統 > 59單片機

59單片機

發布時間:2023-01-20 08:57:46

1. 十速單片機TM59PA20和TM59PA40停產了嗎

是的。十速的官方網站現在已經把TM59PA系列的單片機刪除了,你可以再去看看,只留了個名字,但沒有規格書等資料了。
市場應該不會立即斷貨,十速和他的代理商會有些庫存,2個月內應該不會缺貨。不過不用擔心買不到同型號的單片機而要改板。目前三星的S3C9454和台灣芯睿的MK7A22P、MK7A23P在引腳上都與TM59PA20兼容(無16腳的),性能比它更高一些。只是它們的內部功能並不完全相同,代碼也不能互換,所以你原有的程序就不能用了,要重寫!
如果你有困難,我可以幫你寫,免費!到時賣你燒好的晶元,價格保證不會比你現在買的空片價格高。如果需要可以Q Q聯系531 521080

2. 利用單片機設計59秒計時器

共陽共陰只是你在選COM端時給其高低電平的問題無關大雅
我給一段PIC單片機的程序讓你參考一下,如果你看懂的話應該能做出來了
#include <pic.h>
#include <math.h>
//此程序實現計時秒錶功能,時鍾顯示範圍00.00~99.99秒,分辨度:0.01秒
unsigned char s0,s1,s2,s3;
//定義0.01 秒、0.1 秒、1秒、10秒計時器
unsigned char s[4];
unsigned char k ,data ,sreg;
unsigned int i;
const table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90};
//不帶小數點的顯示段碼表
const table0[10]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10};
//帶小數點的顯示段碼表
//TMR0初始化子程序
void tmint()
{
T0CS=0; //TMR0工作於定時器方式
PSA=1; //TMR0不用分頻
T0IF=0; //清除TMR0的中斷標志
T0IE=1; //TMR0中斷允許
}
//spi顯示初始化子程序
void SPIINIT()
{
PIR1=0;
SSPCON=0x30;
SSPSTAT=0xC0;
//設置SPI的控制方式,允許SSP方式,並且時鍾下降沿發送。與"74HC595,當其
//SCLK從低到高跳變時,串列輸入寄存器"的特點相對應
TRISC=0xD7; //SDO引腳為輸出,SCK引腳為輸出
TRISA5=0; //RA5引腳置為輸出,輸出顯示鎖存信號
}
//系統其它部分初始化子程序
void initial()
{
TRISB1=0;
TRISB2=0;
TRISB4=1;
TRISB5=1; //設置與鍵盤有關的各口的輸入輸出方式
RB1=0;
RB2=0; //建立鍵盤掃描的初始條件
}
//SPI傳輸數據子程序
void SPILED(data)
{
SSPBUF=data; //啟動發送
do {

}while(SSPIF==0);
SSPIF=0;
}
//顯示子程序,顯示4位數
void dispaly()
{
RA5=0; //准備鎖存
for(k=4;k>0;k--)
{
data=s[k-1];
if(k==3) data=table0[data];//第二位需要顯示小數點
else data=table[data];
SPILED(data); //發送顯示段碼
}
for(k=0;k<4;k++)
{
data=0xFF;
SPILED(data); //連續發送4個DARK,使顯示好看一些
}
RA5=1; //最後給鎖存信號,代表顯示任務完成
}
//軟體延時子程序
void DELAY()
{
for(i = 3553; --i ;) continue;
}
//鍵掃描子程序
void KEYSCAN()
{
while(1){
while(1)
{
dispaly(); //調用一次顯示子程序
if ((RB5==0)||(RB4==0)) break;
}
DELAY(); //若有鍵按下,則軟體延時
if ((RB5==0)||(RB4==0)) break;//若還有鍵按下,則終止循環掃描,返回
}
}
//等鍵松開子程序
void keyrelax()
{
while(1){
dispaly(); //調用一次顯示子程序
if ((RB5==1)&&(RB4==1)) break;
} //為防止按鍵過於靈敏,每次等鍵松開才返回
}
//系統賦值初始化子程序
void ini()
{
s0=0x00;
s[0]=s0;
s1=0x00;
s[1]=s1;
s2=0x00;
s[2]=s2;
s3=0x00;
s[3]=s3; //s0=s1=s2=s3=0,並放入顯示緩沖數組中
sreg=0x00; //tmr0中斷次數寄存器清0
}
//中斷服務程序
void interrupt clkint(void)
{
TMR0=0X13; //對TMR0寫入一個調整值。因為寫入TMR0後接著的
//兩個周期不能增量,中斷需要3個周期的響應時間,
//以及C語言自動進行現場保護要消耗周期
T0IF=0; //清除中斷標志
CLRWDT();
sreg=sreg+1; //中斷計數器加1
if(sreg==40) //中斷次數為40後,才對S0,S1,S2,S3 操作
{
sreg=0;
s0=s0+1;
if(s0==10){
s0=0 ;
s1=s1+1;
if(s1==10){
s1=0 ;
s2=s2+1;
if(s2==10){
s2=0;
s3=s3+1;
if(s3==10) s3=0 ;
}
}
}
}
s[0]=s0;
s[1]=s1;
s[2]=s2;
s[3]=s3;
}
//主程序
main()
{
OPTION=0XFF;
tmint(); //TMR0初始化
SPIINIT(); //spi顯示初始化
initial(); //系統其它部分初始化
di(); //總中斷禁止
while(1) {
ini(); //系統賦值初始化
KEYSCAN(); //鍵掃描,直到開始鍵按下
keyrelax(); //等鍵松開
ei(); //總中斷允許
TMR0=0X08;
KEYSCAN(); //鍵掃描直到停止鍵按下,在鍵掃描時有顯示
keyrelax() ; //等鍵松開
di(); //總中斷禁止
KEYSCAN(); //鍵掃描到清0鍵按下,在鍵掃描時有顯示
keyrelax() ; //等鍵松開
}
}

閱讀全文

與59單片機相關的資料

熱點內容
桌面文件全部加密 瀏覽:401
6s怎麼外接u盤需要什麼app 瀏覽:131
linux查看文件許可權命令 瀏覽:685
安卓手游存檔怎麼用 瀏覽:761
linuxyum安裝ftp 瀏覽:690
村委會主任可以推行政命令嗎 瀏覽:102
電腦文件夾封面多張圖片 瀏覽:263
網吧總伺服器叫什麼 瀏覽:922
多個演算法解決同一個問題 瀏覽:455
小車解壓後我的購車發票呢 瀏覽:977
做app開發用什麼雲伺服器 瀏覽:177
linux網卡子介面 瀏覽:985
21歲職高畢業學程序員怎麼學 瀏覽:321
vs如何對單個文件編譯 瀏覽:6
為什麼有的電腦不能安裝python 瀏覽:75
金蝶迷你版加密狗檢測到過期 瀏覽:186
硬體描述語言編譯結果 瀏覽:655
程序員逆天改命 瀏覽:19
金斗雲伺服器 瀏覽:447
港口工程pdf 瀏覽:770